Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · MiniMax H3 Max Image to Video · $0.05-0.16/s
ComfyUI Node

arkennemasis fal · MiniMax H3 Max Image to Video · $0.05-0.16/s

The one that follows your prompt better

By Hishamahmer·Created 3 months ago·Updated 10 days ago· 11
arkennemasis fal · MiniMax H3 Max Image to Video · $0.05-0.16/s
  • target_audio
  • image
  • end_image
  • video
  • video_path
  • timings
  • expanded_prompt
  • info
◄prompt►
◄duration5►
◄resolution768P►
◄seed-1►
◄enable_safety_checkertrue►
◄prompt_expansion_modebalanced►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

H3 with the post-training turned up

MiniMax H3 is the open 33B omni-modal video model with native audio - picture and sound generated together rather than bolted together. H3 Max is fal's own post-trained variant of it: same model, retuned for stronger prompt adherence and better aesthetics, running on fal's inference stack for higher throughput.

So when do you pick this over the plain H3 image-to-video node? When your prompt keeps half-arriving. Prompt adherence is the axis this variant exists for, and it's the axis that matters most when your shot depends on something specific - a gesture, a beat of camera movement, a stated action happening in a stated order.

Same practical caveat as its sibling applies to the open-weights story: H3's Community License carves the US, EU, UK and South Korea out of its Applicable Territory, so for a lot of readers the hosted endpoint is the only licensed path. Hosted, there's no licence to think about - you're renting inference.

How it works

Your image goes up to fal's CDN (free), one billed call goes to minimax/h3-max/image-to-video, the node shows status and elapsed time while it waits, and the finished clip is downloaded to output/fal/minimax_h3-max_image-to-video/. Cancel in ComfyUI cancels the job on fal.

Inputs that matter

  • image - the first frame, and the source of the output canvas. The aspect ratio of your still is the aspect ratio of your clip; there's no aspect box on this node because it wouldn't be honest.
  • end_image - optionally supply the last frame and H3 Max animates between the two. This is how you land a shot on a specific composition, and it's the single most under-used socket in this family.
  • prompt - the text. Where you'd write a mood board for the plain H3, here you can write instructions, because this variant actually follows them. Describe action, camera and sound; the endpoint generates audio natively, so a line about a door slamming is not wasted.
  • resolution - 480P, 768P (default), 1080P. Note that unlike plain H3 (which goes to 2K and 4K) the top of this ladder is 1080P, and even that is latent refinement from a native 768P source. The pricing text quotes 480p at $0.05/s, 768p at $0.08/s and 1080p at $0.16/s as the post-promotion rates, with a 50%-off launch rate that ran through 30 September 2026 - check the node's badge rather than an old blog post.
  • prompt_expansion_mode - disabled, fast, balanced (default), quality. This is the lever that decides how much the model rewrites you before generating. balanced picks per request; quality can spend up to ~30 seconds on a richer prompt. When you've written something precise, disabled keeps it precise - which is half the reason to be on the Max endpoint in the first place.
  • target_audio - pin your own audio over the generated soundtrack (≥2 s, ≤15 MB; the tail is trimmed or silence-padded, never time-stretched).
  • duration - seconds, default 5. seed (-1 = random). enable_safety_checker (on).

Guards, shared by every fal node in this pack: max_cost_usd ($20 default, stops before upload, 0 disables), reuse_identical_run (no double-billing identical inputs), extra_json (raw JSON into the request for fields without a widget), max_concurrent (1 by default - one paid fal call at a time across the run).

Outputs

video, video_path, timings (fal's per-stage timing), expanded_prompt (the prompt that was really sent - read it whenever a result surprises you) and info (request ID, cost estimate, saved files, fal's full answer).

Install

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

Restart ComfyUI, then it's under arkennemasis/fal/Video/MiniMax. The key is one line in the .env beside run_nvidia_gpu.bat:

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

Where people get burned

Expecting a 2K or 4K option and not finding one. This endpoint tops out at 1080P refinement. If you want the 2K/4K tiers, that's the plain MiniMax H3 Image to Video node in the same menu - and remember those are upscales of a 768P base anyway.

Assuming you're comparing like with like. H3 and H3 Max are not the same product with a price difference: one is the open model, one is fal's retune. If a shot works on one and not the other, that's the difference you're looking at, not your seed.

Prompt expansion quietly rewriting your intent. The expanded_prompt output exists so you can check. If your precise instruction came back as a flowery paragraph, switch to disabled and rerun.

Iterating at full resolution. Trying six motion ideas at 1080P gets expensive fast. Draft at 480P or 768P, then regenerate the winner at the tier you want.

A crash mid-run costs nothing extra. The submit is logged in output/fal/_requests.jsonl; the job keeps running on fal and fal Recover Result collects it by request id, free. fal · History (free) loads any completed run back into a new graph.

Categoryarkennemasis/fal/Video/MiniMax

Inputs (13)

NameTypeDefaultDescription
promptSTRINGText prompt for video generation
durationINT55–15The duration of the video in seconds.
resolutionCOMBO768PThe native generation resolution, or 1080P latent refinement from a native 768P source.
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. 'balanced' returns in about a second. 'quality' spends up to ~30s on a richer prompt.
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
imageoptIMAGEOptional URL of the image to use as the first frame. When provided, the output canvas follows this image. If only end_image_url is provided, the canvas follows that last frame instead. If both images are omitted, the request is handled as text-to-video (16:9 by default).
end_imageoptIMAGEOptional URL of the image to use as the last frame. It may be provided alone for end-only keyframe generation; in that case the output canvas follows this image.
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 (5)

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