Nodes/ComfyUI_AIIA/AIIA Ditto Loader
ComfyUI Node

AIIA Ditto Loader

The talking head that skips the TensorRT torture

By havvk·Created about a year ago·Updated 6 months ago· 13
AIIA Ditto Loader
    • pipe
    model_name
    devicecuda

    Ditto is Ant Group's talking-head model, and the official way to run it involves compiling TensorRT engines - which is a whole afternoon of CUDA version roulette that most people don't survive. The AIIA pack's contribution is a pure PyTorch port: same model, no TensorRT build step, drops straight into ComfyUI. That "no compiler toolchain required" framing is the entire reason this node exists, and it's a good reason. This loader is the first half of that story - it gets the ~1.2GB model into memory as a DITTO_PIPE that the pack's AIIA Ditto Sampler then runs for inference.

    How it works

    The loader offers a single model choice (ditto-talkinghead), pulls the weights from HuggingFace (digital-avatar/ditto-talkinghead), and builds the pipeline. On first run it tries to auto-download; if that fails, the README gives a manual path into ComfyUI/models/ditto/ with the specific layout (ditto_pytorch/audio2motion.pth plus the ditto_cfg/ config pickle). The pipe output carries the whole loaded model - motion synthesis plus the image-rendering side - so the sampler can drive video frames from audio without touching the model again.

    The inputs

    • model_name - one option: ditto-talkinghead. There's nothing to pick, which is the point; it's a single-model loader.
    • device - cuda default, cpu for the desperate. Ditto is a diffusion-ish talking head; CPU will be slow enough that you'll want to reconsider.

    Output: pipe (DITTO_PIPE) → AIIA Ditto Sampler.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/havvk/ComfyUI_AIIA.git
    # restart ComfyUI
    

    The model auto-downloads on first run into ComfyUI/models/ditto/. If it chokes (or you're offline), the manual route from the README:

    cd ComfyUI/models
    hf download digital-avatar/ditto-talkinghead --local-dir ditto
    

    Note the README's warning to download into ditto directly rather than nesting a ditto-talkinghead subfolder - the loader expects a specific layout and the double-nesting breaks it.

    Where it fits

    The sampler does the real work (reference image + audio + the long list of Ditto controls - blink mode, mouth amplitude, silent-pause relaxation, OOM-safe disk mode). This loader is deliberately boring: pick device, run, get your pipe. Its job is to make sure the model exists, loads cleanly, and doesn't demand a TensorRT build. If you've ever tried Ditto the official way, "boring" here is a feature.

    Gotchas

    • Auto-download failure is the main hiccup - the manual HF path above is the fix, and folder layout is the thing to get right.
    • It's the heavy half of a heavy pair. Ditto runs best with a clean square reference photo and a 25fps drive track (the sampler's docs are specific about this), but that's sampler territory.
    • PyTorch-only means you trade a bit of speed for sanity. The official TensorRT build is faster at inference; this port is faster at actually working. For most people that's the right trade.
    CategoryAIIA/Ditto

    Inputs (2)

    NameTypeDefaultDescription
    model_nameCOMBO1 options: ditto-talkinghead
    deviceCOMBOcuda2 options: cuda, cpu

    Outputs (1)

    NameTypeDescription
    pipeDITTO_PIPE