Nodes/ComfyUI_Light_A_Video/Light_A_Video_Loader
ComfyUI Node

Light_A_Video_Loader

The loader that eats your VRAM before you draw a single frame

By smthemex·Created 2 years ago·Updated about a year ago· 88
Light_A_Video_Loader
    • model
    model
    motion_adapter_model
    ic_light_model
    mode

    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.safetensors file, 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 - relight or inpaint. 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.safetensorsmodels/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 repo string is the backend switch, detected by substring - "wan" or "cog". A typo throws an unclear error.
    • Set mode here to match what you prompt at the Sampler; relight and inpaint take different prompt fields.
    CategoryLight_A_Video

    Inputs (4)

    NameTypeDefaultDescription
    modelCOMBO0 options:
    motion_adapter_modelCOMBO1 options: none
    ic_light_modelCOMBO1 options: none
    modeCOMBO2 options: relight, inpaint

    Outputs (1)

    NameTypeDescription
    modelMODEL_Light_A_Video