Nodes/VRGameDevGirl Video Enhancement Nodes/MiniMax H3 Text / Reference to Image
ComfyUI Node

MiniMax H3 Text / Reference to Image

MiniMax H3 does text-to-image now, with one weird trick

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
MiniMax H3 Text / Reference to Image
  • clip
  • vae
  • source_image
  • ref_images
  • positive
  • five_frame_latent
  • formatted_prompt
prompt
width1344
height768
prompt_formatstill_image
edit_fidelitybalanced
ref_image_sizematch

H3 doesn't do single images. It's an audiovisual model whose smallest job is five frames, and pretending otherwise makes the model do a weird little video instead of a photograph. MiniMax H3 Text / Reference to Image is VRGameDevGirl's workaround, and it's genuinely clever: it turns your normal image prompt into H3's own vocabulary for "camera completely locked, nothing moves, this is one still picture shot as five identical frames" - then the whole thing behaves like a burst you can pick the best frame from.

Want the whole story in one sentence? Connect source_image and it's reference-based editing through H3; leave source_image empty and it's text-to-image. Either way you get a five-frame burst, not a single latent - decode it, and let the pack's Select Still Frame node choose the keeper.

How the "still image" trick works

H3 is unified-context: text, images and audio all go into one prompt context. So this node's real work is prompt engineering with teeth - it rewrites your request into the model's structured integrated_multimodal_description format, adding explicit "camera is completely locked, all subjects/lighting/hair/particles stay motionless across the entire five-frame burst, treat every frame as the same finished photograph" instructions, plus overall_soundscape: Silence. so the model doesn't try to add ambience. That framing is what makes five frames come out looking like five candidates for one image instead of the first five frames of a clip.

For editing, source_image becomes <Picture 1> in the prompt context. Note the author's deliberate choice: it's not locked as a keyframe, so the model is allowed to change it visibly - that's the difference between "edit this image" and "keep this exact frame as the start of a video." edit_fidelity controls that verbally: preserve tells H3 to keep composition and subject identity unless the edit requires otherwise, balanced (default) allows cleaner changes, creative treats it as a weak reference. There's no numeric reference-strength knob in H3, so this is the closest lever you get.

Inputs and outputs

  • clip / vae - from your H3 checkpoint loader, same as the video nodes.
  • prompt - the actual edit or scene description in plain English.
  • prompt_format - still_image (default) wraps your prompt in the static-burst vocabulary above; raw_h3 passes an already-formatted H3 prompt through unchanged. Use raw_h3 if you're iterating on the generated formatted_prompt output.
  • edit_fidelity and ref_image_size (match is faster, max keeps more reference detail at real VRAM cost).
  • source_image - optional; the image to edit.
  • ref_images - up to 8 auto-growing extra references for identity, outfit, environment, style.

Outputs: positive conditioning, five_frame_latent (sample it, VAE-decode, then feed Select Still Frame), and formatted_prompt - a STRING of exactly what was sent to the model, which is gold for debugging why a shot went weird.

Width/height default to 1344×768; keep frames at a sane aspect for the model.

Install

Same pack, same routine:

cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl.git

ComfyUI Manager: search "VRGameDevGirl", install, restart, hard-refresh. Heavy requirements - Cython scikit-build-core first on Windows portable, Python 3.12 preferred, voxcpm/llama-cpp-python will want a compiler if no wheel matches.

Where people get burned

  • Editing vs. generating. Hook up source_image and expect heavy identity changes; it's not an img2img lock, it's a reference-edit. If you need pixel-level preservation, this isn't the node.
  • Forgetting the license. The H3 Community License excludes the EU, UK, US and South Korea from running the local weights. Don't let a neat workflow be the thing that gets you to skip that check.
  • Not looking at the formatted_prompt. When a "still" comes out with motion or a camera drift, that string is where the problem lives - usually a prompt that contradicts the lock instructions.
  • Skipping the Select Still Frame step. The latent is five frames. Decode and pick; every frame is part of the answer.
Categorymodel/conditioning/minimax

Inputs (10)

NameTypeDefaultDescription
clipCLIP
vaeVAE
promptSTRING
widthINT134432–16384
heightINT76832–16384
prompt_formatCOMBOstill_imageWrap a normal image prompt for a static H3 burst, or pass an already-formatted H3 prompt unchanged.
edit_fidelityCOMBObalancedPrompt-level preservation guidance for the primary source image. H3 does not expose a numeric reference strength.
ref_image_sizeCOMBOmatchMatch is faster; max retains more reference detail but can use substantially more VRAM.
source_imageoptIMAGEPrimary image to edit. It becomes <Picture 1> but is not locked as a keyframe, allowing visible changes.
ref_imagesoptCOMFY_AUTOGROW_V3

Outputs (3)

NameTypeDescription
positiveCONDITIONING
five_frame_latentLATENT
formatted_promptSTRING