Nodes/ComfyUI-DiT360Plus/Flux Panorama Loader
ComfyUI Node

Flux Panorama Loader

The node every DiT360Plus workflow starts with — and the one that decides whether you OOM

By thomashollier·Created 7 months ago·Updated 3 months ago· 3
Flux Panorama Loader
    • pipeline
    model
    base_pipelineblack-forest-labs/FLUX.1-dev
    lora_id
    dtypefloat16
    enable_vae_tilingtrue
    enable_vae_slicingtrue
    cpu_offloadmodel
    balanced_offload_gb8.0

    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_models folder. Needs to be a FLUX-family .safetensors.
    • base_pipeline - black-forest-labs/FLUX.1-dev (default) or FLUX.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 balanced mode. 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 - float16 default, bfloat16 if you're chasing stability. If you start seeing NaN noise, bfloat16 is 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 (model offload) or use balanced with a budget of 8–10.
    • Gated-model download errors → you haven't logged in, or haven't accepted the license.
    CategoryDiT360Plus/pipeline

    Inputs (8)

    NameTypeDefaultDescription
    modelCOMBOFLUX model from your ComfyUI diffusion_models folder.
    base_pipelineCOMBOblack-forest-labs/FLUX.1-devHuggingFace repo for pipeline components (text encoders, VAE, scheduler).
    lora_idSTRINGOptional HuggingFace repo ID or local path for LoRA weights. Leave empty for no LoRA.
    dtypeCOMBOfloat16Model precision. float16 uses less VRAM, bfloat16 may be more stable.
    enable_vae_tilingBOOLEANtrueEnable VAE tiling to reduce VRAM usage during encode/decode.
    enable_vae_slicingBOOLEANtrueEnable VAE slicing for memory efficiency.
    cpu_offloadCOMBOmodelCPU 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_gbFLOAT8.01–48GPU memory budget (GB) for transformer layers in 'balanced' mode. Only used in balanced mode.

    Outputs (1)

    NameTypeDescription
    pipelineDIT360_PIPELINE