Nodes/Animatediff MotionLoRA Trainer/ADMD_AdditionalModelSelect
ComfyUI Node

ADMD_AdditionalModelSelect

Two files in, one training pipeline out — the first node in any MotionDirector graph

By kijai·Created 3 years ago·Updated 2 years ago· 187
ADMD_AdditionalModelSelect
    • additional_models
    motion_module
    use_adapter_loratrue
    optional_adapter_lora

    This is the node that hands the trainer its motion. ADMD_AdditionalModelSelect picks two files - the AnimateDiff motion module and, usually, its domain-adapter LoRA - and bundles them into a single ADDITIONAL_MODELS output that feeds whichever loader you're using (ADMD_CheckpointLoader, ADMD_DiffusersLoader, or the Comfy-graph variant). Nothing in the training graph works until this one is wired, because those files are what turn a plain SD 1.5 checkpoint into something with temporal awareness.

    Why these two files? AnimateDiff works by injecting a temporal motion module into a frozen SD 1.5 UNet - the image weights never move, the module just adds attention across frames. The domain adapter is a LoRA trained to bridge the visual gap between image and video data (and to suppress WebVid's watermarks). On their own they're the standard AnimateDiff inference stack; here they become the starting point for your training run. The pack's config file calls the adapter "highly recommended as a starting point," which is the understated way of saying: leave it on unless you have a specific reason not to.

    Inputs you actually set

    Only three widgets, and only two of them matter:

    • motion_module - a dropdown of .ckpt files in ComfyUI/models/animatediff_models/. For SD 1.5 that's v3_sd15_mm.ckpt (grab it from guoyww/animatediff on HuggingFace). Note the folder name: this is the same animatediff_models folder AnimateDiff-Evolved uses, so if you already animate with that extension the file is probably there.
    • use_adapter_lora (default true) - flip it off and the node stops expecting a second file. You'd do this for a bare motion-module run, which is a worse starting point.
    • optional_adapter_lora - the domain adapter, v3_sd15_adapter.ckpt, from ComfyUI/models/loras/.

    The output, ADDITIONAL_MODELS, is literally a two-element list: the motion-module path and the adapter path. The loaders unpack it and hand both to the training pipeline.

    Install and gotchas

    Install is the standard pack dance: ComfyUI Manager → search "ADMotionDirector" (pack title "Animatediff MotionLoRA Trainer"), or git clone https://github.com/kijai/ComfyUI-ADMotionDirector into custom_nodes/ and restart. Then the important bit - the dependencies don't come with ComfyUI:

    cd ComfyUI/custom_nodes/ComfyUI-ADMotionDirector
    pip install -r requirements.txt
    

    Portable installs use python_embeded\python.exe -m pip install -r ... instead. This pulls in diffusers, transformers, lion-pytorch, peft, loralib, einops, omegaconf, and the imageio stack. The pack was tested with PyTorch 2.1.1+cu121 and 2.2.0+cu121 - older torch builds tend to misbehave.

    The one failure mode worth knowing: if the dropdowns are empty, you don't have the files in the right folders, and this node (unlike most) will not silently continue - select_models raises a ValueError naming the missing path. Motion modules go in animatediff_models/, adapter LoRAs in loras/. Get those two files in place first and the whole graph stops complaining.

    CategoryAD_MotionDirector

    Inputs (3)

    NameTypeDefaultDescription
    motion_moduleCOMBO0 options:
    use_adapter_loraBOOLEANtrue
    optional_adapter_loraoptCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    additional_modelsADDITIONAL_MODELS