arkennemasis fal · Flux 3 Text to Video Draft · $0.06/s
The cheap way to find out if the shot works
- video
- video_path
- draft_cache_path
- info
Full-quality FLUX 3 video is $0.17–0.29 per second. A 15-second shot at 1080p is over four dollars, and if the motion is wrong you've paid four dollars to find that out. The draft endpoints exist to make that mistake cheap, and they're the single most useful thing in this corner of the pack.
ArkFal_blackforestlabs_flux_3_text_to_video_draft renders at $0.06 per second - roughly a fifth of the 720p full render - and hands you back a reusable draft cache. That cache is the whole point: feed it to draft_enhance and the finish is a re-render of this draft, same seed and motion, no re-planning. Five drafts and one finish costs less than two full renders.
What you set
prompt- the draft prompt. Nothing changes between draft and enhance except quality, so write the real one here.duration- whole seconds, 5 through 20, orautoto let the model decide. Everything is billed by the second, so this is the cost dial.generate_audio- on by default. Drafts include audio, which is genuinely useful for checking whether a line of dialogue lands, and costs nothing extra.aspect_ratio-autoby default.safety_tolerance- 0 to 4, default 2, same as the full node.
Note what's not here: a resolution box. Drafts are 720p-class by definition. That's the deal.
Optional, and shared with every fal node in the pack: max_cost_usd (default $20 cap, enforced before anything is uploaded or sent; 0 disables), reuse_identical_run (default on - identical inputs come back from disk without a second charge, including after a ComfyUI restart), extra_json, max_concurrent.
Outputs: video, video_path, draft_cache_path (the local file for the encrypted bundle), and info.
The handoff that trips people up
draft_cache_path is a local file. The enhance node wants draft_cache_url, a URL. Those are not the same thing, and the text in that box goes to fal verbatim - fal cannot read your output/fal/ directory.
The bundle's fal URL is inside the draft node's info output (it carries fal's full answer, including the draft_cache file object), and it's also written to output/fal/_requests.jsonl when the draft completes. Grab it from there and paste it into draft_cache_url on the enhance node. Keep that info around until the finished clip exists - a draft without its URL is a paid preview you can't upgrade.
Also worth knowing: the draft's own video output is a perfectly good thing to look at in ComfyUI. It's the review tool; the enhance is the delivery.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
ComfyUI Manager works too - search arkennemasis, install, restart. Then the key:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
in the .env next to run_nvidia_gpu.bat (portable) or in your ComfyUI folder. No key field on the node, and nothing to download - FLUX 3 only runs on fal, which is the entire reason this node exists as a wrapper.
Where people get burned
The estimate shown in the browser can't know what auto duration will return, so it shows a rate; the real dollar figure appears at run time. If you want a number you can trust before running, set duration explicitly.
Because reuse_identical_run is on by default, tweaking anything - even adding an unused upstream node - changes the run hash and bills you again, while re-running the exact same graph won't. That's the behaviour you want, but it means "same settings, new take" is a lie unless you turn the toggle off.
Results land in output/fal/blackforestlabs_flux-3_text-to-video_draft/. Failures before the submit step - bad inputs, a missing key, an estimate above your cap - cost nothing, because the node checks all of that before it uploads or sends anything.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The text prompt describing the draft video. | |
| aspect_ratio | COMBO | auto | Aspect ratio of the generated draft. `auto` lets the model choose. |
| duration | COMBO | auto | Draft duration in whole seconds from 5 through 20, or `auto`. |
| generate_audio | BOOLEAN | true | Whether to generate audio for the draft video. |
| safety_tolerance | INT | 20–4 | The safety tolerance level for the generated video. 0 is the strictest and 4 is the most permissive. |
| max_cost_usdopt | FLOAT | 20.00–100000 | Safety cap. If the estimated cost of this run is above this many US dollars the node stops BEFORE sending anything to fal. 0 = no cap. |
| reuse_identical_runopt | BOOLEAN | true | If these exact inputs (the settings AND the same pictures/clips/audio) were already paid for and the files are still in output/fal, return them instead of paying again - also after a ComfyUI restart. Turn off for a fresh take with the same settings. |
| extra_jsonopt | STRING | Advanced: a JSON object merged into the request last, for any fal field this node has no box for. Example: {"seed": 7}. Leave empty normally. | |
| max_concurrentopt | INT | 11–32 | How many paid fal calls may run at the same time in one run, across every fal node. 1 (default) = one after another. This node starts its paid part only while fewer than this many fal calls are running. Once any fal node fails, the ones still waiting are not started, so nothing more is billed. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| draft_cache_path | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |