Nodes/ComfyUI-MiniMax-H3-Studio/H3 Studio - Normal / Benchmark Output
ComfyUI Node

H3 Studio - Normal / Benchmark Output

The node that keeps benchmarks from secretly costing you a 7th image

By thaakeno·Created 17 days ago·Updated 5 days ago· 79
H3 Studio - Normal / Benchmark Output
  • normal_image
  • benchmark_image
  • image
  • selected_mode
benchmark_enabledfalse

ComfyUI has a nasty habit with switches: if both branches feed the same downstream node, both branches execute - the switch node just picks which value passes through. That's fine for cheap nodes and a disaster for benchmarks, because the whole point of a benchmark is to control what runs. H3StudioLazyImageSwitch fixes this the ComfyUI-proper way: it's a lazy switch, using the framework's lazy-input machinery so only the branch you actually want gets evaluated.

The one widget is benchmark_enabled. Set it off and the node requests only the normal-image branch; set it on and it requests only the benchmark branch. The tooltip spells out the payoff: "OFF runs one normal image. ON runs only the selected A/B matrix - never an extra seventh image."

Why lazy matters here

The maintained workflow has two image paths feeding it: the normal generation (Director → sample → decode → select) and the Benchmark Lab's matrix output. Both produce an IMAGE, and you want to look at whichever you ran. With an ordinary switch, toggling to benchmark mode would still evaluate the normal branch - a hidden 5-20 frame H3 generation you didn't ask for, eating VRAM and time before the switch "discards" it. Lazy inputs change the semantics: ComfyUI doesn't execute a node's upstream graph unless that node is actually needed for the requested output. The switch tells the scheduler what's needed, so toggling benchmark on genuinely skips the normal sampler branch, and vice versa.

The mechanism is worth appreciating because it's the difference between "benchmarking" and "benchmarking plus an accidental bonus generation." If you've ever watched a benchmark run finish and then start a mystery extra image, you know exactly why this node exists.

Outputs and wiring

image (IMAGE) is the selected output; selected_mode (STRING) tells you which branch ran - a cheap confirmation that you're looking at what you think you're looking at. Wire the normal generation's selected still into normal_image and the Benchmark Lab's comparison_grid into benchmark_image, then feed image into your save/preview.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/thaakeno/ComfyUI-MiniMax-H3-Studio.git
cd ComfyUI-MiniMax-H3-Studio
python -m pip install -r requirements.txt

Restart and hard-refresh the frontend. No extra dependencies. If you run benchmarks at all, this is the node that keeps the discipline honest - and it's also just a clean lesson in why lazy switches are the right tool for expensive branches.

CategoryH3 Studio/Benchmark

Inputs (3)

NameTypeDefaultDescription
benchmark_enabledBOOLEANfalseOFF runs one normal image. ON runs only the selected A/B matrix—never an extra seventh image.
normal_imageoptIMAGE
benchmark_imageoptIMAGE

Outputs (2)

NameTypeDescription
imageIMAGE
selected_modeSTRING