ComfyUI Node

Z Image (custom model)

Z-Image — but any fine-tune you want, by AIR

By Runware·Created 2 years ago·Updated about a month ago· 140
Z Image (custom model)
  • seedImage
  • maskImage
  • outpaint
  • lora
  • ultralytics
  • acceleratorOptions
  • advancedFeatures.watermark.image
  • image
modelrunware:z-image@0
positivePrompt
width1024
height1024
negativePrompt
seed0
stepsfalse
steps_value1
scheduler(default)
CFGScalefalse
CFGScale_value0.00
strengthfalse
strength_value0.80
maskMarginfalse
maskMargin_value32
numberResults1
advancedFeaturesfalse
advancedFeatures.watermark.bgColor
advancedFeatures.watermark.displayPosition(default)
advancedFeatures.watermark.fontColor
advancedFeatures.watermark.opacityfalse
advancedFeatures.watermark.opacity_value0.10
advancedFeatures.watermark.text
safetyfalse
safety.checkContentfalse
ttlfalse
ttl_value60
outputFormatJPG
outputQuality95

If you've been in the ComfyUI ecosystem for more than a few months, you know Z-Image: Alibaba's open-weights model that quietly took the photorealism default away from Flux. This node is that model plus one very good twist - it's an architecture node. Instead of being locked to the base Z-Image, it runs any checkpoint of Z-Image architecture from the Runware catalog. The model field takes an AIR string (the default is runware:z-image@0) and there's a search button right on the node to browse community fine-tunes. Same node, different model, no re-installing anything.

This is the payoff of how the Runware pack is built: one node per model, generated from a schema, all running on Runware's cloud. You install the pack once (ComfyUI Manager → search Runware, or clone https://github.com/Runware/ComfyUI-Runware into custom_nodes/), add an API key in ComfyUI Settings, and every model - including every Z-Image fine-tune they host - shows up as a node. No checkpoints, no VRAM math, no models/unet folder to babysit.

How it works

Mechanically it's the same as every image node in the pack: your widgets and any wired builder sockets get folded into a request, sent to Runware as a taskType of image inference, and the result comes back as a native IMAGE tensor. The difference is the model input, which the node reads per-run. Swap runware:z-image@0 for a fine-tune's AIR and the same graph renders through that checkpoint. That's the whole value proposition: a workflow that uses this node becomes a testbed for every Z-Image-architecture model in the catalog.

Inputs that matter

  • model (required) - the AIR, with a search button. This is the field you'll actually change.
  • positivePrompt - Z-Image is a T5/LLM-encoded architecture; write descriptive natural language, not SD1.5 tag soup.
  • width / height - 128–2048, stepped by 16.
  • seedImage / maskImage - IMAGE sockets for img2img and inpainting; pair with strength and maskMargin (the inpainting context-padding control).
  • CFGScale - here's the subtle one. Z-Image is guidance-distilled, and the tooltip is blunt: the negative prompt is ignored when guidance is disabled (CFGScale ≤ 1). The base model wants CFG 1 - that's the default state of the art for 2026 models, guidance baked into the weights. Cranking CFG on Z-Image doesn't buy prompt adherence; it overcooks the image.
  • steps - toggle-gated; off uses the model's default, which is usually the right call on a distilled architecture.
  • lora / outpaint / acceleratorOptions / watermark / ultralytics - typed sockets from the Runware/Params builders.

The image output is a plain IMAGE, so it drops into Preview Image or Save Image exactly like a local generation. The title bar shows your per-run cost and the NSFW flag when a content check ran - useful, since a custom fine-tune may behave differently from the base.

Where people get burned

  • CFG ≠ more adherence here. The "CFG 7 fixes everything" muscle memory from the SDXL era actively hurts on Z-Image. Leave the gate off, or stay in the 1–3 range.
  • Fine-tune AIRs - the search button is your friend; typing a random AIR gets you an error with a parameter/code tag that tells you what to fix, but it's still a wasted run.
  • The toggle pattern - steps/CFGScale/strength are "enable to set X" booleans with paired _value fields. Flip the toggle, set the value; off means model default.

The name is a little dry for what it is. This is the node that turns "try the new Z-Image fine-tune" from a half-hour of downloading into a dropdown change.

CategoryRunware/Custom models

Inputs (36)

NameTypeDefaultDescription
modelSTRINGrunware:z-image@0AIR of any checkpoint of this architecture. Use the search button to browse the catalog.
positivePromptSTRINGText prompt describing elements to include in the generated output.
widthINT1024128–2048Width of the generated media in pixels.
heightINT1024128–2048Height of the generated media in pixels.
seedImageoptIMAGE
maskImageoptIMAGE
outpaintoptRUNWARE_OUTPAINT
loraoptRUNWARE_LORA
ultralyticsoptRUNWARE_ULTRALYTICS
acceleratorOptionsoptRUNWARE_ACCELERATOROPTIONS
advancedFeatures.watermark.imageoptIMAGE
negativePromptoptSTRINGPrompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1).
seedoptINT00–9223372036854776000Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
stepsoptBOOLEANfalseEnable to set steps. Off uses the model's default.
steps_valueoptINT11–50Total number of denoising steps. Higher values generally produce more detailed results but take longer.
scheduleroptCOMBO(default)Scheduler to use for the diffusion process.
CFGScaleoptBOOLEANfalseEnable to set CFGScale. Off uses the model's default.
CFGScale_valueoptFLOAT0.000–20Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt.
strengthoptBOOLEANfalseEnable to set strength. This setting has usage rules in this model, so it is off unless you enable it.
strength_valueoptFLOAT0.800–1Strength of the transformation. Lower values result in more influence from the original input.
maskMarginoptBOOLEANfalseEnable to set maskMargin. Off uses the model's default.
maskMargin_valueoptINT3232–128Extra context pixels around the masked region during inpainting. The model zooms into the masked area with these additional pixels for better integration.
numberResultsoptINT11–20Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
advancedFeaturesoptBOOLEANfalseEnable to set advancedFeatures. Off uses the model's default.
advancedFeatures.watermark.bgColoroptSTRINGBackground color in hex format.
advancedFeatures.watermark.displayPositionoptCOMBO(default)Watermark position.
advancedFeatures.watermark.fontColoroptSTRINGText color in hex format.
advancedFeatures.watermark.opacityoptBOOLEANfalseEnable to set advancedFeatures.watermark.opacity. Off uses the model's default.
advancedFeatures.watermark.opacity_valueoptFLOAT0.100.1–1Watermark opacity.
advancedFeatures.watermark.textoptSTRINGWatermark text.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOJPGFile format for the generated image.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
imageIMAGE