Nodes/ComfyUI-ZImagePowerNodes/⚡| Z-Sampler Turbo v2 (Simple)
ComfyUI Node

⚡| Z-Sampler Turbo v2 (Simple)

The Z-Sampler Turbo node you should actually use (and the 3-stage trick behind it)

By martin-rizzo·Created 8 months ago·Updated 7 days ago· 357
⚡| Z-Sampler Turbo v2 (Simple)
  • latent_input
  • model
  • positive
  • divider
  • positive_stg2
  • positive_stg3
  • latent_output
seed1
steps8
ibias0.0
turbo_creativityfalse
old_schedulerfalse
noise_injectionfalse
alternative_refinerfalse

If you run Z-Image Turbo and you're not using this node, this is the one to try first. The Simple variant of the second-generation Z-Sampler is the author's own recommended sampler in the whole pack: it keeps all the quality of the Extended version but hides everything except the handful of controls that actually change your image. It's the difference between "here's a sampler" and "here's a sampler you'll actually understand."

Why a custom sampler at all

Z-Image Turbo is a distilled model: 6B parameters, guidance-distilled to run at CFG 1 with no negative prompt, and it hates the generic KSampler treatment. Martin Rizzo (reddit: FotografoVirtual) spent the run-up to this pack brute-forcing sigmas while building his Amazing Z-Image Workflow, and found that splitting sampling into three stages consistently beat a smooth schedule:

  1. Composition - always exactly 2 steps with fixed sigmas, regardless of total step count. Sets the layout.
  2. Details - the variable middle, with a discontinuous sigma jump from stage 1. He couldn't explain why the jump worked; he just verified hundreds of times that it did.
  3. Refinement - the sampler goes back up the sigma ladder, re-adds noise, and re-denoises to polish.

The payoff: respectable images from just 3 steps, good enough to call finished at 5, and from 7 onward you can skip your refiner and post-processing entirely. It also kills the whole "ModelSamplingAuraFlow shift to 7" ritual that stock Z-Image workflows need - the sigma schedule handles it internally. And unlike a stock KSampler, users report it holds up better at 2MP+, where the standard sampler starts distorting bodies.

The inputs that matter

The node takes latent_input, model (any Z-Image Turbo checkpoint), and positive conditioning - there's deliberately no negative input, because CFG 1 makes it pointless. Then:

  • steps (3–20, default 8) - the only dial most people touch. 8–10 is the documented sweet spot; past 9 the gains are marginal.
  • seed - standard reproducibility.
  • ibias - the "brightness-ish" tweak on the initial noise. Keep at 0.0 unless the image comes out washed out or blown; it's prompt-dependent, not a real brightness slider.
  • turbo_creativity (yes/no) - latent scrambling between stages to break Z-Image Turbo's notorious near-identical-seed problem. Changes pose/framing, keeps style and colors. Can hallucinate - that's the price.
  • old_scheduler - legacy sigma preset. The new one is better for general quality; flip this only if you're chasing a specific look.
  • noise_injection - extra detail/realism in the final stage, at the risk of artificial color spots in smooth areas.
  • alternative_refiner - swaps the final Euler pass for DPM++ SDE for extra contrast and sharpness, at the cost of time.

There are also optional positive_stg2 and positive_stg3 inputs for giving the details and refinement stages their own prompts - the pack's "double_trouble" example uses this to merge two styles.

Output is a single latent_output for your VAE decode.

Installing it

The whole pack installs the same way - ComfyUI Manager, search "Z-Image Power Nodes", Install, restart:

cd ComfyUI/custom_nodes
git clone https://github.com/martin-rizzo/ComfyUI-ZImagePowerNodes.git

The pack itself has zero pip dependencies. What it won't do is fetch the model - you still need the Z-Image Turbo pieces the README links: a diffusion model (CONVROT INT8 ~6.2 GB, GGUF Q5 ~5.2 GB, or BF16 ~12.3 GB), the Qwen3-4B text encoder, and a ~335 MB VAE, in diffusion_models/, text_encoders/, and vae/ respectively. The author tests mostly on the Q5_K_S GGUF, which is a good default if you're on a 12 GB card. Note the pack requires a recent ComfyUI (v0.11.0+, Nodes 2.0 API).

Where people get burned

The two real gotchas: turbo_creativity will eventually give you a hallucinated image - the docs say so up front, and the fix is simply turning it off for critical generations (it's also explicitly not recommended for inpainting). And LoRAs: the sampler hasn't been extensively tested with them, and fine-tuned checkpoints may need workflow tweaks. If a LoRA-stacked generation turns to mush, don't blame the LoRA first - try the stock sampler to see the difference. Past that, there's not much to trip over: that's the point of the Simple version.

Category⚡Z-Image

Inputs (13)

NameTypeDefaultDescription
latent_inputLATENTThe initial latent image to be denoised; usually an 'Empty Latent' for text-to-image tasks or an encoded image for image-to-image processing.
modelMODELThe Z-Image Turbo model used for denoising the latent image.
positiveCONDITIONINGThe main prompt/conditioning used to guide the generation process toward the desired content.
seedINT11–18446744073709550000The seed used for the random noise generator, ensuring the same result is produced with the same value.
stepsINT83–20Number of iterations to perform during the denoising process.
ibiasFLOAT0.0-1–1Custom adjustment for the intensity noise bias. Usually kept at 0.0; used to fine-tune 'brightness'. Note that its effect depends heavily on the prompt and image style, so it may not always act as a simple brightness control. Adjust it within the positive or negative range until it seems right to you.
dividerZIPN_SEPARATOR
turbo_creativityBOOLEANfalseEnables turbo creativity. This scrambles the image to boost diversity in compositions while maintaining the general style and tone color. Be aware that this may lead to hallucinations.
old_schedulerBOOLEANfalseEnables the legacy scheduler with a different set of sigmas. Although the new scheduler is optimized for general quality, this old version may produce better results in specific cases.
noise_injectionBOOLEANfalseEnables noise injection in the final stage. This can enhance fine details and realism, but may also generate artificial-looking color spots in smooth areas.
alternative_refinerBOOLEANfalseEnables an alternative refiner using the DPM++ SDE sampler during the final stage. This enhances contrast and sharpness in fine details but increases overall processing time.
positive_stg2optCONDITIONINGThis input is optional and can remain disconnected. It allows specifying a different prompt/conditioning for the second stage of the denoising process.
positive_stg3optCONDITIONINGThis input is optional and can remain disconnected. It allows specifying a different prompt/conditioning for the third stage of the denoising process.

Outputs (1)

NameTypeDescription
latent_outputLATENTThe resulting denoised latent image, ready for decoding by a VAE or passed to another node for further processing.