TurboLoRA / README.md
nielsr's picture
nielsr HF Staff
Improve model card: add paper link, abstract, and library name
db7f14b verified
|
raw
history blame
8.35 kB
metadata
base_model:
  - stabilityai/stable-diffusion-xl-base-1.0
license: mit
pipeline_tag: image-to-image
library_name: diffusers
tags:
  - image-to-image
  - StableDiffusionXLControlNetInpaintPipeline
  - stable-diffusion-xl
  - lora
  - diffusers
  - template:sd-lora
  - inpainting
  - light-estimation
  - relighting
instance_prompt: >-
  a perfect mirrored reflective chrome ball sphere, a perfect black dark
  mirrored reflective chrome ball sphere
inference: false

DiffusionLight's TurboLoRA

📖 Paper | Project Page | Code

[Open DiffusionLight in Colab

Abstract

We introduce a simple yet effective technique for estimating lighting from a single low-dynamic-range (LDR) image by reframing the task as a chrome ball inpainting problem. This approach leverages a pre-trained diffusion model, Stable Diffusion XL, to overcome the generalization failures of existing methods that rely on limited HDR panorama datasets. While conceptually simple, the task remains challenging because diffusion models often insert incorrect or inconsistent content and cannot readily generate chrome balls in HDR format. Our analysis reveals that the inpainting process is highly sensitive to the initial noise in the diffusion process, occasionally resulting in unrealistic outputs. To address this, we first introduce DiffusionLight, which uses iterative inpainting to compute a median chrome ball from multiple outputs to serve as a stable, low-frequency lighting prior that guides the generation of a high-quality final result. To generate high-dynamic-range (HDR) light probes, an Exposure LoRA is fine-tuned to create LDR images at multiple exposure values, which are then merged. While effective, DiffusionLight is time-intensive, requiring approximately 30 minutes per estimation. To reduce this overhead, we introduce DiffusionLight-Turbo, which reduces the runtime to about 30 seconds with minimal quality loss. This 60x speedup is achieved by training a Turbo LoRA to directly predict the averaged chrome balls from the iterative process. Inference is further streamlined into a single denoising pass using a LoRA swapping technique. Experimental results that show our method produces convincing light estimates across diverse settings and demonstrates superior generalization to in-the-wild scenarios. Our code is available at this https URL

DiffusionLight-Turbo
30 seconds

DiffusionLight-Turbo
30 seconds

DiffusionLight-Turbo
30 seconds

DiffusionLight-Turbo
30 seconds

DiffusionLight
30 Minutes

DiffusionLight
30 Minutes

DiffusionLight
30 Minutes

DiffusionLight
30 Minutes

Normally exposed

Under​exposed

Normally exposed

Under​exposed

Normally exposed

Under​exposed

Normally exposed

Under​exposed

Usage

This repository is the weight for an example code that shows how to implement DiffusionLight-Turbo inpaint.py in Diffusers 0.33.0

We recommend checking out Github Repository: Github

Note that the Weight is the same as 'DiffusionLight/Flicker2k', but due to diffusers 0.33.0 breaking the compatibility, we have to store it in a separate model.

Download model

Weights for this model are available in Safetensors format.

Download them in the Files & versions tab.

Trigger words

Chromeball Prompt
Normally exposed a perfect mirrored reflective chrome ball sphere
Underexposed a perfect black dark mirrored reflective chrome ball sphere

Citation

@inproceedings{Chinchuthakun2025DiffusionLightTurbo,
  author = {Chinchuthakun, Worameth and Phongthawee, Pakkapon and Raj, Amit and Jampani, Varun and Khungurn, Pramook and Suwajanakorn, Supasorn},
  title = {DiffusionLight-Turbo: Accelerated Light Probes for Free via Single-Pass Chrome Ball Inpainting},
  booktitle = {ArXiv},
  year = {2025},
}

Visit us 🦉

Vision & Learning Laboratory VISTEC - Vidyasirimedhi Institute of Science and Technology