Generated reference · ComfyUI workflow · zimage

Z-Image Text-to-Image

Z-Image text-to-image on the RunPod image endpoint: the 6B base (CFG and negative prompt) or a Civitai Turbo finetune (CyberRealistic v8.0 bf16, Z-Image-Turbo BF16 AIO), with an optional Z-Image LoRA. Translated from …

zimage13nodesGPU A5000out image~122sv1.0.0

On this page

Z-Image text-to-image on the RunPod image endpoint: the 6B base (CFG and negative prompt) or a Civitai Turbo finetune (CyberRealistic v8.0 bf16, Z-Image-Turbo BF16 AIO), with an optional Z-Image LoRA. Translated from Comfy-Org/workflow_templates@aaac56dd templates/image_z_image.json (base: KSampler res_multistep + simple, 25 steps, CFG 4, ModelSamplingAuraFlow shift 3, 1024x1024 from ResolutionSelector 1:1 at 1 MP, empty negative prompt) and templates/image_z_image_turbo.json (Turbo: 8 steps, CFG 1, negative zeroed with ConditioningZeroOut). Choosing a Turbo checkpoint selects the Turbo schedule through checkpoint_profile.

13Graph nodes
12Node classes
10Inputs
10Models

Tags: zimagerunpod-serverlessvolume-backedtext-to-image

Inputs (10)#

The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.

