Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · MiniMax Hailuo 2.3 Pro Text to Video · $0.49/video
ComfyUI Node

arkennemasis fal · MiniMax Hailuo 2.3 Pro Text to Video · $0.49/video

$0.49 for a Clip With No Anchor

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · MiniMax Hailuo 2.3 Pro Text to Video · $0.49/video
    • video
    • video_path
    • info
    ◄prompt►
    ◄prompt_optimizertrue►
    ◄max_cost_usd20.0►
    ◄reuse_identical_runtrue►
    ◄extra_json►
    ◄max_concurrent1►

    Text in, a 1080p clip out, $0.49 flat. That's the whole interface. Which is either exactly what you need - an establishing shot, a bit of texture, a clip to drop behind narration - or a trap, because with no first frame you've handed the model every decision about what this clip looks like.

    When text-to-video is the right node

    If you already have a still, use the image-to-video version of this node instead. Same model, same price, and you keep control of the composition. Text-to-video earns its keep when there's no still to start from: clouds over a skyline, hands working at a bench, an abstract transition, a scene-setting wide you'll cut away from in two seconds.

    The case against it is consistency. The community's character-consistency answer has moved firmly toward "generate once, then edit or animate that image" precisely because re-rolling a look from text gives you a different look each time. If a person or a product has to match across five shots, generate the frame in your own pipeline and animate it with the i2v node. Text-to-video is for shots nothing else has to match.

    How it works

    Under the hood it's the pack's standard fal wrapper around minimax/hailuo-2.3/pro/text-to-video: pull FAL_KEY from the .env next to your launcher, validate the inputs, estimate the cost and compare it to max_cost_usd, submit one billed request, poll it while the node reports queued / running / seconds, then download into output/fal/fal-ai_minimax_hailuo-2.3_pro_text-to-video/. Nothing before the submit costs anything, so a rejected input is free. Hailuo itself is MiniMax's closed, hosted video line - nothing here runs on your GPU, and there's no local version to fall back on.

    Inputs

    • prompt - the entire steering wheel, capped at 2000 characters by the schema. Name the subject, the action and the camera move, in that order; leave the model room on lighting and texture unless you actually care. Over-specifying a ten-second action across a long paragraph is a classic way to get mush.
    • prompt_optimizer (default on) - the model rewrites your prompt before generating. Useful when you've written three words and walked away; turn it off when the wording is deliberate, because it will be reworded.

    Four optional controls, and two of them matter in practice:

    • max_cost_usd - default $20, 0 disables. The node refuses before uploading when the estimate is over the cap.
    • max_concurrent - default 1, so a canvas stacked with fal nodes calls fal one paid job at a time instead of twenty at once.
    • reuse_identical_run - default on. Identical inputs and a still-present result file means you get that file back for free rather than a second bill. Turn it off when you want a genuinely new roll of the same prompt.
    • extra_json - raw JSON merged into fal's request last, for any field the node has no box for.

    Outputs are video (a real ComfyUI VIDEO - feed Video Save or the pack's Video Assemble), video_path with the on-disk file, and info, a JSON blob holding the request id, the estimate, the saved files and fal's full response. No audio: this endpoint returns picture only. If you need the model to invent sound as well, that's a different family in the same pack (the MiniMax H3 nodes), not something to expect here.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Hishamahmer/comfyui-arkennemasis
    pip install httpx
    

    Or ComfyUI Manager → Install via Git URL, pasting the repo URL. Then create the .env next to run_nvidia_gpu.bat:

    FAL_KEY=your-key-from-fal.ai/dashboard/keys
    

    Restart. It lives under arkennemasis/fal/Video/MiniMax, and the menu title carries its live price.

    Traps

    The usual two thirds of fal-node pain is one thing: the key. FAL_KEY must be in the .env beside the launcher (or in the ComfyUI folder) - there is no key box on the node, on purpose, so a missing key is a silent-looking nothing until you read the error. Second: at $0.49 a roll, "let me just try six prompts" is three dollars before lunch. Draft your prompt wording on the 768p Standard text-to-video node at roughly half the price, then render the take you like here.

    And if a run vanishes after a ComfyUI restart, it didn't fail - it finished on fal while you weren't watching. The request id is in output/fal/_requests.jsonl; fal Recover Result pulls the finished job down for free.

    Categoryarkennemasis/fal/Video/MiniMax

    Inputs (6)

    NameTypeDefaultDescription
    promptSTRINGText prompt for video generation
    prompt_optimizerBOOLEANtrueWhether to use the model's prompt optimizer
    max_cost_usdoptFLOAT20.00–100000Safety 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_runoptBOOLEANtrueIf 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_jsonoptSTRINGAdvanced: 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_concurrentoptINT11–32How 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)

    NameTypeDescription
    videoVIDEO—
    video_pathSTRING—
    infoSTRINGJSON: request id, cost estimate, saved files and fal's full answer.