Flux 3 Action
Integrasikan
flux-3-action/so101
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/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://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://vit.doitong.com/api/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://vit.doitong.com/api/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/ms/developers/docs/mcp)
claude mcp add --transport http doitong-models https://vit.doitong.com/api/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
]
}
}
Panggil model Flux 3 Action (flux-3-action/so101) melalui Doitong API. Dokumentasi untuk ejen: https://doitong.com/ms/developers/models/flux-3-action/so101.md
POST https://vit.doitong.com/api/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
]
}
Jika status respons ialah "queued" atau "running", tinjau GET https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20 sehingga statusnya menjadi "succeeded"; fail berada dalam outputs[].url. POST https://vit.doitong.com/api/v1/quote/flux-3-action/so101 dengan badan yang sama mengembalikan harga tepat sebelum dijalankan.
Permintaan ini: ≈$0.003 3 kredit API Jalankan pada halaman ini
Kunci API baharu anda. Ia hanya dipaparkan sekarang dan sudah dimasukkan dalam kod serta medan kunci API di bawah. Simpan secara rahsia: jangan sekali-kali letakkannya dalam kod yang berjalan dalam pelayar.
Hasil pertama anda akan muncul di sini
Bina permintaan di bawah dan jalankannya dengan kunci API anda. Output disalin ke storan kami, disimpan selama-lamanya atau 7 hari secara percuma.
Bina permintaan
Kawalan dijana daripada skema model. Kod dan harga dikemas kini apabila anda mengubahnya.
/run/flux-3-action/so101?wait=20
sebut harga → $0.003
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/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://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://vit.doitong.com/api/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://vit.doitong.com/api/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
}
}
}
Jalankan permintaan ini
Kunci anda kekal dalam pelayar ini: ia hanya dihantar kepada Doitong API dan disimpan (localStorage) hanya jika anda menanda Ingat. Dapatkan kunci API
Tentang Flux 3 Action
Daripada media, model ini mengembalikan JSON dengan `actions` yang diramalkan, kadar kawalannya, label lajur dan bilangan langkah awal untuk dilaksanakan (`execute_steps`) sebelum meminta kelompok baharu. Input yang diperlukan ialah `prompt` teks (sehingga 2000 aksara), `scene_image_url`, `wrist_image_url` dan `state` 6 nilai. Input sejarah pilihan (`state_history`, `command_history`, imej sejarah) memberikan konteks temporal. `num_inference_steps` berjulat dari 1 hingga 8 dan `guidance_scale` dari 1 hingga 10.
Parameter
promptdiperlukan
scene_image_urldiperlukan
wrist_image_urldiperlukan
statediperlukan
state_historypilihan
command_historypilihan
history_scene_image_urlpilihan
history_wrist_image_urlpilihan
num_inference_stepspilihan
guidance_scalepilihan
seedpilihan
Parameter fail menerima URL awam https://, URI data: sehingga 10 MB, atau file_url bagi muat naik. Fail
Output
{
"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://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Medan output
- actions
- array of array of numberTatasusunan tindakan yang diramal dengan baris kronologi yang mewakili langkah kawalan; nilai tidak dipotong, jadi had sendi, halaju dan ruang kerja mesti dikuatkuasakan pada robot. Pada 30 Hz, SO-101 menyediakan arahan mutlak 42x6 dalam darjah dan % pencengkam; pada 15 Hz, DROID menyediakan sasaran sendi mutlak 32x8 dalam rad serta pecahan tertutup pencengkam.
- action_labels
- array of stringNama yang sepadan dengan lajur tindakan.
- action_hz
- numberFrekuensi kawalan untuk baris tindakan.
- execute_steps
- integerBilangan tindakan awal yang perlu dilaksanakan sebelum meminta bahagian seterusnya.
- seed
- integerSeed rawak yang digunakan semasa pensampelan.
- timings
- objectUkuran masa daripada pelayan, dinyatakan dalam saat.
Lebih banyak model: Video ke Video
Untuk ejen AI: halaman ini dalam Markdown tersedia di https://doitong.com/ms/developers/models/flux-3-action/so101.md. Semua model dan panduan: https://doitong.com/developers/llms.txt