arkennemasis fal · MiniMax H3 Reference to Video · $0.05-0.16/s
12 files in, and a prompt that has to learn to count
- 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
- expanded_prompt
- info
This is the interesting one in the H3 family. Instead of a first frame, you feed it a small pile of references - images for subject and style, clips for motion, audio for sound - and describe how they combine. It's the closest thing on the hosted market to "keep this person, move them like that clip, over this track," and it's where H3's unified multimodal context actually earns its keep.
It's also the fiddliest node in this pack, because the prompt has to refer to the references by number, and the numbering is decided by socket order.
How the referencing works
Each reference socket is a batch-capable one. The pack sends them in socket order, and the first picture on socket 1 is Image 1, the second is Image 2, and so on; videos are Video 1…3, audio Audio 1…3. The prompt tooltip says it plainly: refer to assets by modality and order - Image 1, Image 2, Video 1, Audio 1.
So a prompt that works looks like: "Image 1 walks through the doorway, matching the camera movement of Video 1, with Audio 1 as the room tone underneath." A prompt that gets you a mess is "make the person from the photo move like the video," because nothing tells the model which photo or which video you meant.
Limits you'll hit
You get six image sockets, three video sockets and three audio sockets, and the endpoint caps the whole set at 12 files. Reference video clips must be 2–15 seconds each with a combined duration of at most 15 seconds. Image pricing is where it gets interesting: the first five reference images are free and each additional one costs $0.08 - so a six-image reference set adds real money on top of the per-second rate. Video itself runs $0.05/s at 480p, $0.06 at 768p, $0.13 at 2K and $0.16 at 4K, with 2K as the default resolution.
Settings worth setting
resolution - 480P and 768P are native generation modes; 2K and 4K upscale a 768P base result. If your references are phone photos, 768P is honest and cheap; 2K is for delivery. aspect_ratio defaults to adaptive, which is the right choice here - it lets the references decide the shape rather than forcing 16:9 on a portrait subject. duration is 5–15 seconds, billed per second.
prompt_expansion_mode behaves slightly differently on this endpoint than on the plain ones: balanced picks per request, fast returns in about a second, quality spends up to ~30s. Since your prompt contains numbered references, a rewrite that "improves" your wording can also scramble your numbering - check the expanded_prompt output if the output ignores the wrong reference.
Then the usual safety rail: enable_safety_checker, max_cost_usd (default $20 cap), reuse_identical_run, extra_json, max_concurrent (1 by default).
Outputs: video, video_path, expanded_prompt, info.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install httpx
Manager users: search arkennemasis. Key goes in the .env beside run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
Restart ComfyUI when you're done. No key box on the node - deliberate, so a key can never be baked into a workflow you share.
Real gotchas
- Count your sockets before you write the prompt. Add a second image to socket 1 tomorrow and every number in your prompt shifts. If a prompt suddenly produces the wrong subject, this is why.
- The 12-file ceiling is a total, not a per-modality limit. Six images + three videos + three audios is already full.
- The 15-second combined video-reference cap catches people who wire in three 10-second clips expecting them all to be used. They won't be.
- Extra reference images cost money. Five free, $0.08 each after that, per call - and
reuse_identical_runis the thing that saves you from paying twice when you re-run the same graph. - Restart mid-wait? The render continues on fal. Pull the request id from
output/fal/_requests.jsonland use fal Recover Result - free, because it only downloads.
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 | 2K | The resolution of the generated video. 480P and 768P are native generation modes; 2K and 4K upscale a 768P base result. |
| 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. 'fast' returns in about a second. 'balanced' picks per request. 'quality' spends up to ~30s on a richer prompt. Empty leaves it out. |
| 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 (4)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| expanded_prompt | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |