
Ei osumia. Kokeile hakusanoja ”video”, ”FLUX” tai ”webhooks”.
Ladataan malleja…
flux/schnell
# 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/schnell?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1
}'
# 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/schnell?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1
}),
});
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": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1,
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/flux/schnell", 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/fi/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/schnell",
"input": {
"prompt": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1
}
}
Kutsu mallia FLUX.1 [schnell] (flux/schnell) Doitong API:n kautta. Dokumentaatio agenteille: https://doitong.com/fi/developers/models/flux/schnell.md
POST https://vit.doitong.com/api/v1/run/flux/schnell?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1
}
Jos vastauksen tila on "queued" tai "running", kysy GET https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20 uudelleen, kunnes tila on "succeeded"; tiedostot ovat kohteessa outputs[].url. POST https://vit.doitong.com/api/v1/quote/flux/schnell samalla rungolla palauttaa tarkan hinnan ennen suorittamista.
Tämä pyyntö: 0,003 $ 3 API-krediittiä Suorita tällä sivulla
Uusi API-avaimesi. Se näytetään vain nyt, ja se on jo koodissa ja alla olevassa API-avainkentässä. Pidä se salassa: älä koskaan lisää sitä selaimessa suoritettavaan koodiin.
Säätimet luodaan mallin skeemasta. Koodi ja hinta päivittyvät, kun muutat arvoja.
/run/flux/schnell?wait=20
hinta → 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/schnell?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1
}'
# 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/schnell?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1
}),
});
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": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1,
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/flux/schnell", 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/schnell",
"input": {
"prompt": "Top-down food photograph of a breakfast spread on a linen tablecloth: sourdough toast with avocado, a bowl of berries, a cappuccino with latte art, soft morning window light.",
"num_outputs": 1
},
"wait_seconds": 20
}
}
}
Avaimesi säilyy tässä selaimessa: se lähetetään vain Doitong APIlle ja tallennetaan localStorageen vain, jos valitset Muista. Hanki API-avain
Tislattu 12 miljardin parametrin FLUX-malli, joka tarvitsee vain 1–4 kohinanpoistovaihetta ja muuttaa siksi kehotteen kuvaksi erittäin nopeasti. Käytä sitä luonnoksiin, pikkukuviin, esikatseluihin ja suuren volyymin putkiin; vaihda suurempaan FLUX-malliin, kun hienot yksityiskohdat tai tarkka tekstin toisto ovat tärkeitä. Mikä tahansa koko 14 megapikseliin asti, enintään neljä kuvaa pyyntöä kohti.
Lähetä joko kanoninen nimi tai natiivi nimi, älä molempia. Kanoniset nimet
num_inference_stepsvalinnainen
promptpakollinen
image_sizevalinnainen
seedvalinnainen
guidance_scalevalinnainen
num_imagesvalinnainen
num_outputs
enable_safety_checkervalinnainen
output_formatvalinnainen
accelerationvalinnainen
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "flux/schnell",
"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 lighthouse on a rocky coast at dusk, waves crashing, warm light in the window, cinematic wide shot",
"image_size": "landscape_16_9",
"num_images": 1
},
"output": {
"images": [
{
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"width": 1024,
"height": 768,
"content_type": "image/jpeg"
}
],
"timings": {},
"seed": 42,
"has_nsfw_concepts": [
false
],
"prompt": "string"
},
"outputs": [
{
"type": "image",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768,
"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"
}
}
Tekoälyagenteille: tämän sivun Markdown-muoto on osoitteessa https://doitong.com/fi/developers/models/flux/schnell.md. Kaikki mallit ja oppaat: https://doitong.com/developers/llms.txt