Flux Panorama Loader
The node every DiT360Plus workflow starts with — and the one that decides whether you OOM
- pipeline
Every workflow in ComfyUI-DiT360Plus starts with this node, and almost every problem people hit with the pack starts here too. Flux Panorama Loader doesn't generate anything - it builds the FLUX pipeline that every other DiT360Plus node consumes. That pipeline output (a DIT360_PIPELINE object) is the thing you wire into DiT360 Text to Panorama, the Image Inverter, and both panorama editors. Think of it as the pack's checkpoint loader, but with opinions about VRAM.
Why you should care about those opinions: FLUX.1-dev is a 12B transformer. Whether this whole pack runs on your GPU or dies in a CUDA OOM is decided by the cpu_offload dropdown on this one node, not by anything downstream.
How it works
The loader takes the checkpoint you pick from your diffusion_models folder and loads it through FluxTransformer2DModel.from_single_file (diffusers, not ComfyUI's own loader). Text encoders, VAE and scheduler come from the base_pipeline - that's why it wants a HuggingFace repo. If you put an ID in lora_id, it calls pipe.load_lora_weights() on it, and diffusers handles the download.
Here's the gotcha that the README half-hides: it claims the DiT360 LoRA "downloads automatically." It does - but only because the example workflows put the repo ID into the lora_id field, and the node only loads a LoRA if you fill that field in. Default is empty, and empty means plain FLUX with no 360 behavior. It won't error; it'll just quietly generate a normal image that doesn't wrap. Put this in the field:
Insta360-Research/DiT360-Panorama-Image-Generation
The inputs that matter
- model - dropdown of checkpoints in your
diffusion_modelsfolder. Needs to be a FLUX-family.safetensors. - base_pipeline -
black-forest-labs/FLUX.1-dev(default) orFLUX.1-Kontext-dev. Pick Kontext if you plan to use the Kontext Panorama Editor; it pulls the right text encoders and scheduler. - lora_id - the LoRA above. This is the one people get wrong.
- cpu_offload - the star of the show:
| Mode | Peak VRAM | Speed | Best for |
|------|-----------|-------|----------|
| off | 24GB+ | Fastest | 48GB+ cards |
| model | ~15GB | Fast | 1024 width on 24GB |
| balanced | set by you | Medium | 1536–2048 on 24GB |
| sequential | ~3GB | Slowest | 8–16GB cards |
- balanced_offload_gb - only used in
balancedmode. It's a hard cap for the transformer; the node queries actual free VRAM, reserves space for activations, and packs as many transformer layers onto the GPU as the budget allows. Expect real usage to run ~1GB over whatever you set. - dtype -
float16default,bfloat16if you're chasing stability. If you start seeing NaN noise,bfloat16is the first thing to try.
enable_vae_tiling and enable_vae_slicing both default to on and save a chunk of VRAM on the encode/decode side; there's rarely a reason to turn them off.
Installing the pack
ComfyUI Manager, search ComfyUI-DiT360Plus, install. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/thomashollier/ComfyUI-DiT360Plus.git
cd ComfyUI-DiT360Plus
pip install -r requirements.txt
You also need to accept the FLUX.1-dev license on HuggingFace and run huggingface-cli login - if the loader fails while fetching text encoders, that's almost always the cause. Requirements: Python 3.10+, PyTorch 2.0+, and realistically 16GB VRAM to get anywhere.
Where people get burned
- Empty
lora_id→ no 360 wrap, and it's silent. Check this first when your "panorama" looks like a normal image. - 2048 width on a 16GB card → OOM. Drop to 1024 (
modeloffload) or usebalancedwith a budget of 8–10. - Gated-model download errors → you haven't logged in, or haven't accepted the license.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | FLUX model from your ComfyUI diffusion_models folder. | |
| base_pipeline | COMBO | black-forest-labs/FLUX.1-dev | HuggingFace repo for pipeline components (text encoders, VAE, scheduler). |
| lora_id | STRING | Optional HuggingFace repo ID or local path for LoRA weights. Leave empty for no LoRA. | |
| dtype | COMBO | float16 | Model precision. float16 uses less VRAM, bfloat16 may be more stable. |
| enable_vae_tiling | BOOLEAN | true | Enable VAE tiling to reduce VRAM usage during encode/decode. |
| enable_vae_slicing | BOOLEAN | true | Enable VAE slicing for memory efficiency. |
| cpu_offload | COMBO | model | CPU offload strategy. 'model' moves whole models to CPU when idle (fast, best for 1024). 'balanced' splits transformer across GPU/CPU (good for 1536-2048). 'sequential' moves one layer at a time (slowest, lowest VRAM). 'off' keeps everything on GPU. |
| balanced_offload_gb | FLOAT | 8.01–48 | GPU memory budget (GB) for transformer layers in 'balanced' mode. Only used in balanced mode. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipeline | DIT360_PIPELINE | — |