arkennemasis fal · MiniMax H3 Max Reference to Video · $0.05-0.16/s
Keep the same character across every shot
- reference_image_1
- reference_image_2
- reference_image_3
- reference_image_4
- reference_image_5
- reference_image_6
- reference_video_1
- reference_video_2
- reference_video_3
- reference_audio_1
- reference_audio_2
- reference_audio_3
- video
- video_path
- timings
- expanded_prompt
- seed
- info
References in, a shot out, and the character actually looks the same
The consistent-character problem shows up the moment you need a second shot. One clip is easy; clip four is where the jacket changes colour and the face slides two people to the left. Reference to Video is the H3 Max answer: you hand it subject and style references - images, clips and audio - and describe the shot in a prompt that names them.
The naming is the trick, and the tooltip spells it out: refer to reference assets by modality and order - "Image 1", "Image 2", "Video 1", "Audio 1". Not "the woman in the red jacket in the third picture", just Image 3. That numbering is how the model knows which asset you mean, and it's the one thing you have to get right.
Inputs that matter
- prompt - the shot, written with numbered references. E.g. "Image 1 walks through Image 2's hallway, camera follows at shoulder height, Video 1 for the pace."
- reference_image_1…6 - subject and style references, each socket optionally carrying a batch, in socket order.
- reference_video_1…3 - motion references, each 2–15 seconds with a combined duration of at most 15 seconds.
- reference_audio_1…3 - audio references, same 2–15 second shape.
- The cap matters: images, videos and audio together must add up to at most 12 files, so six images plus three videos plus three audios is exactly the ceiling.
- duration - seconds, default 5. resolution -
480P,768P(default),1080P. aspect_ratio -adaptiveby default (plus21:9through9:16), whereadaptivelets the references decide the shape, which is usually what you want for a shot about consistency. - prompt_expansion_mode -
disabled,fast,balanced(default) orquality. With numbered references in the prompt, expansion is the thing most likely to garble your carefully-ordered instructions. If your prompt is precise, set it todisabled. - seed (
-1= model's pick) and enable_safety_checker (on).
Guards: max_cost_usd (default $20, checked before upload), reuse_identical_run, extra_json, max_concurrent (1 by default).
What it costs, including the part nobody reads
Video is billed at $0.05/s (480p), $0.08/s (768p), $0.16/s (1080p) on your requested output duration. On top of that, each request includes 4,096 reference tokens shared across all your references, and extra usage costs $0.02 per 1,000 tokens, prorated.
The worked example from fal is the clearest way to see it: a 5-second 768p output costs $0.40 with up to four square reference images. A fifth square image takes it to about $0.42. Square references - including 1024×1024 and 2048×2048 uploads - cost 1,024 tokens each, and four fit inside the allowance. Non-square images, video references and audio references consume the allowance differently, which is why a five-second clip with three video references costs noticeably more than the same clip with one photo.
Outputs
video, video_path, timings, expanded_prompt (what actually got sent - check it when the numbers seem to have been ignored), seed, and info with the request id, estimate and fal's raw answer.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install -r comfyui-arkennemasis/requirements.txt
Restart, then find it under arkennemasis/fal/Video/MiniMax. Key in the .env next to run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
Where people get burned
"Image 1" is not the image you're looking at. References are numbered in socket order, first picture first, and batches are flattened - so two pictures on reference_image_1 are Image 1 and Image 2, and the third picture lives on socket 2 as Image 3. Get this wrong and the model confidently uses the wrong subject.
Twelve files is a hard ceiling. Nine images plus three videos is fine; ten images plus three videos is not. Count before you run, because this is a validation failure, not a graceful degradation.
References aren't a lock. They're conditioning, not a face swap. Consistency improves a lot and drifts never. For a character that must be identical shot to shot, a trained subject LoRA (the pack has a LoRA variant of image-to-video) or a per-shot reference refresh is the stronger play.
Video references are the expensive kind. Motion references eat the token allowance faster than photos, and a five-second output with a couple of video references plus prompt expansion on quality is where your estimate quietly creeps toward the cap.
Assemble your run folders. Every fal run writes into its own output folder, and the pack pairs this with a run-log and contact-sheet utility - useful when you're comparing eight attempts at the same shot rather than looking at them one at a time.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Text prompt for video generation. Refer to reference assets by their modality and order in the reference lists: Image 1, Image 2, Video 1, Audio 1, and so on. | |
| duration | INT | 55–15 | The duration of the video in seconds. |
| resolution | COMBO | 768P | The native generation resolution, or 1080P latent refinement from a native 768P source. |
| seed | INT | -1-1–2147483647 | Random seed. A random seed is selected when omitted. -1 leaves it to the model. |
| enable_safety_checker | BOOLEAN | true | If set to true, the safety checker will be enabled. |
| prompt_expansion_mode | STRING | balanced | How 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. |
| aspect_ratio | COMBO | adaptive | The aspect ratio of the generated video. |
| reference_image_1opt | IMAGE | URLs of subject/style reference images, referenced in the prompt as Image 1, Image 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_image_2opt | IMAGE | URLs of subject/style reference images, referenced in the prompt as Image 1, Image 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_image_3opt | IMAGE | URLs of subject/style reference images, referenced in the prompt as Image 1, Image 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_image_4opt | IMAGE | URLs of subject/style reference images, referenced in the prompt as Image 1, Image 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_image_5opt | IMAGE | URLs of subject/style reference images, referenced in the prompt as Image 1, Image 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_image_6opt | IMAGE | URLs of subject/style reference images, referenced in the prompt as Image 1, Image 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_video_1opt | VIDEO | URLs of motion/reference video clips (2-15 seconds each, combined duration at most 15 seconds), referenced in the prompt as Video 1, Video 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_video_2opt | VIDEO | URLs of motion/reference video clips (2-15 seconds each, combined duration at most 15 seconds), referenced in the prompt as Video 1, Video 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_video_3opt | VIDEO | URLs of motion/reference video clips (2-15 seconds each, combined duration at most 15 seconds), referenced in the prompt as Video 1, Video 2, and so on. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_audio_1opt | AUDIO | URLs of reference audio clips (2-15 seconds each, combined duration at most 15 seconds), referenced in the prompt as Audio 1, Audio 2, and so on. Images, videos, and audio can be provided individually or together. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_audio_2opt | AUDIO | URLs of reference audio clips (2-15 seconds each, combined duration at most 15 seconds), referenced in the prompt as Audio 1, Audio 2, and so on. Images, videos, and audio can be provided individually or together. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| reference_audio_3opt | AUDIO | URLs of reference audio clips (2-15 seconds each, combined duration at most 15 seconds), referenced in the prompt as Audio 1, Audio 2, and so on. Images, videos, and audio can be provided individually or together. Reference images, videos, and audio clips must add up to at most 12 files. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1). | |
| 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 (6)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| timings | STRING | — |
| expanded_prompt | STRING | — |
| seed | INT | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |