π¬ Flux 3 Video (API) *DRE
Run BFL's Flux 3 video API from inside your ComfyUI graph
- images
- end_image
- video
- video
- metadata
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 usekeyframe_times("0, 4.5, 10") for a proper storyboard where each image lands at a specific second. - v2v - continue an existing clip via the
videoinput. - draft_enhance - take a
draft_cachefrom 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(autothrough9:16),duration(5β20s orauto),resolution(hdorfhd- 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_timesfor i2v;videofor v2v;draft_cachefor 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.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | t2v | t2v: text to video. i2v: image(s) to video (keyframes). v2v: continue a clip (start_video). draft_enhance: render an earlier draft at full quality. |
| prompt | STRING | Required for t2v/i2v/v2v. Not allowed with draft_enhance, where the draft_cache pins everything. | |
| aspect_ratio | COMBO | auto | 'auto' lets the API choose based on the prompt and the references. |
| duration | COMBO | auto | Whole seconds 5-20, or 'auto'. 3+ keyframes without keyframe_times need a fixed length. |
| resolution | COMBO | hd | hd = default. fhd = higher resolution, via the video upscaler. |
| generate_audio | BOOLEAN | true | On by default. Off gives a silent clip. |
| safety_tolerance | INT | 20β4 | 0 (strictest) to 4. Default 2. With conditioning media the maximum is 2. |
| draft | BOOLEAN | false | Fast hd preview. The result carries a draft_cache that you can render at full quality with mode=draft_enhance. |
| version | STRING | latest | Only 'latest' is available at the moment. |
| imagesopt | IMAGE | i2v 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_imageopt | IMAGE | i2v only: when set, images is the start and end_image the end, giving exactly 2 keyframes. | |
| keyframe_timesopt | STRING | i2v 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. | |
| videoopt | VIDEO | v2v only: the clip to continue (mp4). | |
| draft_cacheopt | STRING | draft_enhance only: the base64 bundle or URL from the draft output of an earlier run. Required in this mode. | |
| timeout_minutesopt | INT | 451β240 | How 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_keyopt | STRING | Leave empty to read it from .env |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | β |
| metadata | STRING | β |