promptstringrequireddefault Latina female with thick wavy hair, harbor boats and pastel houses behind. Breezy seaside light, warm tones, cinematic close-up.
Positive prompt in natural prose (the default is the prompt of the upstream Z-Image-Turbo template)
negative_promptstringdefault
Negative prompt, honoured by the base checkpoint (CFG-guided; the upstream base template leaves it empty). A Turbo checkpoint samples at CFG 1 with the negative zeroed (ConditioningZeroOut, as the upstream Turbo template does), so this text is not encoded for it.
checkpointenumdefault zimage-base-bf16
Z-Image checkpoint on the network volume. zimage-base-bf16 = Z-Image 6B base (UNETLoader, CFG and negative prompt). cyberrealistic-zimage-turbo-v8-bf16 = CyberRealistic Z-Image Turbo v8.0 bf16 (UNETLoader with the shared Qwen3 4B encoder and Flux ae). zimage-turbo-bf16-aio = Z-Image-Turbo BF16 all-in-one (CheckpointLoaderSimple; encoder and VAE come from the same file). The two Turbo checkpoints run the distilled schedule automatically: 8 steps at CFG 1 with the negative zeroed, whatever steps and cfg say.
options: zimage-base-bf16cyberrealistic-zimage-turbo-v8-bf16zimage-turbo-bf16-aio
stepsintegerdefault 25min 8max 60
Sampling steps for the base checkpoint (25 is the upstream base template's value; its note suggests 30-50). Not used by a Turbo checkpoint, which always runs 8.
cfgfloatdefault 4.0min 1.0max 10.0
Classifier-free guidance for the base checkpoint (4 is the upstream base template's value; its note suggests 3-5). Not used by a Turbo checkpoint, which always samples at 1.
seedintegerdefault -1
Random seed (-1 = random)
aspectenumdefault square_1024x1024
Output aspect. The sizes are what the upstream template's ResolutionSelector (1.0 MP, multiple of 8) computes for each of its eight ratios (ComfyUI v0.34.0 comfy_extras/nodes_resolution.py: scale = sqrt(1024^2 / (w*h)), each side rounded to a multiple of 8); they are literals here so the per-job caps can read the latent size.
options: square_1024x1024portrait_2x3_840x1256landscape_3x2_1256x840portrait_3x4_888x1184landscape_4x3_1184x888portrait_9x16_768x1368landscape_16x9_1368x768ultrawide_21x9_1568x672
batch_sizeintegerdefault 1min 1max 1
Images per run. Pinned to 1: the executor's resolution-scaled batch cap (C.12.19) allows a second latent only below ~0.5 MP, and every aspect here is ~1 MP.
loraenumdefault none
Optional Z-Image LoRA (A.03.02, all Civitai with every commercial flag; none of the five versions lists trained words, so no trigger is appended). photoreal-betternudes-v3 = PhotoReal BetterNudes v3 (explicit); realistic-snapshot-v5 = Realistic Snapshot ZIT v5; breast-slider and detail-slider = [ZIT] sliders, driven by strength in either direction; detaildaemonz-v1.1 = DetailDeamonZ v1.1 slider. All but DetailDeamonZ were trained on Z-Image Turbo (DetailDeamonZ lists Z-Image base and serves both); on the base checkpoint the Turbo-trained ones load onto the same architecture but were not trained for it. none leaves the graph without a LoRA loader.
options: nonephotoreal-betternudes-v3realistic-snapshot-v5breast-sliderdetail-sliderdetaildaemonz-v1.1
lora_strengthfloatdefault 1.0min -2.0max 2.0
LoRA strength on the model (LoraLoaderModelOnly.strength_model). The sliders are meant to be driven negative as well as positive.

ComfyUI node graph (13)#

The executable ComfyUI prompt graph: 13 nodes across 12 distinct node classes, wired by 6 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.

flowchart TD n0["1: UNETLoader"] n1["2: CLIPLoader"] n2["3: VAELoader"] n3["4: CheckpointLoaderSimple"] n4["5: LoraLoaderModelOnly"] n5["6: ModelSamplingAuraFlow"] n6["7: CLIPTextEncode"] n7["8: CLIPTextEncode"] n8["9: ConditioningZeroOut"] n9["10: EmptySD3LatentImage"] n10["11: KSampler"] n11["12: VAEDecode"] n12["13: SaveImage"] n6 -->|conditioning| n8 n5 -->|model| n10 n6 -->|positive| n10 n9 -->|latent_image| n10 n10 -->|samples| n11 n11 -->|images| n12
Data-flow DAG — scroll to zoom, drag to pan.

Nodes (13)#

1UNETLoadercore
unet_name = {{checkpoint_map[checkpoint]}} tmplweight_dtype = default
outputs: MODEL
2CLIPLoadercore
clip_name = qwen_3_4b.safetensorstype = lumina2device = default
outputs: CLIP
3VAELoadercore
vae_name = ae.safetensors
outputs: VAE
4CheckpointLoaderSimplecore
ckpt_name = {{checkpoint_map[checkpoint]}} tmpl
outputs: MODELCLIPVAE
5LoraLoaderModelOnlycore
model = {{loader_refs[checkpoint_profile[checkpoint].loader].model}} tmpllora_name = {{lora_map[lora]}} tmplstrength_model = {{lora_strength}} tmpl
outputs: MODEL
6ModelSamplingAuraFlowcore
model = {{lora_ref if lora != 'none' else loader_refs[checkpoint_profile[checkpoint].loader].model}} tmplshift = 3
outputs: MODEL
7CLIPTextEncodecore
text = {{constructed_prompt}} tmplclip = {{loader_refs[checkpoint_profile[checkpoint].loader].clip}} tmpl
outputs: CONDITIONING
8CLIPTextEncodecore
text = {{negative_prompt}} tmplclip = {{loader_refs[checkpoint_profile[checkpoint].loader].clip}} tmpl
outputs: CONDITIONING
9ConditioningZeroOutcore
conditioning = ◂ node 7 · out[0]
outputs: CONDITIONING
10EmptySD3LatentImagecore
width = {{aspect_map[aspect].width}} tmplheight = {{aspect_map[aspect].height}} tmplbatch_size = {{batch_size}} tmpl
outputs: LATENT
11KSamplercore
model = ◂ node 6 · out[0]positive = ◂ node 7 · out[0]negative = {{checkpoint_profile[checkpoint].negative}} tmpllatent_image = ◂ node 10 · out[0]seed = {{seed}} tmplsteps = {{distilled_schedule.steps if checkpoint_profile[checkpoint].distilled else steps}} tmplcfg = {{distilled_schedule.cfg if checkpoint_profile[checkpoint].distilled else cfg}} tmplsampler_name = res_multistepscheduler = simpledenoise = 1.0
outputs: LATENT
12VAEDecodecore
samples = ◂ node 11 · out[0]vae = {{loader_refs[checkpoint_profile[checkpoint].loader].vae}} tmpl
outputs: IMAGE
13SaveImagecore
images = ◂ node 12 · out[0]filename_prefix = isis/zimage-txt2img

Prompt construction#

template
{base_prompt}

Variables (1)#

base_prompt
{{prompt}} tmpl

Parameter banks (9)#

The prompt / configuration lookup tables this workflow keys into from its inputs — the vocabulary that turns a style / palette / preset selection into graph parameters.

option_policy (2)#

checkpoint
{"zimage-base-bf16": {"distribution": "service", "content": "neutral"}, "cyberrealistic-zimage-turbo-v8-bf16": {"distribution": "service", "content": "racy"}, "zimage-turbo-bf16-aio": {"distribution": "service", "content": "neutral"}}
lora
{"photoreal-betternudes-v3": {"distribution": "service", "content": "explicit"}, "realistic-snapshot-v5": {"distribution": "service", "content": "neutral"}, "breast-slider": {"distribution": "service", "content": "racy"}, "detail-slider": {"distribution": "service", "content": "neutral"}, "detaildaemonz-v1.1": {"distribution": "service", "content": "neutral"}}

checkpoint_map (3)#

zimage-base-bf16
z_image_bf16.safetensors
cyberrealistic-zimage-turbo-v8-bf16
cyberrealistic_zimage_turbo_v8_bf16.safetensors
zimage-turbo-bf16-aio
zimage_turbo_bf16_aio.safetensors

checkpoint_profile (3)#

zimage-base-bf16
{"loader": "unet", "distilled": false, "negative": ["8", 0]}
cyberrealistic-zimage-turbo-v8-bf16
{"loader": "unet", "distilled": true, "negative": ["9", 0]}
zimage-turbo-bf16-aio
{"loader": "aio", "distilled": true, "negative": ["9", 0]}

distilled_schedule (2)#

steps
8
cfg
1.0

loader_refs (2)#

unet
{"model": ["1", 0], "clip": ["2", 0], "vae": ["3", 0]}
aio
{"model": ["4", 0], "clip": ["4", 1], "vae": ["4", 2]}

lora_ref (2)#

50

lora_map (6)#

none
photoreal-betternudes-v3
zimage-photoreal-betternudes-v3.safetensors
realistic-snapshot-v5
zimage-realistic-snapshot-v5.safetensors
breast-slider
zimage-breast-slider.safetensors
detail-slider
zimage-detail-slider.safetensors
detaildaemonz-v1.1
zimage-detaildaemonz-v1.1.safetensors

aspect_map (8)#

square_1024x1024
{"width": 1024, "height": 1024}
portrait_2x3_840x1256
{"width": 840, "height": 1256}
landscape_3x2_1256x840
{"width": 1256, "height": 840}
portrait_3x4_888x1184
{"width": 888, "height": 1184}
landscape_4x3_1184x888
{"width": 1184, "height": 888}
portrait_9x16_768x1368
{"width": 768, "height": 1368}
landscape_16x9_1368x768
{"width": 1368, "height": 768}
ultrawide_21x9_1568x672
{"width": 1568, "height": 672}

requires_families (3)#

zimagezimage-cyberrealisticzimage-aio

Models & dependencies#

Models required (10)#

z_image_bf16.safetensors
cyberrealistic_zimage_turbo_v8_bf16.safetensors
zimage_turbo_bf16_aio.safetensors
qwen_3_4b.safetensors
ae.safetensors
zimage-photoreal-betternudes-v3.safetensors
zimage-realistic-snapshot-v5.safetensors
zimage-breast-slider.safetensors
zimage-detail-slider.safetensors
zimage-detaildaemonz-v1.1.safetensors

Output contract#

What a successful run of this workflow returns.

type
image
format
png

Taxonomy & routing#

How the control plane classifies this workflow — from the committed workflow-taxonomy-registry.json. It drives the consistency / control surface the agentic director can exercise over the workflow.

assetFamily
portrait-hero-image-bundle
outputPackageProfile
image-single-profile
controlModalities
model-locksampler-scheduler-lockseed-lockprompt-template-lock
consistencyDimensions
identitylightinglens
notes
Z-Image base or Turbo finetune text-to-image on RunPod serverless; a Turbo checkpoint selects the 8-step schedule.