Light_A_Video_Loader
The loader that eats your VRAM before you draw a single frame
- model
Light_A_Video_Loader is the boring half of a genuinely cool trick - and "boring" is doing a lot of work there. It's the model-loading side of ComfyUI_Light_A_Video, a two-node wrapper around the Light-A-Video paper (bcmi, arXiv 2502.08590): "training-free video relighting via progressive light fusion." If you've relit a still with IC-Light and wished the lighting would stay put while the subject moves, this is the pack that tries to give you exactly that. The Loader builds the whole pipeline; its partner Light_A_Video_Sampler does the actual relighting.
What it actually builds
Three things, all at once. It loads your SD 1.5 checkpoint, merges the IC-Light iclight_sd15_fc weights into the UNet as offsets, and patches the first convolution to take 8 channels instead of 4. That extra four channels is where your subject image and its mask get concatenated in - the standard IC-Light conditioning path, so the merged model changes illumination without touching geometry. Then it wraps the result in one of three video backends depending on what's in the repo field: an AnimateDiff vid2vid pipeline (SD 1.5 motion adapter), or a diffusers pipeline for Wan 2.1 or CogVideoX. One loader, three very different workloads hiding behind it.
That's why the name is a lie in the good direction: nothing is being "loaded" from a file here, and there's no API key and no API call anywhere. The heavy lifting is assembling a working IC-Light + video pipeline out of parts you already have.
The inputs that matter
The choice that actually matters is repo - a text field that can be missing from some copies of the node's UI schema but is the single most important control. Leave it empty for the AnimateDiff path, or paste Wan-AI/Wan2.1-T2V-1.3B-Diffusers or THUDM/CogVideoX-2b (or a local path to a downloaded repo) to switch backends. The rest:
- model - any SD 1.5 checkpoint from your checkpoints folder. The base that gets relit and animated.
- ic_light_model - the
iclight_sd15_fc.safetensorsfile, which the code reads from your controlnet folder. It'll try to download it for you, but placing it yourself is less brittle. - motion_adapter_model - the AnimateDiff motion adapter (
animatediff-motion-adapter-v1-5-3.safetensors), also read from controlnet. On the Wan/CogVideoX paths it's ignored; on the AnimateDiff path you actually have to pick a real file, because "none" will crash downstream. - mode -
relightorinpaint. Relight re-lights the whole frame; inpaint confines the relight to a foreground subject and needs a mask at the other end.
The single output, model (type MODEL_Light_A_Video), wires straight into the Sampler's model input. That's the whole node - it's not an output node, so don't expect it to save anything.
Installing it
ComfyUI Manager, search "ComfyUI_Light_A_Video" - or:
cd ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_Light_A_Video.git
pip install -r requirements.txt
Dependency honesty: it pulls in diffusers, transformers, opencv-python, einops, omegaconf, imageio, moviepy and friends, and the README is blunt that Wan needs diffusers built from the main branch (pip install git+https://github.com/huggingface/diffusers). On stable diffusers the Wan path will break. Model-wise: your SD 1.5 checkpoint, iclight_sd15_fc.safetensors → models/controlnet, and for AnimateDiff the motion adapter → models/controlnet. The SAM2 mask model and BiRefNet auto-download into models/Light_A_Video on first use.
Where people get burned
- The AnimateDiff path is effectively a 512x512 machine. That's not paranoia - the one community thread that actually names this pack is someone in r/comfyui asking an LLM to patch it for 1280x720. The Wan path is the escape hatch, but it wants 832x480 and the README says it needs a 4090 or better, mostly because Wan's T5 text encoder is enormous. Budget before you pick your backend.
- The
repostring is the backend switch, detected by substring - "wan" or "cog". A typo throws an unclear error. - Set
modehere to match what you prompt at the Sampler; relight and inpaint take different prompt fields.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | 0 options: | |
| motion_adapter_model | COMBO | 1 options: none | |
| ic_light_model | COMBO | 1 options: none | |
| mode | COMBO | 2 options: relight, inpaint |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL_Light_A_Video | — |