Nodes/ComfyUI-H3-Multishot/H3 Optional Image (I2V on/off)
ComfyUI Node

H3 Optional Image (I2V on/off)

The right way to turn I2V on and off in an H3 chain

By jlucasmcrell·Created 21 days ago·Updated 2 days ago· 31
H3 Optional Image (I2V on/off)
  • image
  • image
enabledtrue

H3 Optional Image exists because a plain ComfyUI switch can't express "no image." A normal switch node needs both branches wired, so "turning I2V off" ends up feeding a placeholder - usually a black EmptyImage - into start_image. That's not text-to-video, that's video that starts from a black frame. This node is the fix: flip enabled off and it emits nothing at all, which is exactly what an optional input expects to receive.

If you're building an H3 chain in ComfyUI-H3-Multishot, you'll reach for this any time a single graph needs to do both jobs - image-to-video for the first shot, plain text-to-video for everything else. It's a gate, not a generator, and it's the difference between a graph that does what it says and one that quietly starts every clip from a void.

How it works

Dead simple under the hood. When enabled is on, the image on the input socket passes straight through to the output. When it's off, the node returns None - the Python equivalent of "this wire isn't connected" - so the downstream optional input behaves as if you'd never plugged anything in.

That matters more than it sounds. MiniMax H3 is an omni-modal model that treats a start frame as real conditioning, and the H3 samplers in this pack distinguish I2V from T2V by whether that input is connected at all. Sending a blank frame isn't a neutral choice; it's a scene with nothing in it. An optional-input gate like this one is the only way to make the choice in the graph rather than by rewiring.

The inputs that matter

There's one real control and one passthrough:

  • enabled (boolean, default true) - the gate. The widget labels itself image ON / no image (T2V) so the state is visible at a glance.
  • image (optional IMAGE) - whatever you want passed through when enabled. Wire it to a LoadImage or the previous shot's last frame.

The single output is image. In the shipped workflows you'll find this gating the sampler's start_image (I2V) input, with the enabled state wired from a master control so one toggle flips the whole chain's behavior.

Installing it

It ships with the ComfyUI-H3-Multishot pack, so there's nothing extra to grab:

cd ComfyUI/custom_nodes
git clone https://github.com/jlucasmcrell/ComfyUI-H3-Multishot

Or search H3 Multishot in ComfyUI Manager (it's on the registry as comfyui-h3-multishot). You need ComfyUI v0.30.0+ for native MiniMax-H3 support. The pack declares no Python dependencies on purpose - everything it imports is already guaranteed by ComfyUI - so installs don't fight over torch versions.

Gotchas

Not a node that bites, but one trap to know: if enabled is on and nothing is connected to image, the node passes nothing anyway and prints a line saying so. That's correct behavior - an unconnected optional is still "off" - but it's easy to stare at the graph wondering why the reference image vanished when the real cause is a wire you forgot to drag. If you're getting no image where you expect one, check that both the toggle and the wire are actually live.

Categoryutils/minimax

Inputs (2)

NameTypeDefaultDescription
enabledBOOLEANtrueOff = emits nothing, so the downstream optional input behaves as if it were unconnected.
imageoptIMAGEImage to pass through when enabled.

Outputs (1)

NameTypeDescription
imageIMAGE