Z-Image img2img ⚡
Z-Image's whole prep step in one node — straight into a stock KSampler
- model
- clip
- vae
- image
- control_patch
- control_image
- model
- positive
- negative
- latent
- denoise
Z-Image is the model that put near-Flux quality on 12GB cards, and a big part of why it's so easy to live with is that the workflow is short: load, prep, sample, decode. This node is the prep - prompts, init latent, and optional Fun ControlNet all handled in one place, with the output wired to feed a stock KSampler directly. Leave image unconnected and it behaves as a txt2img prep instead.
The inputs that matter
Core: model, clip, vae, prompt, negative_prompt, then strength (0.6 default, img2img only), batch_size, width and height (1024×1024 default, steps of 8 - with an init image, width/height resize it).
The optional stack is where Z-Image gets interesting:
image- init image for img2img; unconnected for txt2img.control_patch- a Z-Image Fun ControlNet loaded via stockModelPatchLoader. Unlike the Qwen-Image side of this pack, Z-Image's control mechanism is a model patch (aMODEL_PATCH), so you attach it through the loader'sMODEL_PATCHoutput rather than a custom wrapper type.control_image- the control map, usually Canny. That's the standard Z-Image Fun ControlNet pairing: edges in, structure out.control_strength- default 0.7, and the tooltip gives you the real tuning advice: 1.0 over-conditions and softens detail, while 0.7 keeps the structure with the detail intact. That's the single most useful knob on this node - most people land between 0.6 and 0.85.
The outputs
model, positive, negative, latent, denoise - five outputs into a stock KSampler. Z-Image Turbo is guidance-distilled (8–9 steps, CFG 1), so a stock KSampler at those settings is exactly right; this pack's own Z-Image KSampler exists too, with the same diffusers denoise-parity toggle the Qwen-Image one has.
How it fits the wider picture
Z-Image's text encoder is Qwen3-4B, so prompting is natural-language - write sentences, not tag soup. And because the whole family is Apache 2.0 and uncensored out of the box, this is the stack people actually build on when they want a permissive, low-VRAM daily driver. The Fun ControlNet is the one thing to plan around: it comes from Alibaba's PAI team, a different sub-team from the base model, which historically meant slightly different quirks in how hard you push control_strength - start at 0.7 and nudge.
Installing it
Part of the ComfyUI-GGUF-Loader pack under 🤖 CCTech/Z-Image. ComfyUI Manager → search "ComfyUI-GGUF-Loader" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
cd ComfyUI-GGUF-Loader
pip install -r requirements.txt
Common issues
The recurring one is over-conditioning: control_strength at 1.0 (or higher, since the range goes to 10) flattens fine detail until everything looks soft and samey. If your controlled Z-Image output looks "blurry but structured," the fix is usually dropping the strength toward 0.6–0.7, not a prompt rewrite. Second: a Canny map made at the wrong thresholds (too tight = noise walls, too loose = missing structure) is worth previewing with a Canny node before it hits control_image. And remember denoise/strength interplay: with an init image, low strength keeps the composition but lets the control map fight the image - if they disagree, you'll see it as artifacts. Resolve it by lowering one or the other, not both.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| vae | VAE | — | |
| prompt | STRING | — | |
| negative_prompt | STRING | — | |
| strength | FLOAT | 0.600–1 | img2img only. How much of the init image to discard. Ignored without an image. |
| batch_size | INT | 11–4096 | — |
| width | INT | 102416–16384 | Output size. With an init image this resizes it. |
| height | INT | 102416–16384 | — |
| imageopt | IMAGE | Init image for img2img. Leave unconnected for txt2img. | |
| control_patchopt | MODEL_PATCH | ModelPatchLoader with a Z-Image Fun ControlNet. | |
| control_imageopt | IMAGE | Control map, usually Canny. | |
| control_strengthopt | FLOAT | 0.70-10–10 | 1.0 over-conditions and softens detail; 0.7 keeps structure with detail. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |
| denoise | FLOAT | — |