What the blockout supplies
The motivation, in the source test's author words, is control. Text prompts like "orbit right" or "the two swap places" are the kinds of instructions video models get wrong in expensive ways: the camera goes the wrong way, the wrong person ends up on the wrong side, and each correction costs another generation. A blockout replaces those sentences with positions. The shapes stand where the people should stand, the camera moves the way you want it to move, and the model paints the people into a shot whose staging has already been decided. It still generates the motion, and it can reinterpret the reference — the limits below are part of the method, not footnotes to it.
This is the same split the film industry uses in previs, applied at desktop scale. The blockout decides composition, blocking and camera. The reference images decide identity. Neither input is asked to do the other's job.
ALFW has not run this workflow. This guide adapts ai-muninn's published tests; the reported timings and results are the author's observations, not ALFW measurements. The author publishes the full workflow file and settings with the test, and states that each test ran once, with no seed sweep. Treat the numbers as one documented run, not a benchmark.
Step 1: Block the shot in Blender
Keep the scene to capsules and boxes: one stand-in per person, no fingers, no props, nothing the model could mistake for content. Give each stand-in a distinct color and a distinct height. Add one asymmetric landmark, such as an arch at the left rear, so a mirrored output is obvious at a glance.
Set the render to the same frame size as your planned output and exactly the output frame count, on the 17k+5 grid H3 uses. The source test used 864x480 and 124 frames at 24 fps. Do not render a shorter reference and expect the model to improvise the ending: in the test, a 120-frame blockout was trimmed to 107 usable frames, and the last frames had no blocking to follow.
You do not need to model this by hand. The source test asked a language model for a Blender Python script describing the shot in plain terms (who walks where, who stays, what the camera does), then rendered the PNG sequence on CPU and assembled it with ffmpeg. Blender does not need the GPU for this stage.
Step 2: Make reference images that cannot be confused
One image per person: full body, front view, clean background, head to feet. Make the two people as different as you can manage (height, hair, build, clothing color), so that if one identity bleeds into the other, you see it in the first frame you check. In the source test the pair was a tall woman with very long white hair in a white robe and a short, stocky man with short black hair in a navy work jacket.
Step 3: Wire the reference-to-video node
In ComfyUI, use the MiniMaxH3ReferenceToVideo node. Connect the blockout video through LoadVideo and GetVideoComponents to the first reference-video slot, and the character images to the first reference-image slots in the order your prompt will name them. Set width, height and length to match the blockout; the author set ref_image_size to "match". One wiring point from the test is worth copying exactly: the VAE input takes the video VAE, which encodes both the reference video and the reference images. The source test publishes its full workflow in ComfyUI API format — work from that file rather than from memory, so node versions and model loading match what was tested.
The exact tested configuration: the author used the checkpoint minimax_h3_ref2va_pruned_nvfp4, with 14 steps, the res_multistep sampler, the simple scheduler and Spectrum enabled. Those settings belong to that local workflow; they are not settings for every H3 checkpoint or hosted product.
Step 4: Cast each stand-in in the prompt
The prompt has to say, for every subject, two things separately: where the look comes from and where the movement comes from. Name the photo, name the stand-in by color, shape and starting side, and then state what the reference video is for. What follows is a conceptual casting example, not the complete Ref2VA prompt:
Subject 1 is the woman from Picture 1, with her face, hair, build and outfit preserved. Her position and walking path come from the tall red capsule in Video 1. Subject 2 is the man from Picture 2. His position and turn come from the short blue box in Video 1. Video 1 supplies camera movement, relative positions, blocking, timing and occlusion only. Replace the colored stand-ins completely; show no capsules, boxes or gray material.
Then describe the shot itself in order: starting positions, the crossing, who occludes whom, and the final positions. H3's Ref2VA prompt format has six sections — subject_definitions, summary, retention_analysis, detailed_description, overall_soundscape and non_diegetic_music — and the official format is documented in the MiniMax H3 repository, as linked from the source test. Write all six for a real run; the casting paragraph above only covers the first two.
Step 5: Render, then check positions before faces
The source test ran 14 steps and checked the wide shot at five sampled frames. What held: the identities, the left-right order, the crossing, the occlusion order, and the height difference. What drifted: exact distances, with both people pulled somewhat toward the center, and a smaller height gap than blocked. One movement, the man's small in-place turn, was ignored entirely.
So grade a blockout shot in that order. Positions and occlusion first, because those are what the blockout is for. Small gestures last: in this test, broad relative staging was retained more consistently than exact distances and the man's small turn. The result does not establish a general failure order — it is one documented run.
Try a separately blocked medium shot for faces
At 864x480 in a full-body wide shot, each head in the test was only tens of pixels wide, and the faces were blurry. The author did not raise the resolution. Instead, a second scene was blocked with the camera at waist-to-chest height, the two standing and talking. The author reported clearer facial features in that separately blocked medium shot — head width rose to roughly 135-156 pixels and eyes, brows, nose and mouth became readable — at the same resolution, with a ComfyUI-reported execution time of 81.7 seconds.
Where a scene needs both wide staging and facial detail, plan for two blockouts from the start: a wide one that proves the movement, and a medium one that carries the faces. They are separate shots with separate prompts, not one shot zoomed in after the fact.
What this does not give you
Precision. In the published test, the blockout controlled relative placement (left or right, in front or behind, taller or shorter, which way someone walks) better than exact distances or small gestures. The evidence base is also thin: the documented test ran each configuration once, on one machine, with no seed sweep. A related test by the same author, of the same workflow with a faster H3 adapter, adds one more data point: in that separate orbit test, text-only Flex missed the far side on both tested seeds, while reference-video runs reached the opposite side in six clips — original H3, Flex and Turbo, each at seeds 42 and 7. That is encouraging, and it is not six repetitions of one configuration or a controlled six-versus-six comparison. Test multiple seeds and inspect the complete output before trusting a shot to this workflow in production; two successful runs would not establish production reliability either.
Sources
- [1] ai-muninn, "Block a scene in Blender, let MiniMax-H3 film it: local Ref2VA on an RTX 5090" (primary test this tutorial is based on; full workflow, settings and prompt structure published with the article; the test also cites the Seedance 2.5 API guide's description of reference video as a motion signal)Read source
- [2] ai-muninn, "Pika-H3-Flex on an RTX 5090: 2x faster MiniMax-H3, and a Blender blockout makes the camera obey" (related test: text-only orbit vs blockout-guided orbit)Read source
- [3] ComfyUI on Instagram, blockout-to-video workflow reel (inspiration, November 11, 2026)Read source