Nodes/DenRakEiw_Nodes/🎬 Flux 3 Video (API) *DRE
ComfyUI Node

🎬 Flux 3 Video (API) *DRE

Run BFL's Flux 3 video API from inside your ComfyUI graph

By DenRakEiwΒ·Created about a year agoΒ·Updated a day agoΒ· 34
🎬 Flux 3 Video (API) *DRE
  • images
  • end_image
  • video
  • video
  • metadata
β—„modet2vβ–Ί
β—„promptβ–Ί
β—„aspect_ratioautoβ–Ί
β—„durationautoβ–Ί
β—„resolutionhdβ–Ί
β—„generate_audiotrueβ–Ί
β—„safety_tolerance2β–Ί
β—„draftfalseβ–Ί
β—„versionlatestβ–Ί
β—„keyframe_timesβ–Ί
β—„draft_cacheβ–Ί
β—„timeout_minutes45β–Ί
β—„api_keyβ–Ί

This is the node that finally makes Flux 3 video a thing you can wire into a ComfyUI graph - not by running a model locally (you can't; Flux 3 is a closed BFL API), but by being a careful HTTP client in node form. You give it a prompt, it POSTs to https://api.bfl.ai/v1/flux-3-video, polls until the job finishes, downloads the mp4, and hands you a real VIDEO tensor plus a metadata string. From the canvas it looks like a sampler; underneath it's a paid cloud call. That's the entire category of API-wrapper nodes in one sentence, and everything that makes people both love and resent those applies here.

The four modes

  • t2v - text to video. The default.
  • i2v - image(s) to video. One image is a start frame; two are start and end; 3–10 are spaced evenly (they need a fixed duration). Or use keyframe_times ("0, 4.5, 10") for a proper storyboard where each image lands at a specific second.
  • v2v - continue an existing clip via the video input.
  • draft_enhance - take a draft_cache from an earlier draft run and render it at full quality.

The draft toggle is the money saver: it produces a fast HD preview, and the result carries a draft_cache you can feed back into draft_enhance only when you're happy. Generate drafts cheap, spend the real credits once.

The inputs that matter

  • mode, prompt, aspect_ratio (auto through 9:16), duration (5–20s or auto), resolution (hd or fhd - fhd routes through the video upscaler), generate_audio (on by default), safety_tolerance (0–4, stricter to looser; capped at 2 when you pass conditioning media).
  • images / end_image / keyframe_times for i2v; video for v2v; draft_cache for draft_enhance.
  • timeout_minutes (default 45) - read the tooltip carefully: with a busy BFL queue a job easily takes 20+ minutes, and when the timeout fires, only the node stops. The job keeps running server-side and still costs you credits. That's the single biggest footgun on this node.

Outputs: video (VIDEO) and metadata (STRING).

Setup

You need a BFL API key:

# in your ComfyUI root or next to the pack
BFL_API_KEY=bfl_...

Install the pack - ComfyUI Manager, search "DenRakEiw Nodes", or git clone https://github.com/DenRakEiw/DenRakEiw_Nodes, then pip install -r requirements.txt, restart. The pack brings in the async client with retries and exponential backoff built in, so transient network errors are handled for you.

Gotchas

Three, and they're the whole story of cloud video. Cost: every job is a metered call, and video jobs are where API spend gets ugly fast - drafts help, use them. Time: you're at the mercy of BFL's queue; a "45 minute timeout" isn't a bug, it's a hint about how slow video can be. Privacy/filtering: your prompt and images leave your machine and go through BFL's moderation; anything you wouldn't paste into a public form doesn't belong here. This is the right tool for a model you're not allowed to download, and the wrong default if local Wan is on the table. It's a one-author pack with a tiny footprint, so don't expect much community support - check the repo's issues if something breaks.

CategoryFlux3 API

Inputs (16)

NameTypeDefaultDescription
modeCOMBOt2vt2v: text to video. i2v: image(s) to video (keyframes). v2v: continue a clip (start_video). draft_enhance: render an earlier draft at full quality.
promptSTRINGRequired for t2v/i2v/v2v. Not allowed with draft_enhance, where the draft_cache pins everything.
aspect_ratioCOMBOauto'auto' lets the API choose based on the prompt and the references.
durationCOMBOautoWhole seconds 5-20, or 'auto'. 3+ keyframes without keyframe_times need a fixed length.
resolutionCOMBOhdhd = default. fhd = higher resolution, via the video upscaler.
generate_audioBOOLEANtrueOn by default. Off gives a silent clip.
safety_toleranceINT20–40 (strictest) to 4. Default 2. With conditioning media the maximum is 2.
draftBOOLEANfalseFast hd preview. The result carries a draft_cache that you can render at full quality with mode=draft_enhance.
versionSTRINGlatestOnly 'latest' is available at the moment.
imagesoptIMAGEi2v only. 1 image is the start frame, 2 images are start and end, 3-10 images are spaced evenly and need duration. Or combine with keyframe_times for a storyboard.
end_imageoptIMAGEi2v only: when set, images is the start and end_image the end, giving exactly 2 keyframes.
keyframe_timesoptSTRINGi2v only: seconds per image, comma separated (e.g. '0, 4.5, 10'). The count must match images and the values must ascend. Each image becomes a frame at that second.
videooptVIDEOv2v only: the clip to continue (mp4).
draft_cacheoptSTRINGdraft_enhance only: the base64 bundle or URL from the draft output of an earlier run. Required in this mode.
timeout_minutesoptINT451–240How long the node waits for the result. With a busy BFL queue a job easily takes 20+ minutes. When the time runs out only the node stops; the job keeps running server-side and still costs credits.
api_keyoptSTRINGLeave empty to read it from .env

Outputs (2)

NameTypeDescription
videoVIDEOβ€”
metadataSTRINGβ€”