arkennemasis fal · Flux 3 Extend Video Draft · $0.12/s
Does the join work? 12 cents a second to find out
- video
- video
- video_path
- draft_cache_path
- info
Continuation is the most expensive thing in the FLUX 3 family - $0.41/s at 720p, $0.53/s at 1080p for the full render. And continuation is also the thing most likely to look wrong the first time, because the model has to match the motion and lighting of frames it inherited rather than invented. A join that reads as a cut instead of a continuation is the standard failure, and you generally only see it when the clip is moving.
So: ArkFal_blackforestlabs_flux_3_extend_video_draft, at $0.12 per second of draft video, returning a reusable draft cache. It's the same trick as the rest of the family, applied to the endpoint where it saves the most money. Ten seconds of draft continuation is $1.20; ten seconds of full 720p continuation is $4.10.
What you set
video- required. The source clip, described in the node's own terms as a source MP4, at most 50 MiB. Keep it trimmed; the full endpoint's limit is 15 seconds and short sources join better regardless.prompt- how the footage continues from the source's final frames.duration-auto, or whole seconds from 5 through 20. The cost dial, and the thing you're probably testing: does the extension need six seconds or twelve?generate_audio- on by default, free either way.aspect_ratio-autoby default, which is usually right when the source already has a shape.safety_tolerance- 0 to 4, default 2.
No resolution box - drafts are 720p-class by definition.
Shared optional controls: max_cost_usd (default $20 cap, enforced before upload; 0 turns it off), reuse_identical_run (on by default - identical inputs return the saved clip rather than billing again), extra_json, max_concurrent.
Outputs: video, video_path, draft_cache_path, info.
The handoff, again
draft_cache_path is a local file. The finisher wants draft_cache_url, a URL or data URI, and passes it straight through to fal - so a path from your disk is dead weight. The real URL is in the draft's info output, and it's logged to output/fal/_requests.jsonl. Grab it there, and don't clear your outputs folder until the finished clip is saved.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
Restart ComfyUI, or search arkennemasis in ComfyUI Manager and let it install. The key:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
into the .env next to run_nvidia_gpu.bat, or in your ComfyUI folder on a regular install. No key field on the node - the pack keeps credentials out of workflow files on purpose.
Two things that will bite you
The source video is uploaded to fal's CDN before the paid call. Free, but your footage leaves the machine, and this is the one node type where "footage" might mean something you'd rather not send.
And the estimate: the browser badge can't measure the clip you connected, so it shows a rate rather than a dollar figure. With a $0.12/s node that's not scary; with its full-price sibling it is. Draft first, budget second, finish last.
Inputs (10)
| 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. |
| video | VIDEO | URL or data URI of the source MP4, at most 50 MiB. | |
| 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. |