Sampler (Custom Advanced All Steps)
A Sampler That Hands You Every Denoising Step, Receipts Included
- noise
- guider
- sampler
- sigmas
- latent_image
- output
- denoised_output
- all_steps_latents
Ever wonder what a model is actually doing between "noise" and "final image"? ComfyUI's live preview shows you a hint of it while the queue runs, but it's a transient, downscaled tease. This node gives you the real thing: every intermediate denoising step, handed to you as a batch of latents you can inspect, save, or wire anywhere.
The official name is Sampler (Custom Advanced All Steps), but think of it as "SamplerCustomAdvanced, but with receipts." It's a drop-in replacement for ComfyUI's built-in SamplerCustomAdvanced - same five inputs, same first two outputs - with one extra output: all_steps_latents, a batch containing the model's predicted image at every single step of the denoise.
How it actually works
Under the hood it runs the exact same guider.sample() call the core node runs, so your sampling isn't changed one bit - you get the same final image, same seed behavior, same everything. What it adds is a callback. At every step, ComfyUI hands the sampler two things: x, the current noisy latent being walked down the noise schedule, and x0, the model's prediction of what the clean image would be if it stopped right now. This node stores x0, not x.
That distinction matters more than it sounds. On a classic 30-step SDXL run, the early x0 frames are soft, featureless blobs that sharpen into the final image - normal, expected, and honestly kind of fascinating. On a distilled flow-matching model like Z-Image Turbo, which runs at CFG 1 and settles in a handful of steps, the frames converge almost immediately, and that's the best visual proof you'll ever get of why nobody runs those models at 30 steps. Each captured latent is processed through the model's process_latent_out, moved to CPU, and stacked into one batch along the batch dimension - so downstream nodes just see "one image per step."
The inputs and outputs that matter
The five required inputs are exactly the custom-sampling chain you already know from SamplerCustomAdvanced:
- noise (NOISE) - usually from
RandomNoise - guider (GUIDER) -
BasicGuiderorCFGGuider - sampler (SAMPLER) - from
KSamplerSelect - sigmas (SIGMAS) - from
BasicScheduler - latent_image (LATENT) - from
EmptyLatentImageor an encode
Outputs: output (the final latent) and denoised_output (the final predicted-clean latent) behave exactly like the core node. The new one is all_steps_latents - wire it into VAEDecodeAllSteps (this pack's other node, which was built for exactly this batch), or honestly any VAE Decode, then into PreviewImage for a grid of every step. The pack ships an example workflow for Z-Image Turbo that shows the wiring end to end.
Installing it
Easiest way is ComfyUI Manager - search for ComfyUi-DisplayAllSteps and install. Or the old-school route:
cd ComfyUI/custom_nodes
git clone https://github.com/BigStationW/ComfyUi-DisplayAllSteps
Restart ComfyUI. That's the whole install: there's no requirements.txt, no model downloads, no heavyweight deps - just ComfyUI's own internals (comfy.sample, latent_preview, etc.). This is one of the rare packs where "install and it just works" is literally true.
Where people get burned
- It only works in a custom-sampling chain. The five typed inputs mean you can't drop it into a plain
KSamplerworkflow -KSamplerdoes its own scheduling internally and has noSIGMAS/GUIDERwires. Build the chain withRandomNoise→BasicGuider→KSamplerSelect→BasicScheduler. - Memory and decode time scale with step count. Every intermediate step is stored on CPU and, once decoded, becomes its own image. An 8-step turbo run is nothing; a 30-step SDXL grid is 30 VAE decodes and a grid you'll be scrolling. That's the price of the receipts.
- Early frames look like garbage on long schedules. They're
x0predictions from the start of denoising - soft mush is correct behavior, not a bug. Compare like-for-like.
It's from BigStationW, the Z-Image-Turbo-focused node dev behind the Untwisting RoPE pack - a small, real, active author, and this is one of their handier little utilities. If you debug workflows at all, this is the node that finally lets you see what your scheduler is doing.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| noise | NOISE | — | |
| guider | GUIDER | — | |
| sampler | SAMPLER | — | |
| sigmas | SIGMAS | — | |
| latent_image | LATENT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| output | LATENT | — |
| denoised_output | LATENT | — |
| all_steps_latents | LATENT | — |