HY-World Qwen Pano Encoder
Prepping the canvas and conditioning for Qwen panorama expansion
- image
- reference_image
- wide_canvas_image
- positive_prompt
- negative_prompt
Before Qwen can expand your image into a 360° panorama, someone has to lay down the blank canvas it's going to expand onto, and build the prompt/conditioning that tells it what to do. That's HYWorld2 Qwen Pano Encoder. It takes your input image, crops and resizes it into a reference, creates a wide empty canvas the model will fill in, and emits the positive/negative prompt pair - everything the Qwen Pano Generate node needs to start sampling.
Think of it as the "set the table" node in a two-course meal: Encoder prepares, Generate cooks. You don't strictly need it if you'd rather hand-build the canvas yourself, but it's the intended path, and it's where you set the output resolution for your panorama.
How it works
From the source, the mechanism is refreshingly concrete:
- It takes your
image, crops off thecrop_borderfraction from the edges (default 0 - the tooltip-relevant knob is there for pano sources that have lens/edge artifacts). - It builds a blank
canvastensor of exactlywidth×height(defaults 1952×960, the equirect aspect the Qwen pano pipeline expects), filled withcanvas_value(0 = black).batch_sizetiles the reference across multiple canvases if you're generating a batch. - It constructs the prompts - same official template logic as
Qwen Pano Prompt, withuse_official_prompton by default and yourscene_promptdescribing the continuation. - It returns the
reference_image(cropped), thewide_canvas_image(blank), and the two prompt strings.
The inputs that matter
image- required. Your seed photo.width/height- the output panorama size. 1952×960 is the pipeline default and a good start; both step by 8.scene_prompt- what the expansion should depict in the extended areas.crop_border- nudge up (max 0.49) if your source has edge junk that would get hallucinated into the panorama.canvas_value- black is right for this model family; you can lighten it but expect the model to fight you.
Outputs
reference_imageandwide_canvas_image- the two images to feedQwen Pano Generate(it takes the reference; the canvas informs the empty latent).positive_prompt/negative_prompt- the conditioned strings for the generator.
Install & troubleshooting
Pack install: ComfyUI Manager (search HY-World 2.0) or clone + pip install -r requirements.txt + python install.py. No model downloads here - this node is pure tensor wrangling, so it's fast and light.
The subtle stuff is all in the resolution: keep width/height multiples of 8 (the node enforces the step), and remember the pipeline was tuned at 1952×960 - going wildly wider works but costs VRAM at generation time. If your reference keeps getting cropped unexpectedly, you left crop_border above 0 from a previous experiment. And because this feeds a generative model, garbage in = pano garbage out: a sharp, cleanly-cropped input is the single biggest quality lever you control at this node.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| scene_prompt | STRING | a clean bright indoor scene | — |
| width | INT | 195264–8192 | — |
| height | INT | 96064–8192 | — |
| batch_size | INT | 11–64 | — |
| canvas_value | FLOAT | 0.000–1 | — |
| crop_border | FLOAT | 0.0000–0.49 | — |
| use_official_prompt | BOOLEAN | true | — |
| negative_promptopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| reference_image | IMAGE | — |
| wide_canvas_image | IMAGE | — |
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |