Nodes/Eric Qwen-Edit & Qwen-Image Nodes/Eric Qwen-Image Multi-Stage Generate
ComfyUI Node

Eric Qwen-Image Multi-Stage Generate

Generate small, upscale, re-denoise — the middle path to big Qwen images

By EricRollei·Created 6 months ago·Updated 4 months ago· 20
Eric Qwen-Image Multi-Stage Generate
  • pipeline
  • image
prompt
negative_prompt
aspect_ratio1:1 Square
seed0
s1_mp0.5
s1_steps15
s1_cfg8.0
upscale_to_stage22.0
s2_steps20
s2_cfg4.0
s2_denoise1.00
upscale_to_stage32.0
s3_steps15
s3_cfg2.0
s3_denoise1.00

Eric Qwen-Image Multi-Stage Generate is the DIY version of the pack's progressive-generation idea: up to three stages, each one a generate → upscale → re-denoise cycle, with independent control over steps, CFG, and denoise at every stage. It's the node between the plain Generate (single pass, no upscaling) and UltraGen (the tuned, best-practices flagship). If you want to understand what progressive upscaling does before you trust UltraGen's presets, this is the teaching node.

How the stages fit together

  • Stage 1 drafts at low resolution from pure noise. s1_mp (0.5 default), s1_steps (15), s1_cfg (8.0). The idea, straight from the KB's upscaling playbook: lock the composition at low resolution where the model is most reliable, then refine.
  • Stage 2 upscales the Stage 1 latents (upscale_to_stage2 = area multiplier, 2.0 default) and re-denoises. s2_steps (20), s2_cfg (4.0), s2_denoise (1.0 - full re-denoise preserves little of Stage 1; lower to keep more).
  • Stage 3 does the same again (upscale_to_stage3 = 2.0, s3_steps 15, s3_cfg 2.0, s3_denoise 1.0).

The two switches that shape the whole run: upscale_to_stage2 = 0 → output Stage 1 only (single-stage); upscale_to_stage3 = 0 → two-stage output. That makes this one node a whole family: set both to 0 and it's basically a slow Generate; leave both default and you get 0.5 MP → 2 MP → 4 MP-ish.

The inputs that matter

  • prompt (required) - write sentences, not tags; the text encoder is Qwen2.5-VL.
  • aspect_ratio - applied at every stage, so all stages share the shape. Default 1:1 Square.
  • seed - 0 = random.
  • s1_mp - the single most important dial. Too high and Stage 1 costs the whole budget; too low and Stage 2 has to invent too much detail from nothing. 0.5 is the sweet spot the pack defaults to.
  • s1_cfg vs s2_cfg vs s3_cfg - notice the pattern baked into the defaults: high CFG (8) at the draft to lock composition, medium (4) at refinement, low (2) at polish. That staircase is the whole philosophy; you can fight it, but the defaults already encode it.
  • s2_denoise / s3_denoise - your control over how much each stage re-renders vs. preserves. 1.0 = full re-denoise (ignores prior stage structure); lower values refine while keeping composition.

Output is a single image.

The mechanism note worth knowing

Between stages, latents are upscaled with bislerp and re-noised to match the per-stage denoise before re-sampling. That's the difference between this and naive "upscale then one more pass" workflows - the re-noising is calibrated to the upscale factor so Stage 2 isn't just smearing Stage 1. UltraGen (and the optional 2× upscale VAE) refines this further, but Multi-Stage is the transparent version of the same idea.

Where it fits

This is the node to reach for when you want multi-megapixel output but want to tune it yourself rather than take UltraGen's opinionated defaults. It's also lighter than UltraGen in spirit - no seed modes, no sigma schedules, no max_sequence_length knob - which means fewer surprises when you're learning. The cost: you're responsible for the balance. If you want the author's tuned defaults and the extended prompt-token window, use UltraGen; if you want to understand and control every stage, stay here.

One caution from the community side of this pack: multi-stage generation on a 20B model is slow - people with 5090s have reported hour-long UltraGen runs, and Multi-Stage at three stages isn't meaningfully cheaper. Keep s1_mp low and stages at 2 until your prompt is solid. Install: ComfyUI Manager search "Eric Qwen Edit", or git clone https://github.com/EricRollei/Eric_Qwen_Edit_Experiments into custom_nodes/, with the Qwen-Image pipeline loaded upstream.

CategoryEric Qwen-Image

Inputs (16)

NameTypeDefaultDescription
pipelineQWEN_IMAGE_PIPELINEFrom the Qwen-Image loader or component loader
promptSTRINGDescribe the image you want to generate
negative_promptoptSTRINGWhat to avoid in the output
aspect_ratiooptCOMBO1:1 SquareAspect ratio applied at every stage
seedoptINT00–18446744073709550000Random seed (0 = random)
s1_mpoptFLOAT0.50.3–2Stage 1 initial resolution in megapixels
s1_stepsoptINT151–200Stage 1 inference steps (txt2img from noise)
s1_cfgoptFLOAT8.01–20Stage 1 true CFG scale
upscale_to_stage2optFLOAT2.00–8Upscale factor (area) from Stage 1 to Stage 2 (0 = skip Stage 2 & 3, output Stage 1)
s2_stepsoptINT201–200Stage 2 inference steps
s2_cfgoptFLOAT4.01–20Stage 2 true CFG scale
s2_denoiseoptFLOAT1.000.1–1Stage 2 denoise (1.0 = full re-denoise, lower = preserve prior stage detail)
upscale_to_stage3optFLOAT2.00–8Upscale factor (area) from Stage 2 to Stage 3 (0 = skip Stage 3, output Stage 2)
s3_stepsoptINT151–200Stage 3 inference steps
s3_cfgoptFLOAT2.01–20Stage 3 true CFG scale
s3_denoiseoptFLOAT1.000.1–1Stage 3 denoise (1.0 = full re-denoise, lower = preserve prior stage detail)

Outputs (1)

NameTypeDescription
imageIMAGE