Nodes/ComfyUI-FLUX-BFL-API/Flux 3 Video I2V (BFL)
ComfyUI Node

Flux 3 Video I2V (BFL)

FLUX 3 image-to-video from a keyframes string

By gelasdev·Created 2 years ago·Updated about a month ago· 49
Flux 3 Video I2V (BFL)
  • config
  • video
prompt
keyframes
resolutionhd
durationauto
aspect_ratioauto
generate_audiotrue
safety_tolerance2
draftfalse

Image-to-video is where FLUX 3 actually gets interesting. Text-to-video you can get anywhere; but feed this node a frame - or a whole sequence of frames - and Black Forest Labs will animate it with the same early-access FLUX 3 Video engine, native audio included. It's the second node in the video trio from gelasdev's ComfyUI-FLUX-BFL-API, and it exists because BFL's API insists on taking your reference images as a JSON keyframes string. This node is the comfortable front door to that format.

Like the rest of the pack, it's a cloud call, not local inference. Your images go up to api.bfl.ai, the video gets rendered on BFL's hardware, and you pay per request. The upside: FLUX 3-class video without a local model's VRAM appetite. The downside: you're at the mercy of an early-access API, so expect occasional waits and a moderation layer you can't turn off.

How it works

Under the hood it's the same POST-then-poll dance as T2V. The node sends {"mode": "i2v", "keyframes": ...} to /v1/flux-3-video, polls every five seconds (up to ~20 minutes of patience), then downloads the finished MP4 and returns it as ComfyUI's native VIDEO type. The interesting part is what you feed into keyframes, which is surprisingly flexible:

  • The output of a Flux 3 Keyframes (BFL) node - the intended path for multi-frame work.
  • A single base64 image or image URL, pasted straight in - a one-frame starting point.
  • A JSON array of images, or of [seconds, image] pairs like [[0, "..."], [4.5, "..."]] - up to ten frames - if you want to hand-craft the timing.

Inputs worth knowing

  • prompt - what happens in the clip. If you're animating a still, describe the motion and scene changes; FLUX 3's language handling does most of the work.
  • keyframes - covered above. The tooltip in the node spells out every accepted format, so you can't really go wrong.
  • resolution (hd/fhd), duration (auto or 5–20s), aspect_ratio (from auto and 21:9 down to 9:16) - the shared video knobs.
  • generate_audio (on by default), safety_tolerance (0–4, default 2), draft (fast preview mode).
  • config (optional) - per-node key/base URL/region override.

Output is video (VIDEO) → wire it into the built-in Save Video / preview nodes.

Installing and the gotchas

Install once for the whole pack: ComfyUI Manager → search "ComfyUI-FLUX-BFL-API", or:

cd ComfyUI/custom_nodes
git clone https://github.com/gelasdev/ComfyUI-FLUX-BFL-API.git
cd ComfyUI-FLUX-BFL-API
pip install -r requirements.txt

Just torch in the deps; you already have everything else. You need ComfyUI ≥ 0.3.30 or the node won't even register, and you need a BFL API key (config.ini, or a Flux Config node - config.ini gets wiped on updates, so the node route is sturdier).

The trap that gets most people: if you send three or more plain keyframe images while duration is auto, BFL rejects the request - the API requires an explicit duration for multi-frame keyframes. The node prints a warning when it spots that combination, so watch the console. And as with T2V, a black output usually means the job died server-side (moderation, error, or timeout), not that you mis-wired anything.

CategoryBFL/Flux3

Inputs (9)

NameTypeDefaultDescription
promptSTRING
keyframesSTRINGConnect a Flux 3 Keyframes node, or paste a single image URL/base64, or a JSON array of images or [seconds, image] pairs (up to 10): [[0, "..."], [4.5, "..."]]
resolutionCOMBOhd2 options: hd, fhd
durationCOMBOauto17 options: auto, 5, 6, 7, 8, 9, +11
aspect_ratioCOMBOauto8 options: auto, 21:9, 2:1, 16:9, 4:3, 1:1, +2
generate_audioBOOLEANtrue
safety_toleranceINT20–4
draftBOOLEANfalse
configoptBFL_CONFIG

Outputs (1)

NameTypeDescription
videoVIDEO