ZImage Turbo Conditioning
Your Z-Image prompt, but with the detail boost baked in
- clip
- positive
- negative
- positive_prompt
Z-Image Turbo is a great daily driver - 8 steps, CFG 1, a 3060 does 1024² in about thirty seconds. But the thing everyone hits after the first week is that prompts come out a little flat and generic. The fix people drifted to wasn't a LoRA or a new sampler, it was scrubbing the conditioning itself after the text encoder. That's exactly what this node does, and it does it in one box.
It's the first stop in the ZImageTurboHQNodes pack. You feed it a CLIP and four prompt fields - subject, style, lighting, details - and it hands you a positive and negative CONDITIONING ready for the sampler, plus the assembled prompt as text. No raw CLIPTextEncode, no string-join spaghetti, no second pack needed.
How it works. The node builds one positive prompt from your four fields and appends masterpiece, high quality (the recipe the pack's own Qwen3VL instructions recommend). It encodes that with your CLIP, then runs the embedding through two small post-encode nets: a "basic" stage that normalizes, pushes the embedding through a tiny MLP and blends it back, then an "advanced" stage that sharpens high-frequency detail with a tanh detail-boost and a high-pass filter. This is the Capitan Conditioning Enhancer recipe from capitan01R re-implemented inline, so you get it without cloning Capitan's repos. The seed input matters here because the MLP weights are randomly initialized - same seed, same enhancement, reproducible output.
The few inputs you actually touch:
- subject / style / lighting / details - four multiline boxes, sensible portrait defaults. Keep them descriptive; Z-Image likes natural-language prose, not tag soup.
- enhancement_profile -
none,capitan_daily(default), orcapitan_literal. Daily is the balanced, "glue + subtle sharpening" profile; literal pushes detail retention harder and is the one to try when a prompt keeps losing its texture and edges. - seed - only affects the enhancement's random init, not the sampler. Set it so a profile change is actually comparable.
- low_vram / device - low_vram drops the enhancement to fp16 and skips the attention step;
devicelets you force CPU if your GPU is already full.
Outputs. positive and negative CONDITIONING wire straight into ZImageTurboSampler. The negative is a zeroed conditioning, which is a polite way of saying it does nothing: Z-Image Turbo is guidance-distilled, so at CFG 1 negatives are inert. Don't waste effort writing one. positive_prompt is the assembled string - handy to eyeball or save with the image.
Install. ComfyUI Manager → search "ZImageTurboHQNodes" → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/marduk191/ComfyUI-ZImageTurboHQNodes
Restart ComfyUI. No pip dependencies - the pyproject declares none, it's pure torch. The pack does not ship models: the shipped workflows expect z_image_turbo_bf16.safetensors in models/diffusion_models (from Tongyi-MAI/Z-Image-Turbo on HuggingFace or ModelScope), qwen_3_4b.safetensors in models/text_encoders, and a Z-Image VAE.
Where people get burned: the enhancement is a real post-processing pass, and at high strength it can over-sharpen or shift color. If your output starts looking crunchy, that's the capitan_literal profile being too eager - back off to capitan_daily or none before you blame the sampler. And remember the sampler's scheduler aliases only exist while this pack is loaded, so don't delete the pack mid-project.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| subject | STRING | portrait photo of a person | — |
| style | STRING | cinematic, natural skin texture | — |
| lighting | STRING | soft directional light | — |
| details | STRING | ultra detailed, clean composition | — |
| enhancement_profile | COMBO | capitan_daily | 3 options: none, capitan_daily, capitan_literal |
| seed | INT | 420–2147483647 | — |
| low_vram | BOOLEAN | false | — |
| device | COMBO | auto | 2 options: auto, cpu |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| positive_prompt | STRING | — |