ComfyUI Node
Eric Qwen-Image Composite Harmonize
A ComfyUI node in Eric Qwen-Image with 30 inputs and 2 outputs.
Eric Qwen-Image Composite Harmonize
- pipeline
- controlnet
- composite_image
- control_image
- upscale_vae
- image
- control_image_used
◄prompt►
◄cn_modeauto_canny►
◄canny_low100►
◄canny_high200►
◄denoise0.42►
◄sigma_schedulelinear►
◄cn_strength1.0►
◄cn_start0.00►
◄cn_end0.70►
◄negative_prompt低分辨率,低画质,肢体畸形,手指畸形,画面过饱和,蜡像感,人脸无细节,过度光滑,画面具有AI感。构图混乱。文字模糊,扭曲。►
◄steps40►
◄true_cfg_scale4.5►
◄max_sequence_length1024►
◄max_mp6.0►
◄seed0►
◄upscale_vae_keep_2xtrue►
◄refine_passtrue►
◄refine_denoise0.30►
◄refine_steps40►
◄refine_sigma_schedulekarras►
◄refine_cfg4.5►
◄refine_cn_strength1.0►
◄refine_cn_start0.00►
◄refine_cn_end0.50►
◄refine_recannyfalse►
CategoryEric Qwen-Image
Inputs (30)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | QWEN_IMAGE_PIPELINE | From the Qwen-Image loader (Qwen-Image base, NOT Qwen-Image-Edit). | |
| controlnet | QWEN_IMAGE_CONTROLNET | From the Qwen-Image ControlNet Loader. Use the InstantX Union model. | |
| composite_image | IMAGE | The composited image to harmonise (e.g. ImageComposer output). | |
| prompt | STRING | Description of the unified scene. If empty, a generic harmonisation preamble is used. RECOMMENDED: wire from the Qwen ControlNet Prompt Rewriter with the composite as input — it will list every subject in place so Qwen cannot delete them. | |
| cn_modeopt | COMBO | auto_canny | How to obtain the control image: auto_canny: cv2 Canny edges of the composite (default, robust). auto_soft_edge: cv2 Sobel+Laplacian soft edges (smoother textures). external: use the wired control_image input (depth, pose, custom canny, etc.). |
| control_imageopt | IMAGE | External control image. Used only when cn_mode = external. | |
| canny_lowopt | INT | 1000–255 | Low threshold for cv2.Canny (auto_canny only). |
| canny_highopt | INT | 2000–255 | High threshold for cv2.Canny (auto_canny only). |
| denoiseopt | FLOAT | 0.420.05–1 | How much of the schedule to run. 0.20–0.30: very light — just colour/grain matching. 0.30–0.45: typical harmonisation — lighting + soft contact shadows. 0.45–0.60: stronger relight, may shift small details. 0.70+: nearly full re-render — use only if structure is locked by CN. |
| sigma_scheduleopt | COMBO | linear | Step distribution within the active denoise range. balanced is safest. |
| cn_strengthopt | FLOAT | 1.00–5 | ControlNet conditioning scale. 1.0 standard. >1.5 over-constrains. |
| cn_startopt | FLOAT | 0.000–1 | Fraction of steps at which CN guidance begins. |
| cn_endopt | FLOAT | 0.700–1 | Fraction of steps at which CN guidance ends. Stopping at 0.8 lets the last 20%% of steps refine textures without CN over-constraining detail. |
| negative_promptopt | STRING | 低分辨率,低画质,肢体畸形,手指畸形,画面过饱和,蜡像感,人脸无细节,过度光滑,画面具有AI感。构图混乱。文字模糊,扭曲。 | What to avoid (default = official Qwen-Image negative). |
| stepsopt | INT | 404–100 | Total inference steps. 20–28 is a good range; effective denoise steps = round(steps * denoise). |
| true_cfg_scaleopt | FLOAT | 4.51–12 | True CFG. 2.5–3.5 is best for harmonisation. |
| max_sequence_lengthopt | INT | 1024128–1024 | Max prompt token length for the text encoder. 1024 is the Qwen-Image max and has negligible runtime cost — lets long override prompts (per-subject preservation lists) survive without truncation. |
| max_mpopt | FLOAT | 6.00.5–16 | Max megapixels at which to run the harmonisation. The composite is resized to fit; output is upsampled back to composite size with Lanczos. Qwen-Image natively handles up to ~16 MP. Lower this (e.g. 4–8 MP) if you hit VRAM limits. |
| seedopt | INT | 00–18446744073709550000 | Seed (0 = random). |
| upscale_vaeopt | UPSCALE_VAE | Optional. Wire the 2× Wan upscale VAE to replace the final decode with a sharper 2× reconstruction. No extra diffusion is done — the diffusion result is decoded through the upscale VAE instead of the pipeline's standard VAE, then resized down to the composite size with Lanczos. Adds ~1–3s and gives crisper textures and edges. If unwired, the standard pipeline VAE decode is used. | |
| upscale_vae_keep_2xopt | BOOLEAN | true | When upscale_vae is wired and this is ON, output is kept at 2× the working resolution (NOT downsampled to the original composite size). Useful when you want the harmoniser to also act as a 2× upscaler. Ignored if upscale_vae is not wired. |
| refine_passopt | BOOLEAN | true | Run a second, lighter diffusion pass on the result of pass 1. The pass-1 latent stays on the GPU — NO VAE re-encode round-trip — so detail is not lost between passes. Pass 1 = structural harmonisation (lighting, shadows, water blends). Pass 2 = detail refinement (faces, fabric, marble texture). Two gentle passes consistently beat one heavier pass. |
| refine_denoiseopt | FLOAT | 0.300.05–0.6 | Pass-2 denoise. Keep low (0.18–0.28). Pass 1 already locked structure; pass 2 should only sharpen detail. |
| refine_stepsopt | INT | 404–80 | Pass-2 total steps. Effective = round(refine_steps * refine_denoise). |
| refine_sigma_scheduleopt | COMBO | karras | Pass-2 sigma schedule. balanced is best for detail formation. |
| refine_cfgopt | FLOAT | 4.51–12 | Pass-2 CFG. Slightly higher than pass 1 — commits harder to detail words like 'fine skin pores', 'individual eyelashes', etc. |
| refine_cn_strengthopt | FLOAT | 1.00–5 | Pass-2 ControlNet strength. Lower than pass 1 — structure is already locked, so heavy CN here just over-constrains texture. |
| refine_cn_startopt | FLOAT | 0.000–1 | Pass-2 CN start fraction. |
| refine_cn_endopt | FLOAT | 0.500–1 | Pass-2 CN end fraction. Stop CN early so the last 50%% of pass-2 steps are free to refine textures without CN over-constraining. |
| refine_recannyopt | BOOLEAN | false | When ON and cn_mode is auto_canny/auto_soft_edge, re-derive the control image from the pass-1 result (now clean photographic edges, not collage edges). Costs one extra decode-to-PIL but does NOT round-trip the latent. When OFF (or cn_mode = external), pass 2 reuses the pass-1 control image. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| control_image_used | IMAGE | — |