H3Kit 高清分块采样
When the high-res H3 pass won't fit, sample it in tiles
- noise_source
- sampling_guider
- sampling_algorithm
- sigma_schedule
- initial_latent
- sampled_latent
- denoised_latent
You've upscaled the latent, you're on the last couple of sampling steps at full resolution, and the run dies with an out-of-memory. Tiled diffusion is the long-standing answer for that on the image side, and this node is that idea aimed at H3 video: instead of diffusing the whole frame at once, run the sampler across overlapping spatial tiles and fuse the result back into one latent.
H3Kit 高清分块采样 is a drop-in stand-in for ComfyUI's advanced sampler. That's the clean way to think about it - same five inputs (noise_source, sampling_guider, sampling_algorithm, sigma_schedule, initial_latent), same two outputs, plus a tiling switch and a tile count. If your workflow already uses SamplerCustomAdvanced, you can literally swap this node in, keep the wiring, and A/B the difference by flipping one boolean.
How the tiling actually works
The split runs along the longer spatial edge of the latent, with overlap between neighbours. The part I'd have expected to be broken and apparently isn't: each tile gets the H3 packed layout rebuilt with position IDs cropped to that region, and keyframe/reference latents are cropped to match, so a tile knows where it lives on the full canvas. Then the tiles are fused into one video latent. Audio is not tiled - it stays whole through the pass and takes the first tile's prediction, so bear that in mind: this trick buys you picture headroom, not better sound.
minimum_tiles (default 4, range 2–8) is the floor the scheduler aims for; it scales upward toward 8 depending on your VRAM budget, and small frames on the grid may end up with fewer. It also backs off when it hits memory pressure rather than just dying.
spatial_tiles (default on) is the switch that makes the node itself. Off, it does full-frame sampling - which is exactly what turning it off is for: a same-seed, same-sigmas comparison so you know what tiling cost you.
Driving it
Because it's the advanced-sampler interface, the steps live upstream in your sigma schedule - a scheduler node feeding sigma_schedule, a guider bundling model and conditioning, a noise source for your seed. That's also why this fits naturally as the second stage of a two-pass flow: low-res pass, H3Kit 3D 潜空间放大 to lift the latent, then this node for the expensive high-res steps.
initial_latent takes the H3 composite audio+video latent, so keep the audio stream wired through it rather than splitting it out.
Outputs
sampled_latent is what you decode (the H3Kit tiled VAE decoder is a good partner here, since the reason you're tiling sampling is the same reason decode will be tight). denoised_latent is the model's x0 estimate - the same second output the advanced sampler gives you, useful when you want to inspect the prediction without the noise, or when you're comparing two passes on identical inputs.
Install
Manager → search ComfyUI-H3-upgrade-kit → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/flywhale-666/ComfyUI-H3-upgrade-kit.git
Nothing to pip install - the repo's requirements.txt is empty and the pack declares no dependencies, so it runs on the ComfyUI you already have (provided that ComfyUI is new enough for MiniMax H3). The example workflow in the repo leans on VideoHelperSuite, KJNodes, LayerStyle, Comfyroll, UniversalToolkit, ReservedVRAM and rgthree-comfy, so if you load it and see red boxes, that's the missing list - the tiling nodes themselves are this pack only.
Honest limits
Tiling is not free and not always a win. Splitting the frame means each tile is sampled without global attention over the whole picture, and the author says plainly that the result may differ from untiled sampling. So expect the possibility of structural drift between tiles on busy scenes, and use it because the alternative was an OOM, not because you want a different look.
The pack also states that this path does not support ControlNet, so don't plan a tiled ControlNet pass around it. And as with every chunked-everything trick: measure a before/after on your own card. Sometimes the smaller tiles end up slower than the pass that used to fit.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| noise_source | NOISE | — | |
| sampling_guider | GUIDER | — | |
| sampling_algorithm | SAMPLER | — | |
| sigma_schedule | SIGMAS | — | |
| initial_latent | LATENT | — | |
| spatial_tiles | BOOLEAN | true | — |
| minimum_tiles | INT | 42–8 | 沿长边重叠分块;根据显存预算增加到最多 8 块。音频和参考图保持完整。 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sampled_latent | LATENT | — |
| denoised_latent | LATENT | — |