H3 Optional Image (I2V on/off)
The right way to turn I2V on and off in an H3 chain
- image
- image
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 itselfimage 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | BOOLEAN | true | Off = emits nothing, so the downstream optional input behaves as if it were unconnected. |
| imageopt | IMAGE | Image to pass through when enabled. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |