Nodes/ComfyUI-ZImageTurboHQNodes/ZImage Turbo Sampler
ComfyUI Node

ZImage Turbo Sampler

The Z-Image sampler that knows what it's doing so you don't have to

By marduk191·Created 7 months ago·Updated 7 months ago· 3
ZImage Turbo Sampler
  • model
  • positive
  • negative
  • latent_image
  • samples
  • steps
  • cfg
  • denoise
  • sampler_name
  • scheduler_name
seed13371337
modebase_ultra

This is the heart of the pack: the sampler you actually generate with. Plug in a model, positive and negative conditioning, a latent, a seed, pick a mode, and it runs the full KSampler internally with the right sampler, scheduler, steps, CFG, and denoise for Z-Image Turbo. It's a one-node workflow ender.

Why you'd want this over a plain KSampler: Z-Image Turbo is a distilled flow-matching model, and the community spent weeks rediscovering that the obvious settings are mostly wrong for it. Karras and exponential schedulers fail across the board, DPM++-style samplers effectively double your step count, and the model is trained at CFG 1 - guidance just isn't how it works. This node hardcodes the good recipe instead of trusting you to type it in.

How it works. Internally it consults the pack's sampling plan and calls ComfyUI's common_ksampler with the "capitan_flow" profile - which uses the pack's own euler_flow sampler and its capitanZiT scheduler, a simple linear sigma ramp from 1.0 to 0.0. Both are registered locally by the pack on import, so you don't need Capitan's scheduler repo. The mode dropdown is the whole user-facing decision:

  • base_ultra - 9 steps, CFG 1, full denoise. The default; this is the "make me a new image" setting.
  • base_balanced - 8 steps, CFG 1, full denoise. Marginally faster, marginally rougher; the "I'm iterating" setting.
  • refine_subtle / refine_normal / refine_strong - 8–10 steps at low denoise (0.25 / 0.32 / 0.40). These are partial-denoise passes, so feed them a latent that already has an image in it, not a blank one.

The inputs that matter: model (a Z-Image Turbo UNet - the workflow uses ModelSamplingAuraFlow shift 5; the community's most-repeated tweak is shift 7), positive/negative from the pack's conditioning nodes, latent_image from ZImageTurboLatentInit (or a previous pass), seed, and mode. The negative is a formality at CFG 1 - zeroed conditioning is fine here, since guidance-free means it can't steer anything.

Outputs. samples (LATENT) goes to a VAE decode. Then it also echoes back steps, cfg, denoise, sampler_name, and scheduler_name - the exact values it used, which is handy for logging or for driving a display node so you know what actually ran.

Install is the pack routine: ComfyUI Manager → "ZImageTurboHQNodes", or

cd ComfyUI/custom_nodes
git clone https://github.com/marduk191/ComfyUI-ZImageTurboHQNodes

restart. No pip dependencies. The models aren't bundled - grab z_image_turbo_bf16.safetensors (or a GGUF/FP8 variant) and qwen_3_4b.safetensors from Tongyi-MAI on HuggingFace, plus a Z-Image VAE.

One thing to remember: the euler_flow and capitanZiT names only exist while this pack is loaded - they're registered at import time. If you delete the pack, any workflow or saved JSON referencing those names won't resolve, and you'll be staring at a red "unrecognized sampler" error. Keep the pack around if you share workflows that use it.

Categoryzimage_turbo/hq

Inputs (6)

NameTypeDefaultDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT
seedINT133713370–18446744073709550000
modeCOMBObase_ultra5 options: base_ultra, base_balanced, refine_subtle, refine_normal, refine_strong

Outputs (6)

NameTypeDescription
samplesLATENT
stepsINT
cfgFLOAT
denoiseFLOAT
sampler_nameSTRING
scheduler_nameSTRING