Flux 3 Action
Integrera
flux-3-action/so101
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/flux-3-action/so101?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/flux-3-action/so101?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02,
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/flux-3-action/so101", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/sv/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "flux-3-action/so101",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02
]
}
}
Anropa modellen Flux 3 Action (flux-3-action/so101) via Doitong API. Dokumentation för agenter: https://doitong.com/sv/developers/models/flux-3-action/so101.md
POST https://api.doitong.com/v1/run/flux-3-action/so101?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02
]
}
Om svarsstatusen är "queued" eller "running" ska du polla GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 tills den är "succeeded"; filerna finns i outputs[].url. POST https://api.doitong.com/v1/quote/flux-3-action/so101 med samma body returnerar det exakta priset före körningen.
Den här begäran: ≈0,003 $ 3 API-krediter Kör den på den här sidan
Din nya API-nyckel. Den visas bara nu och finns redan i koden och i API-nyckelfältet nedan. Håll den hemlig: lägg aldrig in den i kod som körs i en webbläsare.
Skapat på Doitong
Offentliga verk skapade med Flux 3 Action av Doitong-communityt. Återanvänd en prompt med ett klick.
Close-up portrait seorang wanita berkulit pucat berdiri setengah tubuh di dalam air berwarna lembut kebiruan, dikelilingi bunga teratai berkelopak penuh yang bermekaran indah di permukaan air. Rambutnya pirang pucat tersanggul longgar dengan beberapa helaian tipis jatuh alami membingkai sisi...
Close-up portrait seorang wanita berkulit pucat berdiri setengah tubuh di dalam air berwarna lembut kebiruan, dikelilingi bunga teratai berkelopak penuh yang bermekaran indah di permukaan air. Rambutnya pirang pucat tersanggul longgar dengan beberapa helaian tipis jatuh alami membingkai sisi...
Prompt Details Seorang wanita berkulit pucat berdiri setengah tubuh di dalam air berwarna lembut kebiruan, dikelilingi bunga teratai berkelopak penuh yang bermekaran indah di permukaan air. Rambutnya pirang pucat tersanggul longgar dengan beberapa helaian tipis jatuh alami membingkai sisi...
Seorang wanita berkulit pucat berdiri setengah tubuh di dalam air berwarna lembut kebiruan, dikelilingi bunga teratai berkelopak penuh yang bermekaran indah di permukaan air. Rambutnya pirang pucat tersanggul longgar dengan beberapa helaian tipis jatuh alami membingkai sisi wajahnya. Ia memeluk...
"Potret sinematik ultra-realistis close-up seorang anak laki-laki kecil (balita) yang sangat menggemaskan dengan mata cokelat besar yang ekspresif, rambut hitam berantakan yang tebal, mengenakan kaus putih kerah henley. Dia berpose dengan kedua tangan terkatup di depan dada, menunjukkan senyum...
"Potret sinematik ultra-realistis close-up seorang anak laki-laki kecil (balita) yang sangat menggemaskan dengan mata cokelat besar yang ekspresif, rambut hitam berantakan yang tebal, mengenakan kaus putih kerah henley. Dia berpose dengan kedua tangan terkatup di depan dada, menunjukkan senyum...
"Potret sinematik ultra-realistis close-up seorang anak laki-laki kecil (balita) yang sangat menggemaskan dengan mata cokelat besar yang ekspresif, rambut hitam berantakan yang tebal, mengenakan kaus putih kerah henley. Dia berpose dengan kedua tangan terkatup di depan dada, menunjukkan senyum...
Foto sinematik hiper-realistis resolusi tinggi menampilkan seorang pria muda Indonesia dengan tubuh ramping dan proporsional, rambut hitam pendek agak acak, mengenakan jaket kulit hitam, celana riding fit, dan sepatu motor. Ia sedang melakukan aksi freestyle ekstrem dengan motor sport 500cc...
Foto sinematik hiper-realistis resolusi tinggi menampilkan seorang pria muda Indonesia dengan tubuh ramping dan proporsional, rambut hitam pendek agak acak, mengenakan jaket kulit hitam dan celana riding fit. Ia sedang bersiap melakukan freestyle menggunakan motor sport 500cc berwarna merah,...
Skapa en begäran
Kontrollerna genereras från modellschemat. Koden och priset uppdateras när du ändrar dem.
/run/flux-3-action/so101?wait=20
pris → 0,003 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/flux-3-action/so101?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/flux-3-action/so101?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02,
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/flux-3-action/so101", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "flux-3-action/so101",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02
]
},
"wait_seconds": 20
}
}
}
Kör den här begäran
Din nyckel stannar i den här webbläsaren: den skickas endast till Doitong API och sparas endast i localStorage om du markerar Kom ihåg. Hämta en API-nyckel
Om Flux 3 Action
I stället för media returnerar den JSON med förutsagda `actions`, deras styrfrekvens, kolumnetiketter och hur många inledande steg som ska köras (`execute_steps`) innan ett nytt segment begärs. Obligatoriska indata är en textbaserad `prompt` (upp till 2000 tecken), `scene_image_url`, `wrist_image_url` och en `state` med 6 värden. Valfria historikindata (`state_history`, `command_history`, historikbilder) ger tidsmässig kontext. `num_inference_steps` går från 1 till 8 och `guidance_scale` från 1 till 10.
Parametrar
promptobligatoriskt
scene_image_urlobligatoriskt
wrist_image_urlobligatoriskt
stateobligatoriskt
state_historyvalfritt
command_historyvalfritt
history_scene_image_urlvalfritt
history_wrist_image_urlvalfritt
num_inference_stepsvalfritt
guidance_scalevalfritt
seedvalfritt
Filparametrar tar emot en offentlig https://-URL, en data:-URI på upp till 10 MB eller file_url från en uppladdning. Filer
Resultat
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "flux-3-action/so101",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 3,
"usd": "0.003",
"charged": 3,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"scene_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"wrist_image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"state": [
-18.94,
134.52,
120.15,
28.3,
-32.17,
27.02
]
},
"output": {
"actions": [
[
1.0
]
],
"action_labels": [
"string"
],
"action_hz": 1.0,
"execute_steps": 1,
"seed": 42,
"timings": {}
},
"outputs": [
{
"type": "file",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Resultatets fält
- actions
- array of array of numberFörutsagd åtgärdsmatris med kronologiska rader som representerar styrsteg; värdena klipps inte, så led-, hastighets- och arbetsområdesgränser måste upprätthållas på roboten. Vid 30 Hz tillhandahåller SO-101 42x6 absoluta kommandon i grader och griparprocent; vid 15 Hz tillhandahåller DROID 32x8 absoluta ledmål i radianer plus griparens stängda andel.
- action_labels
- array of stringNamn som motsvarar åtgärdskolumnerna.
- action_hz
- numberStyrfrekvens för åtgärdsraderna.
- execute_steps
- integerAntal inledande åtgärder som ska köras innan en ny del efterfrågas.
- seed
- integerSlumpmässig seed som används under sampling.
- timings
- objectTidsmätningar från servern, uttryckta i sekunder.
Fler modeller: Video till video
För AI-agenter: den här sidan som Markdown finns på https://doitong.com/sv/developers/models/flux-3-action/so101.md. Alla modeller och guider: https://doitong.com/developers/llms.txt