Nodes/ComfyUI-MAINodes/H3 Contact Sheet (five views)
ComfyUI Node

H3 Contact Sheet (five views)

Five views of one subject, packed into one H3 latent

By matlowai·Created 17 days ago·Updated about 16 hours ago· 112
H3 Contact Sheet (five views)
  • clip
  • vae
  • ref_image
  • positive
  • LATENT
promptthe camera orbits the subject of <Picture 1> ninety degrees clockwise
size1024

Most H3 nodes here are about fixing fast motion. H3 Contact Sheet is the other half of the pack: a genuinely different trick that exploits H3's video model to render images - specifically, five coordinated views of one subject from a single reference, in one pass.

Think turnaround sheet: front, side, three-quarter, back, whatever the prompt asks. The subject is shared because it has to be - all five views are packed on the model's time axis and jointly denoised, so they're consistent by construction in a way that five separate generations never will be. With a reference image it rides in as <Picture 1> and the model is conditioned on it; the time axis is doing the work of keeping the subject recognizable across angles.

How to actually run it

You need three things wired in plus one download:

  • clip and vae - your H3 CLIP and VAE, standard.
  • prompt - defaults to "the camera orbits the subject of <Picture 1> ninety degrees clockwise". Keep the <Picture 1> tag when a reference is attached.
  • ref_image - optional. Leave it unconnected for a text-only sheet (and drop the <Picture 1> tag from the prompt).

And the download: a contact-sheet LoRA on the model, from matlod/minimax-h3-turnaround. The drag-in example workflow (examples/contact_sheet.json) uses stock loaders and sampler throughout - 28 steps of res_multistep at denoise 1.0, LoRA strength 0.75 - so there's nothing exotic in the graph.

size is the one real decision: 512 (the LoRA's training size, fastest), 1024 (the sweet spot), or 2048 (works, but rotation arrives in the later views). Square, snapped to the model's canvas multiple.

Outputs are positive (conditioning) and LATENT - the five-slot AV latent. That latent goes through a stock sampler and then H3 Contact Sheet Decode, which is the mandatory other half of this pair.

The traps

Big one: don't decode the packed latent as a normal video. The five slots are standalone images on the time axis; a whole-latent video decode smears them together into a strip of garbage. That's exactly why H3 Contact Sheet Decode exists - it decodes each slot independently.

Second: ref_image is optional, and its presence changes the prompt contract. Reference attached → the tag is required. No reference → drop the tag or the model looks for a picture that isn't there.

Third, the license bit: this all runs on MiniMax H3, and its community license excludes the US, EU, UK and South Korea. The LoRA and the pack are GPL-3.0 / free, but the model underneath has a geography.

Installing it

Pure-Python pack:

cd ComfyUI/custom_nodes
git clone https://github.com/matlowai/ComfyUI-MAINodes

Restart, find it under model/conditioning/minimax. The example graphs also want ComfyUI-KJNodes for their attention patches, but this node family itself is stock-loaders all the way down. If you've seen it before under the old name ComfyUI-H3-ContactSheet, this is the consolidated home - that repo stays up for existing installs but this is the one that moves forward.

Categorymodel/conditioning/minimax

Inputs (5)

NameTypeDefaultDescription
clipCLIP
vaeVAE
promptSTRINGthe camera orbits the subject of <Picture 1> ninety degrees clockwise
sizeINT1024512–2048Square size of each generated view. 512 = LoRA training size (fastest), 1024 = sweet spot, 2048 works (rotation arrives in the later views).
ref_imageoptIMAGEOptional. Unconnected = text-to-sheet: no reference rows, prompt only.

Outputs (2)

NameTypeDescription
positiveCONDITIONING
LATENTLATENT