Nodes/ComfyUI_HYWorld2/HY-World Qwen Pano Generate
ComfyUI Node

HY-World Qwen Pano Generate

The actual panorama generator — Qwen-based 360° outpainting

By AHEKOT·Created 4 months ago·Updated about a month ago· 74
HY-World Qwen Pano Generate
  • model
  • clip
  • vae
  • image
  • image
  • latent
  • positive_prompt
  • negative_prompt
prompta clean bright indoor scene
width1952
height960
seed42
steps40
cfg4.0
sampler_name
scheduler
denoise1.00
blend_width32
crop_border0.000
ref_latents_methodindex
use_official_prompttrue
crop_right_edgetrue
negative_prompt

HYWorld2 Qwen Pano Generate is the real deal: a full KSampler-style diffusion node that takes an image, a prompt, and a canvas, and samples a complete equirectangular panorama that extends your image seamlessly around the full 360°. It's the "generate" half of the Qwen Pano pair (Encoder preps, this cooks), and it's the node that actually spends your GPU time.

It's built on the Qwen-Image family's pano-expansion approach - a Qwen-style text encoder as the condition encoder, reference-latent conditioning, and a seam-blending pass so the left and right edges of the panorama actually meet. If you've ever out-painted an image with regular inpainting and watched the seams look like crimes, this is the machinery that exists to fix that specific complaint.

How it works

It's a standard ComfyUI sampling flow with pano-specific twists:

  1. Takes model / clip / vae (any compatible checkpoint - the conditioning path is what matters) plus the image reference and prompt.
  2. Encodes Qwen pano conditioning - the reference image goes through the CLIP and VAE encoder so the model knows what it's extending (ref_latents_method controls exactly how: index, offset, uxo, or index_timestep_zero; index is the safe default).
  3. Creates an empty latent at width × height, samples with your steps (40), cfg (4), sampler_name (the full Comfy list), scheduler, denoise, and seed.
  4. Decodes, then runs circular_blend_edges_tensor with blend_width (32) to blend the seam, and with crop_right_edge (true) trims the overlapped right edge so the output is a clean equirect.

The inputs that matter

  • model / clip / vae - required. Qwen-Image-derived checkpoints are the intended family.
  • image - the reference to extend.
  • prompt - the continuation description (from Qwen Pano Prompt/Encoder for the official phrasing).
  • steps / cfg - 40 / 4 are good starting points for this model family; expect to tune, not copy SDXL habits.
  • blend_width - the seam-fix dial. Too small and the wrap seam shows; too large and you blur the wrap region.
  • ref_latents_method - leave at index unless you're experimenting.

Outputs

  • image - the finished panorama (seam-blended). Feed it to Qwen Pano Seam Blend if you want to re-run blending with different settings.
  • latent - the raw samples, for advanced re-decoding.
  • positive_prompt / negative_prompt - the strings it actually used, so you can see the template applied.

Install & troubleshooting

Shared pack install: ComfyUI Manager (search HY-World 2.0) or clone + pip install -r requirements.txt + python install.py. This node needs a diffusion checkpoint - the pack doesn't ship one - and a GPU with room for it; sampling at 1952×960 is the default for a reason (it's the tuned size, not a max). VRAM is the practical ceiling: drop width/height if you OOM.

If the seam is visible after generation, raise blend_width or re-run through Qwen Pano Seam Blend. If the pano has warped or duplicated content, your reference-crop or prompt is fighting you - redo the Encoder's crop_border and keep the continuation prompt literal. And manage expectations: this is a generative outpainting, so distant parts of the 360 are invented, not reconstructed - that's fine for scene seeds, wrong for photogrammetry.

CategoryVNCCS/HY-World/Qwen Pano

Inputs (19)

NameTypeDefaultDescription
modelMODEL
clipCLIP
vaeVAE
imageIMAGE
promptSTRINGa clean bright indoor scene
widthINT195264–8192
heightINT96064–8192
seedINT420–18446744073709550000
stepsINT401–10000
cfgFLOAT4.00–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT1.000–1
blend_widthINT320–512
crop_borderFLOAT0.0000–0.49
ref_latents_methodCOMBOindex4 options: index, offset, uxo, index_timestep_zero
use_official_promptBOOLEANtrue
crop_right_edgeBOOLEANtrue
negative_promptoptSTRING

Outputs (4)

NameTypeDescription
imageIMAGE
latentLATENT
positive_promptSTRING
negative_promptSTRING