Flux 3 Keyframes To Video Draft
Integrar
blackforestlabs/flux-3/keyframes-to-video/draft
# 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/blackforestlabs/flux-3/keyframes-to-video/draft?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",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0
}
]
}'
# 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/blackforestlabs/flux-3/keyframes-to-video/draft?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",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0
}
]
}),
});
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",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0,
},
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/blackforestlabs/flux-3/keyframes-to-video/draft", 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/rm/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": "blackforestlabs/flux-3/keyframes-to-video/draft",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0
}
]
}
}
Cloma il model Flux 3 Keyframes To Video Draft (blackforestlabs/flux-3/keyframes-to-video/draft) tras la Doitong API. Documentaziun per agents: https://doitong.com/rm/developers/models/blackforestlabs/flux-3/keyframes-to-video/draft.md
POST https://api.doitong.com/v1/run/blackforestlabs/flux-3/keyframes-to-video/draft?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",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0
}
]
}
Sche il status da la resposta è "queued" u "running", fa polling GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 fin ch'el è "succeeded"; las datotecas èn en outputs[].url. POST https://api.doitong.com/v1/quote/blackforestlabs/flux-3/keyframes-to-video/draft cun il medem body returna il pretsch exact avant l'execuziun.
Questa dumonda: $0,30 300 credits API Lantschar sin questa pagina
Tia nova clav API. Quest vegn mussada mo ussa ed è gia en il code ed en il champ da la clav API sutvart. Mantegna ella secreta: na la metta mai en code che vegn exequì en in navigatur.
Fatg sin Doitong
Ovras publicas fatgas cun Flux 3 da la communitad Doitong. Reutilisescha in prompt cun in clic.
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,...
Construir ina dumonda
Ils controls vegnan generads dal schema dal model. Il code e il pretsch s'actualiseschan durant che ti als midas.
/run/blackforestlabs/flux-3/keyframes-to-video/draft?wait=20
calculaziun → $0,30
# 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/blackforestlabs/flux-3/keyframes-to-video/draft?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",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0
}
]
}'
# 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/blackforestlabs/flux-3/keyframes-to-video/draft?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",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0
}
]
}),
});
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",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0,
},
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/blackforestlabs/flux-3/keyframes-to-video/draft", 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": "blackforestlabs/flux-3/keyframes-to-video/draft",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0
}
]
},
"wait_seconds": 20
}
}
}
Executar questa dumonda
Tia clav resta en quest browser: ella vegn tramessa mo al Doitong API e memorisada (localStorage) mo sch'ella scheccas Tiar a memoria. Obtegnair ina clav API
Davart Flux 3 Keyframes To Video Draft
Furnescha in `prompt` e 1 fin 10 `keyframes`, mintgin cun in `frame_index` unic. Ina `duration` explicita da 5 fin 20 secundas è necessaria per validar las posiziuns dals keyframes. `aspect_ratio` po esser auto u ir da 21:9 fin 9:16, e `generate_audio` activa u disactiva il tun. L'output cuntegna in `draft_cache` per in renderisar da qualitad cumplaina.
Parameters
promptobligatori
aspect_ratioopziunal
durationopziunal
generate_audioopziunal
safety_toleranceopziunal
keyframesobligatori
keyframes[].image_urlobligatori
keyframes[].frame_indexobligatori
Output
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "blackforestlabs/flux-3/keyframes-to-video/draft",
"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": 300,
"usd": "0.30",
"charged": 300,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"keyframes": [
{
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"frame_index": 0
}
]
},
"output": {
"video": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
},
"draft_cache": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
}
},
"outputs": [
{
"type": "video",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_size": 1843200,
"width": 1280,
"height": 720,
"duration": 5,
"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"
}
}
Champs da l'output
- video
- object {url, content_type, file_name, file_size}Video producì sco brouziun.
- draft_cache
- object {url, content_type, file_name, file_size} | nullDatas da cache per renderisar ina brouziun en qualitad cumpleta tras `draft-enhance`, memorisadas en in pacchet persistent e criptà. Quest output manca sche il partenari n'ha betg restituì in pacchet per la brouziun.
Autras variantes Flux 3
Dapli models: Maletg a video
Per agents AI: questa pagina sco Markdown è disponibla sut https://doitong.com/rm/developers/models/blackforestlabs/flux-3/keyframes-to-video/draft.md. Tut ils models e las guidas: https://doitong.com/developers/llms.txt