ZImage SDNQ I2I Sampler
The refiner the community actually uses
- pipeline
- image
- images
ZImageSDNQSamplerI2I takes a pipeline from ZImageSDNQPipelineLoader, an input image, a prompt, and regenerates the image at the same resolution with the prompt steering the result. On paper that's "image-to-image." In practice, for Z-Image Turbo it's the second half of one of the most popular workflows in the community: Turbo as a universal refiner. People generate a base image in another model - Chroma, Flux, Qwen, SD 1.5, Wan - and run it through a low-strength I2I pass here to add realism and detail. Turbo is fast enough to make that a legit single extra pass instead of a patience exercise.
The mechanism is standard img2img: the input image is encoded to latents, noise is added according to strength, and the model denoises from there. strength is your denoise dial, and it's the input that matters most.
Inputs, ranked by importance
- strength (default 0.7, 0–1) - how much of the original survives. At 0.1 you're barely nudging pixels; at 1.0 you've basically thrown the source away and done T2I at the same size. The refiner pattern lives at 0.3–0.6: keep the composition, let Turbo re-render the detail. Above ~0.8 you should be asking whether you wanted I2I at all.
- image - the required source. It defines the working resolution, so there's no width/height here - you get whatever you feed in, at whatever size it is. Feed it a 512x512 and you get a 512x512 back.
- prompt / negative_prompt - same story as the T2I sampler: at the default
guidance_scale0, negatives are decorative. The prompt should describe the result you want, not re-describe the source. - steps - default 8. One subtlety: with I2I, the effective denoising is
strength × steps. At strength 0.5 and 8 steps you're really only denoising 4 steps' worth of noise, which is exactly why low-strength refinement is so cheap. - guidance_scale - default 0, same distilled-model contract as T2I.
- seed / num_images - seed behaves as usual;
num_imagesgives you 1–8 variants of the same denoise.
Output: a single images tensor, ready for SaveImage.
Where this shines
Two patterns worth copying:
- The refiner pass - generate anywhere (including a different model entirely), drop the result here at strength 0.4–0.5, and let Turbo's photorealism bias re-surface the details. This is the "Chroma for style, Z-Image for detail" combo that keeps coming up, and it works precisely because Turbo is good at detail and fast at it.
- The palette/interpretation pass - stronger strength (0.7+), a rewritten prompt, and the source becomes a suggestion rather than a constraint. Same image, different mood.
The honest limit, same as T2I: Turbo's seed sameness means the I2I pass isn't your tool for exploring wildly different compositions from one seed. Keep that job on Base or another model; use this node to lock in what you've got.
Install
Pack-standard: Manager (search "Z-Image SDNQ") or git clone https://github.com/GeneralShan/comfyui-zimage-sdnq into custom_nodes, restart, pip install sdnq diffusers for the base pipeline. Wire it as Loader → SamplerI2I with a LoadImage feeding image, and you're done - the pack's example graph (zimage_sdnq_i2i.json) is exactly that.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | ZIMAGE_PIPELINE | — | |
| image | IMAGE | — | |
| prompt | STRING | — | |
| negative_prompt | STRING | — | |
| steps | INT | 81–100 | — |
| guidance_scale | FLOAT | 0.00–20 | — |
| strength | FLOAT | 0.700–1 | — |
| seed | INT | 00–18446744073709550000 | — |
| num_images | INT | 11–8 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |