Nodes/ComfyUI-DiT360Plus/DiT360 Text to Panorama
ComfyUI Node

DiT360 Text to Panorama

Type a prompt, get a panorama that actually wraps — the 'this is a panorama image' trick

By thomashollier·Created 7 months ago·Updated 3 months ago· 3
DiT360 Text to Panorama
  • pipeline
  • IMAGE
promptThis is a panorama image. A beautiful mountain landscape with a lake
width2048
steps50
guidance_scale2.8
seed0

This is the node you're actually here for. Feed it the pipeline from Flux Panorama Loader, type a scene, and it hands back a 2:1 equirectangular image that's meant to be viewed as a 360 sphere. The trick isn't the prompt - it's the math under the hood, and it's worth knowing because it's why this pack exists at all.

Why regular FLUX can't do this

Ask vanilla FLUX for a "360 panorama" and you get a flat image with a visible seam where the left edge meets the right - the model simply doesn't know the image wraps around. DiT360 (the Insta360 Research Team paper this pack wraps) fixes that with circular padding. After FLUX packs the latents into a token sequence, the tokens are reshaped into a grid and the first and last columns are wrapped around, so the transformer literally "sees" across the horizontal seam during every denoising step. The padding is stripped before the VAE decodes. That's the whole trick, and it's why the seam problem mostly disappears instead of being papered over in post.

The inputs that matter

Most of them are set-and-forget, and the tooltips tell you the recommended values:

  • pipeline - from Flux Panorama Loader. Non-negotiable.
  • prompt - the tooltip's advice is worth following: prefix with This is a panorama image. The default prompt already does this. It's a cheap way to nudge the model into panorama-shaped thinking.
  • width - output width; height is auto-calculated as width/2, and the node snaps to 16px alignment. Default 2048, which is the sweet spot for quality. 512–4096 range.
  • steps - 50 is the recommendation; fewer is faster but flakier seams.
  • guidance_scale - 2.8 recommended. Note this is FLUX-style guidance, not SD-style CFG, so don't panic that it's not "3.5+".
  • seed - for reproducibility.

The single output, IMAGE, is a (1, H, W, 3) tensor ready to wire into the pack's 360 Edge Blender (fixes any residual seam), then 360 Viewer for the interactive Three.js preview. The README's canonical mini-workflow:

Flux Panorama Loader -> DiT360 Text to Panorama -> 360 Edge Blender -> 360 Viewer

The honest context

Reality check: this is a niche corner of the ecosystem. DiT360 got essentially zero community buzz - it's a research-code port, and the 2026 panorama conversation moved on to Flux.2 Klein LoRAs and Qwen-Image. But if you specifically want FLUX.1-dev quality with a true equirect output and no LoRA-training of your own, this pack is one of the few turnkey paths, and this node is the easiest part of it.

Common issues

  • OOM at 2048 on a 16GB card. That's expected. Drop to 1024 (half height) or switch the loader to balanced with a sensible budget. 2048 really wants 24GB.
  • Still seeing a seam. Run it through 360 Edge Blender; the wrap math handles most of it, but nothing's perfect, and blend_width 10–20 cleans up the rest.
  • Output looks like a normal perspective image, not a panorama. This one's a loader problem, not a sampler problem - you almost certainly left lora_id empty on Flux Panorama Loader, so the DiT360 LoRA never loaded. Go back and set it to Insta360-Research/DiT360-Panorama-Image-Generation.
CategoryDiT360Plus/generation

Inputs (6)

NameTypeDefaultDescription
pipelineDIT360_PIPELINEDiT360 pipeline from the Pipeline Loader node.
promptSTRINGThis is a panorama image. A beautiful mountain landscape with a lakeText prompt. Prefix with 'This is a panorama image.' for best results.
widthINT2048512–4096Output width. Height auto-calculated as width/2. Recommended: 2048.
stepsINT501–200Number of denoising steps. Recommended: 50.
guidance_scaleFLOAT2.80–20Classifier-free guidance scale. Recommended: 2.8 for DiT360.
seedINT00–18446744073709550000Random seed for reproducibility.

Outputs (1)

NameTypeDescription
IMAGEIMAGE