Nodes/Nynxz H3/H3 Depth Skip
ComfyUI Node

H3 Depth Skip

Skip the transformer blocks that aren't pulling their weight

By Nynxz·Created about a month ago·Updated 25 days ago· 4
H3 Depth Skip
  • model
  • MODEL
  • report
blocks
start_percent0.00
end_percent1.00
modeattention_only

Not every transformer block in H3 earns its compute on every clip. Some bands of depth are measurably idle - on the released checkpoints, roughly blocks 3 through 17. H3 Depth Skip is the node that drops the named blocks from the forward pass, worth about 1.4× on that band, and it comes with an honest tooltip: read the block contributions off your own model before you trust anyone's band.

How it works

model passes through, patched, and comes back out alongside a report. The inputs:

  • blocks - a string like "3-17", "3-17, 22" or "10". Ranges are inclusive. Empty changes nothing - an exact no-op, so it's safe to leave wired-but-blank. The README's guidance is to read them off MiniMax H3 Block Contribution rather than guess, and it notes the quiet band is identical across the fl2va and ref2va releases.
  • start_percent / end_percent - where the skip switches on and off (default 0 to 1, always-on). Ending early is the useful setting: skip the quiet band while structure is being decided, then run the full stack for refinement, where the dropped blocks may matter more than their average contribution suggests.
  • mode - attention_only (default) keeps the MLP; whole_block drops everything. The default is the better-evidenced choice: attention is ~83% of block time at these sequence lengths, so attention_only captures most of the saving, and the MLP's gate varies only 8× across depth against attention's 68× - much less obviously idle in any band. Reach for whole_block once an A/B says the band really is inert.

The report tells you which blocks were skipped, what fraction of the forward that removes, and what the number does and doesn't mean - worth a glance before you start trusting the speedup.

The honest take

This is a "confirm against your own output" node, not a set-and-forget one. The 3–17 band is a measured property of the released checkpoints, but it's still a hypothesis about your content. The safe recipe: run the A/B with attention_only first (keeps the MLP, so it degrades gracefully), and only switch to whole_block when the result is provably fine. It stacks with H3 Block Cache - different axes of the same save.

Install

Pack install: ComfyUI Manager → "Nynxz H3", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-NynxzH3

Restart. Pure Python, no dependencies, ComfyUI 0.30.0+.

The one-liner

"3-17", attention_only, and a start_percent/end_percent window that lets refinement run full. If your clip starts losing structure late, it's the skipped blocks talking - widen the window or drop the node before you blame the sampler.

CategoryNynxz/H3/Sampling

Inputs (5)

NameTypeDefaultDescription
modelMODELA MiniMax H3 model.
blocksSTRINGBlock indices to skip: '3-17', '3-17, 22', '10'. Ranges are inclusive. Empty changes nothing. Read them off MiniMax H3 Block Contribution rather than guessing — the quiet band is a property of the checkpoint, and it is identical across the fl2va and ref2va releases.
start_percentFLOAT0.000–1Where in the schedule the skip switches ON, as a fraction of sampling. 0 is the first step.
end_percentFLOAT1.000–1Where it switches OFF. 1 runs to the last step; the default pair (0, 1) is always-on, which is the behaviour this node had before. Ending early is the useful setting: skip the quiet band while structure is being decided, then run the full stack for refinement, where the blocks you dropped may matter more than their average contribution suggests.
modeCOMBOattention_onlyattention_only keeps the MLP, which is the conservative choice and costs about a fifth of the saving — attention is ~83% of block time at these sequence lengths. It is also the better-evidenced one: the MLP's gate varies 8x across depth against attention's 68x, so the MLP is much less obviously idle in any band. whole_block drops everything and is the thing to reach for once an A/B says the band really is inert.

Outputs (2)

NameTypeDescription
MODELMODEL
reportSTRINGWhich blocks were skipped, what fraction of the forward that removes, and what the number does and does not mean.