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

Flux Video Edit (BFL)

Type a sentence, get your clip back changed

By gelasdev·Created 2 years ago·Updated a day ago· 49
Flux Video Edit (BFL)
  • config
  • video
◄prompt►
◄video►
◄safety_tolerance2►

"Remove the orange bucket." That's BFL's own example prompt, and it's basically the entire interface. You give Flux Video Edit (BFL) a clip and an instruction, and it hands the clip back re-rendered: objects removed, added or replaced, a restyle, changed dialogue. No mask, no tracking, no keyframe painting. It's a hosted call to flux-tools/video-edit-v1, so there's no VRAM involved and no local model babysitting.

Why this is the one worth paying for

Ask anyone who has tried to delete an object from a clip locally. VACE can do it, but only behind a mask/SAM pipeline. Bernini takes the instruction directly and is heavy by design - the source video becomes part of the model's input sequence, roughly doubling the compute, as Kijai put it. Either way, a ten-second clip is normally an afternoon of mask tracking plus a long GPU grind. Here it's one metered call and a coffee.

How it works

Your clip goes up as base64 or a URL, the server re-renders it under your instruction, and the node downloads the MP4 and hands you a native ComfyUI VIDEO. Output is 720p, and duration, aspect ratio and audio all follow the source - you're editing the clip you gave it, not generating a new one at a size you picked.

The input list is comically short next to this pack's generation nodes, and that's deliberate: the endpoint rejects everything except the video, the prompt and the safety tolerance, so no seed, duration or resolution is offered.

Inputs and output

  • prompt - the edit instruction, multiline. Write it as an order ("Remove the orange bucket."), not a description of the clip. This is what the model acts on.
  • video - a STRING, so an MP4 URL or base64. In practice: Load Video → Video to Base64 (BFL) → Flux Video Edit - that converter ships in this pack and pulls an MP4 stream straight out. Caps: up to 15 seconds, 50 MiB, at least 160 px per side.
  • safety_tolerance - 0 to 4, default 2, and only sent when you change it.
  • config (optional) - a BFL_CONFIG from Flux Config (BFL), if you'd rather keep the key on the node than in config.ini.

Output: video, ComfyUI's native VIDEO type. Into Save Video (or a preview), or back into Video to Base64 (BFL) if you want to chain another BFL pass on the result - upscaling it, say.

Installing it, and the version trap

Manager → search ComfyUI-FLUX-BFL-API → restart. Or:

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

requirements.txt is one line - torch - so there is nothing to install; the pack is HTTP calls end to end. Then put your key (from api.bfl.ai) in config.ini:

[API]
X_KEY = YOUR_API_KEY
BASE_URL = https://api.bfl.ai/v1/

Now the trap: this node's class only exists if ComfyUI is 0.3.30 or newer. The pack imports ComfyUI's VideoFromFile to produce a VIDEO, and if that import fails it registers no video nodes at all - on an older install, Flux Video Edit is simply absent from the search, with nothing explaining why. If it's missing after a restart, check your version before reinstalling.

Where people get burned

A one-frame black video instead of your edit. Same house style as the pack's image nodes: a failed request, a moderated task, or exhausted polling returns a 512×512 black placeholder rather than an error. Video jobs poll for up to about 20 minutes (240 attempts, 5 seconds apart) before giving up, so the failure can land long after you stopped watching and look like a successful black render. Read the console.

The 50 MiB cap is on the clip; the request body is base64. Base64 inflates by roughly a third, so a clip sitting near the limit becomes a ~67 MB payload. Trim before you push the cap, and remember 15 seconds is a hard ceiling on length.

No seed means no reproducibility. Two runs of the same instruction on the same clip are two different edits. When you get one you like, save it - there's no re-rolling the exact same thing.

Moderation works both ways here. safety_tolerance runs 0 (strict) to 4 (loose), and it applies to your input clip and to the result. When a task is moderated, the node prints the categories BFL returned, which is at least a straight answer about what happened.

Should you use it?

For "get that thing out of my shot", yes - it's the least-effort route that currently exists, and it runs on a laptop. For precise, repeatable editing you still want the local VACE path where you control the mask. And check your balance before batching: video calls are where a BFL credit balance actually moves, and the pack ships a Flux Credits (BFL) node if you want to see where you stand.

CategoryBFL/Flux3

Inputs (4)

NameTypeDefaultDescription
promptSTRINGEdit instruction, e.g. "Remove the orange bucket."
videoSTRINGClip to edit: MP4 URL or base64 (from Video to Base64). Up to 15 s and 50 MiB, at least 160 px per side
safety_toleranceINT20–4—
configoptBFL_CONFIG—

Outputs (1)

NameTypeDescription
videoVIDEO—