VRGDG Z-Image Workflow Runner UI
Run the bundled Z-Image text-to-image workflow from a canvas, not a file browser
- status
Z-Image is the pack's enhancement engine of choice, and the author bundles a tuned text-to-image workflow template for it. Normally, using it means loading a JSON workflow from the pack's Workflows/ folder, wiring it, and running it - fiddly, and easy to get wrong. VRGDG Z-Image Workflow Runner UI is the shortcut: a canvas UI that runs that bundled Z-Image text-to-image template without you opening the workflow file at all. You set prompts and sizes in the node, it runs the template in the background, and your images land in a save folder.
Given the pack's heavy use of Z-Image as a second-pass enhancer, this is the node you'd reach for when you just want clean Z-Image outputs - or to generate the base images your video pipeline will later animate - without maintaining a separate workflow.
The inputs that matter
- workflow_path - points at the bundled template (
Workflows/UsedForUIDoNotTouch/text2image_zimage_API.jsonby default). If you've installed the pack elsewhere than the default/tmp/ComfyUI/...path in the default, update this to your real install location. - save_folder (default
VRGDG_WorkflowRunner_Saved) - where generations go. - prompt - your text prompt. Z-Image is bilingual; the community consistently reports Chinese prompts give a noticeable adherence boost, so keep that in your back pocket here.
- first_pass_width/height (defaults 1280×720) and second_pass_width/height (defaults 1920×1080) - the two-pass structure: generate at the first size, refine/upscale at the second. Z-Image's native ceiling is ~2MP, so a two-pass approach keeps quality up at deliverable sizes.
- batch_size (default 1) - images per run.
- ltx_two_pass_mode - toggle for when you're generating start images destined for an LTX video workflow and want the pass structure to match LTX's expectations.
- use_custom_loras + lora_count + lora_1…lora_20 with per-LoRA first_pass_strength / second_pass_strength - the LoRA stack. Each lora slot has a model picker plus separate strengths for the two passes (defaults 0.5 first, 1.0 second). One honest caveat from the community: stacking many Z-Image LoRAs tends to collapse quality - two or three well-chosen ones beat eight at once.
The output
A single status string. This node's real output is the images it writes to save_folder, so status is mostly a handshake for your workflow - read it to confirm the run finished, then grab the files from the folder.
Install and gotchas
Standard pack install (Manager → search vrgamedev, restart, hard-refresh - the runner UI is JS). Two things will bite you:
- The default
workflow_pathis an absolute path that assumes the pack lives at a specific location. If your ComfyUI isn't at that path, update it or the runner can't find the template. This is the single most common failure with this node. - You need a Z-Image checkpoint on hand. The runner drives a template, but the template still needs the model. Grab Z-Image Turbo (or Base) plus its Qwen3-4B text encoder if your setup doesn't auto-resolve them, and note the Base-vs-Turbo settings difference: Turbo runs ~8 steps at CFG 1, Base wants 25–50 steps at CFG 3–5.
Inputs (71)
| Name | Type | Default | Description |
|---|---|---|---|
| workflow_path | STRING | /tmp/ComfyUI/custom_nodes/comfyui-vrgamedevgirl/Workflows/UsedForUIDoNotTouch/text2image_zimage_API.json | — |
| save_folder | STRING | VRGDG_WorkflowRunner_Saved | — |
| prompt | STRING | — | |
| first_pass_width | INT | 128064–4096 | — |
| first_pass_height | INT | 72064–4096 | — |
| second_pass_width | INT | 192064–4096 | — |
| second_pass_height | INT | 108064–4096 | — |
| batch_size | INT | 11–16 | — |
| use_custom_loras | BOOLEAN | false | — |
| lora_count | INT | 00–20 | — |
| ltx_two_pass_mode | BOOLEAN | false | — |
| lora_1 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_1 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_1 | FLOAT | 1.00-100–100 | — |
| lora_2 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_2 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_2 | FLOAT | 1.00-100–100 | — |
| lora_3 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_3 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_3 | FLOAT | 1.00-100–100 | — |
| lora_4 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_4 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_4 | FLOAT | 1.00-100–100 | — |
| lora_5 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_5 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_5 | FLOAT | 1.00-100–100 | — |
| lora_6 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_6 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_6 | FLOAT | 1.00-100–100 | — |
| lora_7 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_7 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_7 | FLOAT | 1.00-100–100 | — |
| lora_8 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_8 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_8 | FLOAT | 1.00-100–100 | — |
| lora_9 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_9 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_9 | FLOAT | 1.00-100–100 | — |
| lora_10 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_10 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_10 | FLOAT | 1.00-100–100 | — |
| lora_11 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_11 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_11 | FLOAT | 1.00-100–100 | — |
| lora_12 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_12 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_12 | FLOAT | 1.00-100–100 | — |
| lora_13 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_13 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_13 | FLOAT | 1.00-100–100 | — |
| lora_14 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_14 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_14 | FLOAT | 1.00-100–100 | — |
| lora_15 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_15 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_15 | FLOAT | 1.00-100–100 | — |
| lora_16 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_16 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_16 | FLOAT | 1.00-100–100 | — |
| lora_17 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_17 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_17 | FLOAT | 1.00-100–100 | — |
| lora_18 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_18 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_18 | FLOAT | 1.00-100–100 | — |
| lora_19 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_19 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_19 | FLOAT | 1.00-100–100 | — |
| lora_20 | COMBO | [none] | 1 options: [none] |
| first_pass_strength_20 | FLOAT | 0.50-100–100 | — |
| second_pass_strength_20 | FLOAT | 1.00-100–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |