Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · MiniMax Video 01 Director · $0.5/run
ComfyUI Node

arkennemasis fal · MiniMax Video 01 Director · $0.5/run

The node where [Zoom in] is a real instruction

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · MiniMax Video 01 Director · $0.5/run
    • video
    • video_path
    • info
    ◄prompt►
    ◄prompt_optimizertrue►
    ◄max_cost_usd20.0►
    ◄reuse_identical_runtrue►
    ◄extra_json►
    ◄max_concurrent1►

    Most text-to-video models treat "camera pushes in slowly" as flavour text and hope for the best. The Director endpoint is the one where you can address the camera directly, in square brackets, and it will do roughly what you asked. Same $0.50 a clip as plain Video 01, same two widgets - the difference is entirely in what the prompt can say.

    The syntax is the feature

    Camera instructions go in brackets, and you can stack up to three combined movements in one prompt. The supported vocabulary, straight from the node's own field description:

    Truck left/right, Pan left/right, Push in/Pull out, Pedestal up/down, Tilt up/down, Zoom in/out, Shake, Tracking shot, Static shot.

    So a real prompt looks like:

    A weathered fisherman mends a net on a harbour wall at dawn, gulls overhead, cold blue light. [Truck left, Pan right, Zoom in]
    

    Scene in prose, camera in brackets, movement names exactly as spelled above. Two things follow from that. First, conflicting moves waste your budget of three - [Push in, Pull out] is one instruction cancelling another. Second, [Static shot] is the most under-used thing here. For anything with a face in it, the professional answer is usually that the camera does nothing and the subject does the work; models love to add drift, and this is how you tell it not to.

    There's no guarantee it obeys perfectly. But it's a knob that exists, which is more than most hosted video endpoints give you.

    What you get, and where it goes

    Inputs are prompt and prompt_optimizer. That second one is on by default, and it lets the model rewrite your prompt before generation - which can sand the brackets right off. If the camera keeps ignoring you, that's the first thing to turn off.

    Outputs are video (a ComfyUI VIDEO value), video_path (STRING, the file in output/fal/fal-ai_minimax_video-01-director/), and info (JSON with the request id, the estimate, saved files and fal's answer). Wire video into anything that takes VIDEO - a save node, a lip-sync node, a dub node, or the pack's assembly chain.

    No audio track worth having. MiniMax's native audio line is H3.

    The money is handled before it hurts

    Every fal node in this pack reads FAL_KEY from the .env in your ComfyUI install, estimates the cost, and stops before uploading anything if the estimate is over max_cost_usd (default $20; 0 disables the cap). Nothing before the submit is billable. max_concurrent (default 1, up to 32) is shared across every fal node in the run, so a canvas full of paid nodes goes one at a time unless you say otherwise - and if one fails, the waiting ones are never started. Results are logged to output/fal/_requests.jsonl; if ComfyUI restarts mid-job, fal Recover Result collects it by id for free.

    And the honest caveat: a camera move you paid for is still a closed model's interpretation of your words. Run it twice with reuse_identical_run on and you get the same clip back without paying again - which also means you can't A/B a single word in the prompt for free. Turn it off when you're actually comparing.

    Install

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

    Restart ComfyUI, or search arkennemasis in ComfyUI-Manager. Only httpx is in requirements.txt, and that's for the pack's Codex nodes - the fal provider is standard library only, so no dependency surgery. Then:

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

    in the .env next to run_nvidia_gpu.bat. There's no key field on the node, so a shared workflow can never leak it.

    Where people get burned

    • The brackets get ignored. prompt_optimizer rewrote them. Turn it off.
    • You asked for four movements. Three is the ceiling; the extra one is noise.
    • Nothing happened and nothing billed. max_cost_usd refused the estimate, or the prompt was empty.
    • Cancelled and assumed you were charged. ComfyUI's Cancel cancels the fal request too; check the ledger rather than your bank statement.
    Categoryarkennemasis/fal/Video/MiniMax

    Inputs (6)

    NameTypeDefaultDescription
    promptSTRINGText prompt for video generation. Camera movement instructions can be added using square brackets (e.g. [Pan left] or [Zoom in]). You can use up to 3 combined movements per prompt. Supported movements: Truck left/right, Pan left/right, Push in/Pull out, Pedestal up/down, Tilt up/down, Zoom in/out, Shake, Tracking shot, Static shot. For example: [Truck left, Pan right, Zoom in]. For a more detailed guide, refer https:
    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.