arkennemasis fal · MiniMax Video 01 · $0.5/run
Two widgets, fifty cents a clip
- video
- video_path
- info
The entire node is a text box and a checkbox. prompt, and prompt_optimizer. That's both the pitch and the warning.
video-01 is MiniMax's original Hailuo video model - the one that became the Hailuo AI service everyone names in "what tool made this?" threads alongside Kling and Veo. By now it's the old workhorse of the line, not the flagship, which is precisely why it's interesting: $0.50 a call, one fixed short clip per call, and no resolution, duration or fps widget for you to get wrong. You are not tuning a video model here. You are buying a shot.
Why you'd reach for it
Text-to-video is normally the most expensive way to learn that your prompt was ambiguous. At half a dollar a clip, with the cost visibly run through the node before anything is sent, this is the cheap end of that lesson. It's also the plainest useful thing on the canvas: type a scene, get motion.
Be honest with yourself about the category, though. The KB's read on API nodes is that r/comfyui treats "not local, through an API" as a reason to skip a release and resents them as a default. That's fair, and it's why the sane pattern is hybrid - a closed frame where the closed model wins, an open video model for the bulk of the work. This node is for the shot where you want it done now rather than the whole film.
And yes: this pack has essentially no Reddit footprint. Searching for it turns up nothing, so there's no crowd-sourced verdict to lean on. Read what it ships before you run it.
How it works
One submit to fal, one billed call. Everything before the submit is free and local: the node reads FAL_KEY from your .env, checks your inputs, estimates the cost, and refuses the run if the estimate is over max_cost_usd (default $20 - you will basically never hit it here; 0 removes the cap). Then it uploads, submits, polls, and downloads the result into output/fal/fal-ai_minimax_video-01/. Cancel in ComfyUI cancels the request on fal too, and every request is logged to output/fal/_requests.jsonl.
prompt_optimizer is the one real decision. Left on (the default), the model rewrites and expands your prompt before generating, which is why a carefully-worded prompt can come back as something visibly adjacent. Turn it off when you want to know what your words alone do - worth doing once per idea.
Assume there's no usable audio track. MiniMax's native audio-with-video is the newer H3 line.
Inputs and outputs
Required: prompt, prompt_optimizer. That's it. The optional ones are shared across every fal node in the pack - max_cost_usd, max_concurrent, reuse_identical_run, extra_json (a JSON object merged into the request last, for any fal field this node has no box for; leave it empty unless you know what you're adding).
On the way out:
video- a ComfyUI VIDEO value. Save it, or feed it into a lip-sync node, a dub node, or the pack's scene assembly.video_path- the file on disk, as a STRING.info- JSON with the request id, the cost estimate, the saved files and fal's full answer. Keep this when you're running a batch; it's how you find what a run actually cost.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
Restart ComfyUI, or install through ComfyUI-Manager by searching arkennemasis. requirements.txt is just httpx, and that's for the pack's Codex nodes - the fal side uses Python's standard library, so there's no heavy dependency to trip over here.
Then a .env in the folder holding run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
Where people get burned
- No seed box. Video 01 has none, so "I got a great clip and can't get it back" is real. Your mitigation is
reuse_identical_run(on by default): an identical rerun returns the already-paid-for file instead of sampling again, even after a ComfyUI restart. Turn it off deliberately when you want a different take. - It submitted and you don't know where it went.
output/fal/_requests.jsonl, one line per request. If ComfyUI restarted mid-job, the job kept running on fal - paste the id into the pack's fal Recover Result node and collect it for free. - Your clip is on the wrong shape and there's no aspect widget. The endpoint's own default is what you get. Compose around it, or crop downstream.
- Your prompt came back rewritten. That's
prompt_optimizer. Off. - It stopped before sending anything. That's
max_cost_usddoing its job - orextra_jsonisn't valid JSON. Both fail loudly and neither bills.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| prompt_optimizer | BOOLEAN | true | Whether to use the model's prompt optimizer |
| 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 (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |