How to run IC-Light on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install IC-Light with the commands the lllyasviel/IC-Light README prints, start gradio_demo.py or gradio_demo_bg.py, and download the gallery image before you destroy the instance. Destroying the instance deletes its disk.

Other image pages: How to use ControlNet in ComfyUI on a cloud GPU, How to use IPAdapter in ComfyUI on a cloud GPU, How to run Fooocus on a cloud GPU, and How to run Stable Diffusion WebUI Forge on a cloud GPU. The tunnel for the Gradio page is How to use SSH port forwarding on a cloud GPU. How published FLUX and SDXL weight sizes are read: How much VRAM do I need for FLUX and SDXL. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU.

The README says “iclightai dot com” is a scam website and that this GitHub repository is the only official IC-Light. A news line links a discussion about flux. That line does not link a ComfyUI install. The ComfyUI examples top-level directory list on 2026-11-13 had no directory named for this project. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3, committed 2025-11-26T20:33:58Z. This page does not add a ComfyUI install.

The repository LICENSE file is the Apache License, Version 2.0, January 2004. The appendix copyright line is still the unfilled template Copyright [yyyy] [name of copyright owner]. The GitHub license field on 2026-11-13 was Apache-2.0. The lllyasviel/ic-light model card README says “Model card coming soon” and its front matter says license: creativeml-openrail-m. gated was false and lastModified was 2024-05-08T03:03:07.000Z. This page does not merge the GitHub LICENSE file and the model card front matter. Read each file before you redistribute the program or the weights.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.

What the README says about memory

The README prints no GPU GB figure. gradio_demo.py and gradio_demo_bg.py print none either. requirements.txt does not print one.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T02:10:27.641Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T02:10:28.744Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every vram_gb below is 8 or higher. This page does not mark a row as enough, because the README publishes no GB figure to compare. Which listing you can start is on Deploy.

The catalog template list had no IC-Light template.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install and start the documented demos

On Deploy, choose Raw GPU. The deploy page says “SSH access and root within a dedicated container”. The README Get Started block for the text-conditioned model is:

git clone https://github.com/lllyasviel/IC-Light.git
cd IC-Light
conda create -n iclight python=3.10
conda activate iclight
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
python gradio_demo.py

The next line for the background-conditioned demo is python gradio_demo_bg.py. The README says model downloading is automatic. requirements.txt pins diffusers==0.27.2, transformers==4.36.2, pillow==10.2.0, gradio==3.41.2, and protobuf==3.20, and it lists torch with no version. The commits API for the default branch main listed bcf3f29ca85be8a4686215f477b546f5030be8b7, committed 2025-02-20T15:52:34Z, message “Update README.md”. The commits API for gradio_demo.py listed a4c1d57066f02cd074829e6c6dc67ec3bdc9e5c7, committed 2024-05-08T02:46:36Z. This page did not install the environment and did not start either script.

What the scripts download

The README model notes name three files:

  • iclight_sd15_fc.safetensors, the default relighting model, conditioned on text and foreground
  • iclight_sd15_fcon.safetensors, the same conditioning, trained with offset noise
  • iclight_sd15_fbc.safetensors, conditioned with text, foreground, and background

gradio_demo.py sets model_path to ./models/iclight_sd15_fc.safetensors and, if that path is missing, downloads https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fc.safetensors. gradio_demo_bg.py does the same for ./models/iclight_sd15_fbc.safetensors and https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fbc.safetensors. The model card file list on 2026-11-13 also included iclight_sd15_fcon.safetensors. Neither demo script downloads that third file.

Both scripts set sd15_name to stablediffusionapi/realistic-vision-v51 and call from_pretrained on that id for the tokenizer, text encoder, VAE, and UNet. A comment above that assignment names another repository id. This page does not copy that comment. Both scripts then call BriaRMBG.from_pretrained("briaai/RMBG-1.4"). The README says the original BRIA RMBG 1.4 is for non-commercial use, and that a commercial project should replace it, naming BiRefNet as one replacement. The model card for briaai/RMBG-1.4 had license other, license_name bria-rmbg-1.4, and license_link https://bria.ai/bria-huggingface-model-license-agreement/. A request for that link on 2026-11-13 returned HTTP 308, and the redirect target returned HTTP 404. This page does not quote a license body from that site. Both scripts set device to torch.device('cuda') and do not show a CPU branch.

The Gradio page and the tunnel

Both scripts end with block.launch(server_name='0.0.0.0'). Neither call passes server_port. requirements.txt pins gradio==3.41.2. In that release, gradio/blocks.py says a missing server_port searches for an available port starting at 7860, and that GRADIO_SERVER_PORT can set it. This page did not launch the demo, so it did not observe which port was free.

The README says gradio_demo.py has an official Hugging Face Space at https://huggingface.co/spaces/lllyasviel/IC-Light. That Space is not the local process. From your own computer, the port to forward is the port Gradio prints. How to use SSH port forwarding on a cloud GPU is the tunnel.

Where the images go

gradio_demo.py and gradio_demo_bg.py do not call an image save. The result widget is a Gallery labelled Outputs. This page did not launch Gradio, so it did not observe a temp directory. Download the image from the browser. The README does not print an output directory.

When it fails

CUDA out of memory. The README and the two demo scripts do not print an out-of-memory flag or a GB target. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The install command uses the cu121 index and does not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this package on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

Save the image, then destroy

Download the gallery image before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Prices are not copied here.

Frequently asked questions

How much VRAM does the IC-Light README print?

The README prints no GB figure. gradio_demo.py and gradio_demo_bg.py print none either. Every vram_gb in https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T02:10:27.641Z) is 8 or higher. This page does not mark a row as enough. Which listing you can start is on https://cloudgpu.app/deploy.

Which commands start the demos, and do they pass a port?

The README prints python gradio_demo.py for the text-conditioned model and python gradio_demo_bg.py for the background-conditioned model. Both scripts call block.launch with server_name 0.0.0.0 and do not pass server_port. requirements.txt pins gradio==3.41.2. In that Gradio release, a missing server_port searches for an available port starting at 7860, and GRADIO_SERVER_PORT can set it. This page did not launch the demo.

Where do the demo scripts save images?

gradio_demo.py and gradio_demo_bg.py do not call an image save. The result widget is a Gallery labelled Outputs. This page did not launch Gradio, so it did not observe a temp directory. Copy the image from the browser before you destroy the instance. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

What license files does this page quote?

The repository LICENSE is the Apache License, Version 2.0, January 2004, and the appendix copyright line is still the unfilled template. The GitHub license field was Apache-2.0. The Hugging Face model card front matter says license creativeml-openrail-m. This page does not merge those files. The README says the original BRIA RMBG 1.4 is for non-commercial use, and that sentence is upstream usage text, not a CloudGPU price and not a storage allowance. A request for the card license_link returned HTTP 308, and the redirect target returned HTTP 404.

Sources (read 2026-11-13, Asia/Shanghai)

  • lllyasviel/IC-Light README (Get Started commands, “Model downloading is automatic”, the three safetensors notes, the BRIA non-commercial sentence, the scam-site sentence, the flux discussion link, the Space URL): https://github.com/lllyasviel/IC-Light/blob/main/README.md commit bcf3f29ca85be8a4686215f477b546f5030be8b7
  • gradio_demo.py and gradio_demo_bg.py (download URLs, sd15_name, briaai/RMBG-1.4, block.launch(server_name='0.0.0.0'), no image save): gradio_demo.py commit a4c1d57066f02cd074829e6c6dc67ec3bdc9e5c7
  • requirements.txt (gradio==3.41.2, unpinned torch): that repository
  • LICENSE (Apache License, Version 2.0, January 2004, unfilled copyright template). GitHub license field Apache-2.0
  • lllyasviel/ic-light model card (license: creativeml-openrail-m, file list includes iclight_sd15_fcon.safetensors, gated false): https://huggingface.co/lllyasviel/ic-light
  • briaai/RMBG-1.4 card (license_name bria-rmbg-1.4). The license_link request returned HTTP 308, then HTTP 404
  • Gradio 3.41.2 gradio/blocks.py (missing server_port starts at 7860; GRADIO_SERVER_PORT): https://github.com/gradio-app/gradio/blob/gradio@3.41.2/gradio/blocks.py
  • ComfyUI examples top-level directories (no IC-Light directory): https://github.com/comfyanonymous/ComfyUI_examples commit f9431bb000ce792094ff345446e22cac1ea6cef3
  • Public GPU memory: https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T02:10:27.641Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at 2026-11-13T02:10:28.744Z). GET /v1/public/compute-capabilities returned feature flags and no GPU list.

Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-13 (Asia/Shanghai).