Instructions to use Orange-3DV-Team/Gimbal360 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use Orange-3DV-Team/Gimbal360 with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline from diffusers.utils import load_image # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("black-forest-labs/FLUX.1-Fill-dev", dtype=torch.bfloat16, device_map="cuda") pipe.load_lora_weights("Orange-3DV-Team/Gimbal360") prompt = "Turn this cat into a dog" input_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png") image = pipe(image=input_image, prompt=prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
Gimbal360: Canonicalizing Planar Diffusion for Spherical Panorama Completion
Single-image 360° panorama generation from an arbitrary perspective photograph.
Model Weights
| File | Size | Description |
|---|---|---|
autolevel.pth |
107 MB | Geometry estimation model combining a pretrained SegNeXt-B backbone with a trained flow decoder and rigid filter. |
pytorch_lora_weights.safetensors |
171 MB | Fine-tuned panorama-generation LoRA weights for FLUX.1-Fill-dev. |
Usage
Option 1 — inference script (recommended). The inference script downloads both weights automatically from this repository on first run:
git clone https://github.com/Orange-3DV-Team/Gimbal360.git
cd Gimbal360
conda create -n gimbal360 python=3.10 -y
conda activate gimbal360
pip install -r requirements.txt
python inference.py \
--image example/example.png \
--prompt "a frozen, abandoned train car in a post-apocalyptic wasteland." \
--resolution 960
Option 2 — download to a local folder and point the script at it:
hf download Orange-3DV-Team/Gimbal360 --local-dir ./ckpt
python inference.py \
--image example/example.png \
--prompt "a frozen, abandoned train car in a post-apocalyptic wasteland." \
--ckpt_dir ./ckpt
Option 3 — fetch programmatically with huggingface_hub:
from huggingface_hub import hf_hub_download
autolevel_path = hf_hub_download("Orange-3DV-Team/Gimbal360", "autolevel.pth")
lora_path = hf_hub_download("Orange-3DV-Team/Gimbal360", "pytorch_lora_weights.safetensors")
The LoRA weights can also be used directly with any FLUX.1-Fill-dev pipeline via
pipeline.load_lora_weights(lora_path).
Pipeline
- AutoLevel (
autolevel.pth) estimates the camera geometry. - The photo is projected onto an equirectangular canvas as conditioning, with an inpaint mask for the unknown regions.
- FLUX.1-Fill-dev + LoRA (
pytorch_lora_weights.safetensors) inpaints the full 360° panorama.
Citation
If you find Gimbal360 useful for your research, please consider citing our paper:
@article{lu2026gimbal360,
title={Gimbal360: Canonicalizing Planar Diffusion for Spherical Panorama Completion},
author={Lu, Yuqin and Liu, Haofeng and Zhou, Yang and Dai, Yihua and Li, Guiqing and He, Shengfeng and Liang, Jun},
journal={arXiv preprint arXiv:2603.23179},
year={2026}
}
License
The LoRA weights are a derivative of FLUX.1-Fill-dev and are released under the FLUX.1-dev Non-Commercial License.
- Downloads last month
- 5
Model tree for Orange-3DV-Team/Gimbal360
Base model
black-forest-labs/FLUX.1-Fill-devPaper for Orange-3DV-Team/Gimbal360
Paper • 2603.23179 • Published • 1