Nodes/ComfyUI-MiniMax-H3-Image-Studio/MiniMax H3 Image • Single Image Output
ComfyUI Node

MiniMax H3 Image • Single Image Output

Pick the best still out of H3's frame packet

By astropuzzo·Created 22 days ago·Updated 6 days ago· 123
MiniMax H3 Image • Single Image Output
  • frames
  • source_image
  • selected_image
  • candidate_batch_debug
  • selected_index
  • selected_score
  • score_report
strategydecode_recommended
manual_index0
skip_first_frames0
candidate_start0.00
candidate_end1.00
similarity_weight0.60
top_k4
emit_candidate_batchfalse
recommended_index

H3ImageFrameSelector - "MiniMax H3 Image • Single Image Output" - is the last node in the pipeline, and the one that answers the question everyone asks five seconds in: which of these 5 frames do I actually keep? H3 generates a whole temporal packet for a still, so somewhere a decision has to be made. This node makes it, either from a recommendation or by scoring the frames itself.

How selection works

The default strategy is decode_recommended, which trusts the recommendation from the Exact Frame Decode node. That's the sane starting point: wire recommended_index from H3ImageDecode into the optional recommended_index input here and let the packet's metadata decide. If nothing's connected, it falls back to frame 0.

When you want control, the strategy dropdown is where the depth is:

  • Fixed picks: first, middle, last, and manual_index (which activates the manual_index integer).
  • Scoring picks: sharpest (edge detail only), best_quality (sharpness + contrast + exposure), stable_quality (favors sharp, clean, temporally stable frames), balanced_edit and most_similar_to_source (both need source_image connected; similarity_weight, default 0.6, balances source similarity against raw quality in balanced_edit).

There are also knobs for the scoring range - candidate_start/candidate_end as fractions of the batch, skip_first_frames to ignore an unstable opening frame, and top_k for how many candidates candidate_batch_debug returns.

Outputs, in the order you'll use them: selected_image (the single kept still by default), candidate_batch_debug (the ranked top-k as an image batch), selected_index, selected_score, and score_report (a human-readable summary of what it picked and why).

Scoring is a diagnostic, not a fix

Here's the honest take: the scoring modes are diagnostics, not magic. If your prompt was weak or your edit instruction was vague, no frame is going to be good, and a scoring strategy can't invent one. The README says it plainly - these modes "cannot correct weak conditioning or an unclear edit prompt." Don't reach for best_quality hoping it fixes a bad generation; re-roll the seed or fix the prompt. The one genuinely useful non-default: emit_candidate_batch. Flip it ON and selected_image returns the entire decoded batch instead of one still, so a connected Preview Image or Save Image node shows or saves every frame. That's great for eyeballing candidates once, then you turn it back off - it deliberately retains more RAM/VRAM.

Install

Install is the pack: ComfyUI Manager (search MiniMax H3 Image Studio) or clone into custom_nodes, then restart. No extra dependencies beyond ComfyUI 0.30.0+, the H3 models, and the decode node upstream. If decode_recommended isn't in the strategy list, your node definitions are stale - update and do a full ComfyUI restart, not just a refresh, or the old selector will keep rejecting the recommendation input.

CategoryMiniMax H3/Image Studio

Inputs (11)

NameTypeDefaultDescription
framesIMAGEDecoded H3 IMAGE batch. With the supplied Exact Frame Decode node this contains the complete selected 1-, 5-, 9-, 13-, or 20-frame profile.
strategyCOMBOdecode_recommendeddecode_recommended uses Exact Frame Decode's mode-aware recommendation (connect its index). first selects frame 0. stable_quality favors sharp, clean and temporally stable frames. balanced_edit combines source similarity with stable quality. best_quality uses sharpness, contrast and exposure. most_similar_to_source requires source_image. sharpest uses edge detail only. middle, last and manual_index select a fixed frame without scoring.
manual_indexINT00–4096Zero-based frame index used only when strategy is manual_index.
skip_first_framesINT00–128Excludes this many initial frames from metric-based scoring. Leave at 0 unless a specific generation shows an unstable opening frame. Ignored by fixed-index strategies.
candidate_startFLOAT0.000–1Fractional start of the automatic scoring range. 0.0 begins at the first frame and 0.5 begins halfway through. skip_first_frames can move the effective start later.
candidate_endFLOAT1.000–1Fractional end of the automatic scoring range. 1.0 includes the end of the decoded batch.
similarity_weightFLOAT0.600–1Used only by balanced_edit when source_image is connected. Higher values favor source similarity; lower values favor sharpness, exposure, contrast and temporal stability.
top_kINT41–16Maximum number of highest-scoring frames returned by candidate_batch_debug for automatic strategies. It does not limit selected_image when emit_candidate_batch is enabled: that main output contains every decoded frame. Fixed strategies return their chosen frame on candidate_batch_debug because they do not calculate a ranking.
source_imageoptIMAGEOptional comparison image for most_similar_to_source and balanced_edit. Only the first image in the connected batch is used as the reference.
emit_candidate_batchoptBOOLEANfalseOFF: selected_image contains only the picked still. ON: selected_image contains the entire decoded 1-, 5-, 9-, 13-, or 20-frame batch, so an already-connected Preview Image or Save Image node shows or saves every generated image. candidate_batch_debug remains the ranked top-k subset. Enabling this intentionally retains more RAM/VRAM.
recommended_indexoptINTConnect recommended_index from Exact Frame Decode. Used by decode_recommended; if left unconnected, frame 0 is selected.

Outputs (5)

NameTypeDescription
selected_imageIMAGESingle selected still when emit_candidate_batch is off; complete decoded batch when it is on.
candidate_batch_debugIMAGERanked top-k candidates for automatic strategies, or the fixed chosen frame for fixed strategies.
selected_indexINTZero-based index of the preferred still inside the original decoded batch.
selected_scoreFLOATScore assigned to the preferred still; fixed strategies return 1.0.
score_reportSTRINGHuman-readable scoring and emitted-batch report.