Nodes/was-node-suite-comfyui/H3 Tiled Sampler
ComfyUI Node Runs on cloud

H3 Tiled Sampler

Refine a whole clip in one pass, in pieces

By WASasquatch·Created 4 years ago·Updated a day ago· 1,864
H3 Tiled Sampler
  • model
  • positive
  • negative
  • latent_image
  • audio
  • LATENT
◄seed0►
◄steps8►
◄cfg1.0►
◄sampler_name▾►
◄scheduler▾►
◄denoise0.40►
◄tiling▾►

If you have ever upscaled a MiniMax H3 clip, re-encoded it, and watched the sampler die at 90% of the way through, H3 Tiled Sampler is the node that fixes that. It is a KSampler in everything that matters - same seed, steps, cfg, sampler_name, scheduler, positive and negative conditioning, denoise - except that the denoise is done in overlapping tiles across the frame and overlapping windows along the clip, blended at every step so the result stays one clip rather than a mosaic.

It does no upscaling itself. The workflow is: upscale the latent (or decode, upscale, re-encode), then sample this at a partial denoise so the model adds detail to the layout you already have.

Why tiles, and why blending every step

A long H3 clip at a bigger resolution is simply more tokens than a consumer card can hold in one attention call. Tiling is the standard escape hatch, and it fails in the standard way when you blend after the fact: each tile is denoised against its own noise, so their ideas of the picture drift apart, and stitching leaves you with visible seams and small disagreements in colour.

Blending inside the denoise loop is the fix. Each step, tiles see their neighbours' current state through the overlap, so they converge on a consistent clip instead of being reconciled at the end. This is also why partial denoise is the design case: at denoise 0.3–0.5 the tiles are all refining the same underlying picture, and the seam problem is far smaller.

The controls you actually touch

denoise defaults to 0.4, and the tooltip is a decent map: 0.3 to 0.5 to refine an existing clip, 1.0 from noise. Going much above 0.6 on a long clip is where tile drift becomes visible.

tiling is the interesting one. On auto the clip is split into windows along time under a token budget, and split across the frame only where a window will not fit. Temporal windows blend more cleanly and preserve motion, so the node prefers them. manual hands you the tile and window sizes when you would rather be explicit.

steps defaults to 8, which is the turbo-LoRA/distilled setting; the base model wants something around 25. cfg 1 is right for turbo LoRAs and distilled models. audio is optional and worth wiring: it takes the clip's audio latent from VAE Encode Audio with the H3 audio VAE, held as-is beside a video-only latent_image. Leave it empty and silence is held - which is exactly the surprise you get when the clip comes out silent after a great video pass.

The output is a single LATENT, video-only if latent_image was video-only. Decode it, and if you are in the middle of a De-RoPE pipeline, hand it to the recover node rather than saving straight out.

Install

ComfyUI Manager → search WAS Node Suite v3 → install → restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git

ComfyUI 0.14.0+ and Python 3.10+. The pack installs nothing - no pip, ever; its requirements.txt is a single comment line saying so, and heavy optional groups like document_export are opt-in by hand. This node needs no extra model files, only your H3 checkpoint and VAEs. First start is a touch slower while the pack writes its config.yaml and compiles.

Rough edges

Tiles do not fix a bad upscale. If you fed it a latent that is already mush, you get sharper mush.

The sampler is H3-specific. It is written against the H3 patcher. For Wan or LTX, use ComfyUI's own tiled/tiled-diffusion tooling instead.

Memory does not magically vanish. Tiling spreads the work; it does not shrink the model. On a very small card, pair this with a layout where the model itself is already loaded in a reduced form, or move to H3 Tiles, which wraps the model so an existing sampler of yours does the denoising.

The clip's audio. A joined audio+video latent is refined on both sides; a video-only latent holds audio as-is. Wire audio when you want the pass to touch the soundtrack, or the audio stays whatever it was.

Licence. In the US, EU, UK and Korea the H3 community licence does not cover running the open weights locally. That is a paperwork problem, not a VRAM one, and no amount of tiling solves it.

CategoryWAS Suite/Sampling

Inputs (12)

NameTypeDefaultDescription
modelMODELThe MiniMax H3 model, after any LoRA.
seedINT00–18446744073709550000The noise seed, `0` as good as any.
stepsINT81–10000Denoising steps over the whole schedule, as `8` for a turbo LoRA or `25` for the base model.
cfgFLOAT1.00–100Guidance, `1` for turbo LoRAs and distilled models.
sampler_nameCOMBOThe solver each step runs, such as `euler` or `res_multistep`.
schedulerCOMBOHow the noise level falls from step to step, such as `simple`.
positiveCONDITIONINGThe clip's positive conditioning.
negativeCONDITIONINGThe clip's negative conditioning.
latent_imageLATENTThe H3 latent to refine, such as an upscaled clip encoded again.
denoiseFLOAT0.400–1Share of the schedule run, `0.3` to `0.5` to refine, `1.0` from noise.
tilingCOMBO`auto` splits the clip into windows along time under a token budget, and across the frame only where a window will not fit; `manual` sets tile and window sizes. Where there are several windows, none crosses a cut the latent records.
audiooptLATENTThe clip's audio latent, from VAE Encode Audio with the H3 audio VAE, held as it is beside a video-only latent_image. Left empty, silence is held.

Outputs (1)

NameTypeDescription
LATENTLATENTThe refined latent, video only when latent_image was video only.