⚡ Z-Image-Turbo Scheduler
The exact sigma curve Z-Image-Turbo was distilled on
- SIGMAS
Z-Image-Turbo was trained on one very specific sigma curve: a straight line from 1.0 down to 0.0. Not Karras, not exponential, not anything ComfyUI's stock scheduler dropdown ships by default - a straight line, because that's what its rectified-flow distillation actually walked during training. ZImageTurboScheduler just hands you that exact curve. No cleverness, no tuning knob beyond step count. That's the whole point.
Why this matters (and why "just use Karras" is the wrong instinct)
If you're coming from SD1.5 or SDXL habits, your reflex on release day is probably to reach for whatever scheduler you already know works - Karras, usually. Don't. Z-Image-Turbo is a flow-matching model: it was trained to predict a straight-line velocity from noise to image, not to walk a curved noise schedule the way DDPM-style models do. Karras and exponential schedules exist specifically to reshape a curved trajectory, concentrating denoising effort in the middle. On a model whose whole training was a straight line, that reshaping doesn't just underperform - it actively fights the distillation. A large community sweep across 62 samplers and 16 schedulers on Z-Image Turbo found Karras and exponential failing across the board, not just trailing behind. This pack's own README says the same thing more bluntly: "Non-linear schedules break the distillation and produce degraded results." This node is the fix - it's just the linear curve, generated correctly, so you stop having to remember not to touch the scheduler dropdown.
The inputs and outputs that matter
There's exactly one input worth thinking about:
steps(INT, default 9, range 1–50) - the node's own tooltip says it plainly: "8-9 steps optimal for Z-Image-Turbo." Going much higher doesn't buy you more quality on a model this heavily step-distilled; it just costs more render time for a schedule the model was never fine-tuned to walk that long. Start at 8 or 9 and only move if you have a specific reason.
The single output is SIGMAS, which you wire into the sigmas input of a SamplerCustom or SamplerCustomAdvanced node alongside your model, a sampler, a noise source, and your conditioning/guider setup. The node's own description also nudges you toward a Euler-family sampler to pair it with - it names euler or euler_rf_zimage; the pack's README describes its own custom samplers under names like euler_flow. Either way, the family matters more than the exact name: you want a plain Euler-style step, not anything carrying churn or ancestral noise injection, since Z-Image-Turbo's own distillation was deterministic.
How to install it
Through ComfyUI Manager: search "ComfyUI-ZImageTurbo-FlowSampler," install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/capitan01R/ComfyUI-ZImageTurbo-FlowSampler
then restart ComfyUI. There's nothing else to install - no extra Python packages, no model downloads. It's pure sampling-side Python that plugs into ComfyUI's existing SamplerCustom chain.
Common issues & troubleshooting
CFG creeping above 1.0. Z-Image-Turbo is guidance-distilled, meaning the CFG correction is already baked into its weights at CFG 1. Raising CFG doesn't sharpen prompt adherence here - it applies that correction a second time, which burns the image, and it doubles your render time because the sampler now has to run an unconditional pass it was built to skip. If you want negative-prompt control back, that's a separate problem (look at NAG-style nodes), not something to fix by cranking CFG.
Swapping the scheduler back to something familiar "just to compare." Resist it, or at least know what you're testing. The whole reason this node exists is that the built-in Euler sampler divides by sigma near zero (unstable) and has no explicit handling for the final step landing exactly on zero - both of which this pack's author traced directly in ComfyUI's sampling code before writing the replacement.
Using way more than 9 steps expecting it to keep improving. It won't scale the way non-distilled models do; this schedule and this step count were the ones the model was actually distilled on.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| steps | INT | 91–50 | 8-9 steps optimal for Z-Image-Turbo |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |