Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · MiniMax H3 Text to Video LoRA · $0.0625-0.20/s
ComfyUI Node

arkennemasis fal · MiniMax H3 Text to Video LoRA · $0.0625-0.20/s

Lock a style in, at 25% above the base rate

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · MiniMax H3 Text to Video LoRA · $0.0625-0.20/s
  • target_audio
  • video
  • video_path
  • expanded_prompt
  • info
◄prompt►
◄duration5►
◄resolution2K►
◄seed-1►
◄enable_safety_checkertrue►
◄prompt_expansion_modebalanced►
◄aspect_ratio16:9►
◄loras[{"path": "", "scale": 1}]►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

Take the plain MiniMax H3 text-to-video node, add a JSON widget, add about 25% to the per-second price. That's this node, and the widget is the only thing worth writing about - because loras is where a ComfyUI habit leads you straight into an error.

loras is a list of adapters fal already has

The default is [{"path": "", "scale": 1}]. Note the empty string: that's a template, not a working value. You fill in a path that fal can fetch and a strength:

[{"path": "https://.../style-adapter.safetensors", "scale": 0.8}]

Multiple entries are allowed. What you can't do is point it at your local LoRA folder - this field is the hosted endpoint's own adapter slot, so you need an adapter uploaded or trained on fal's side (their trainer is the usual route). Paste in broken JSON and the node refuses the run at validation, before the upload, which means a free failure rather than a billed one.

Why you'd pay the premium

Style and character locking. Asking a video model for "the same look every time" in prose is a losing game across a multi-shot sequence; an adapter at a fixed scale is how you actually hold it. The rate for this endpoint is $0.0625/s at 480p, $0.075 at 768p, $0.1625 at 2K and $0.20 at 4K against $0.05–$0.16 for the non-LoRA endpoint. On a 10-second 2K shot that's a difference you'll notice, so don't use it because it's there.

The other inputs

prompt and duration (5–15s) are the shot. resolution defaults to 2K, and remember that 480P and 768P are native while 2K and 4K are refinements of a 768P base - the LoRA was applied to the transformer, so it survives the refinement, but you're paying for an upscale pass either way. aspect_ratio defaults to 16:9 with seven options. prompt_expansion_mode rewrites your prompt before generation (fast ~1s, balanced picks per request, quality up to ~30s), which matters more on a LoRA node than elsewhere: a rewrite can dilute the exact trigger phrasing your adapter was trained against. If a LoRA seems weak, set this to disabled and check the expanded_prompt output to see what was sent.

target_audio pins a clip (2s minimum, 15MB) over H3's generated soundtrack - replacement, not mixing, and the only way to get your own audio on an H3 clip because the model won't produce silence.

Pack plumbing: seed, enable_safety_checker, max_cost_usd (default $20, 0 off), reuse_identical_run, extra_json for fal fields the node has no box for, and max_concurrent.

Outputs: video, video_path, expanded_prompt, info.

Install

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

Manager → arkennemasis works too. Then:

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

in the .env beside run_nvidia_gpu.bat, followed by a restart.

Traps

  • The default path is empty and will fail. Someone files this as a bug every few weeks.
  • reuse_identical_run returns files you've already paid for when the settings and inputs match - including loras, so changing scale does trigger a real run.
  • max_concurrent of 1 means everything queues; if a node fails, queued fal calls are dropped rather than started, so a broken graph can't run up a bill behind your back.
  • Restart mid-wait and the job still finishes on fal. Take the id from output/fal/_requests.jsonl and use fal Recover Result - the download is free.
Categoryarkennemasis/fal/Video/MiniMax

Inputs (13)

NameTypeDefaultDescription
promptSTRINGText prompt for video generation
durationINT55–15The duration of the video in seconds.
resolutionCOMBO2KThe resolution of the generated video. 480P and 768P are native generation modes; 2K and 4K upscale a 768P base result.
seedINT-1-1–2147483647Random seed. A random seed is selected when omitted. -1 leaves it to the model.
enable_safety_checkerBOOLEANtrueIf set to true, the safety checker will be enabled.
prompt_expansion_modeSTRINGbalancedHow much effort to spend rewriting the prompt before generation. 'disabled' skips prompt expansion. 'fast' returns in about a second. 'balanced' picks per request. 'quality' spends up to ~30s on a richer prompt. Empty leaves it out.
aspect_ratioCOMBO16:9The aspect ratio of the generated video.
lorasSTRING[{"path": "", "scale": 1}]List of LoRA adapters to apply to the transformer. JSON. Required.
target_audiooptAUDIOOptional URL of an audio clip at least 2 seconds long (maximum 15 MB) to pin to the generated soundtrack. Longer clips are trimmed to the requested video duration, keeping the beginning. The original audio replaces the output soundtrack, padded with silence if shorter than the video, without changing playback speed. Exceptionally high sample rates may be resampled to 96 kHz. Accepts an HTTP(S) URL or a base64 data UR
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 (4)

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