LongCat Avatar Sampler
Voice in, a talking head out
- model
- te_cond
- au_cond
- image
- mux_audio
- image
- video_path
This is the node you actually came for. LongCat_Video_SM_Sampler is the render end of the LongCat Avatar pack - feed it a portrait, a text prompt, and an audio conditioning stream, and it emits frames of that person talking in sync with the audio. It's the ComfyUI port of Meituan's Avatar 1.5 pipeline, which is the rare open-weights model aimed squarely at the lip-sync/avatar niche that most video models treat as an afterthought. If you've been fighting Wan Animate or LTX audio to get believable speech, this is the alternative worth one evening of setup.
How it works
Avatar 1.5 is a distilled model, and that changes everything about how you run it. The DMD distill LoRA is loaded alongside the DiT, so the sampler is locked to the official 8-step contract: the steps, text_guidance_scale, and audio_guidance_scale inputs are disabled in the UI at their defaults (8 / 1.0 / 1.0) because cranking CFG on a distilled model just over-saturates - the guidance is already baked in. If you come from standard ComfyUI sampling, this feels weird. It's correct. Leave them alone.
The generation itself is windowed: each segment starts with 93 frames and each continuation adds 80 more (13 overlap frames carry context forward), with ref_img_index anchoring the reference image so the person doesn't drift. At 25 fps that's roughly the pattern that keeps long clips coherent.
The inputs that matter
stage_1:ai2v(audio + image to video - the normal talking-head mode) orat2v(text-to-video, which skips the image but the graph still wants one connected).resolution:480p→ 480x832,720p→ 768x1280. 480p is the sane default on most GPUs.ref_img_index(default 10) andmask_frame_range(default 3): continuity controls. If you see repeated/recycled motion, nudgeref_img_indextoward 30 and increase the mask radius - but bigger values can smear artifacts.block_num(default 1): memory streaming.0eager-loads the full DiT;1–64prefetches blocks and offloads to CPU after generation. Lower VRAM, use a small number.offload_device:cpu(default, VAE offloaded) vscuda(faster, wants more VRAM).mux_audio_path: optional path to an audio file that gets muxed into a saved.mp4(namedlongcat_avatar_...) in the output dir. Empty means you get frames only and an emptyvideo_path.seedanddebug_mode(prints timing/memory phases when you're chasing a slow run).
Outputs are image (the frame batch - wire it to a VHS/SaveVideo node) and video_path (a string, only filled when you mux audio).
Install and what it needs
Install the pack once (see below) - every node in this pack ships together. This one needs the full model stack: the Avatar 1.5 DiT, the longcat-avatar-dmd_lora.safetensors distill LoRA, the Avatar VAE, Whisper-large-v3, and the UMT5 text encoder. That's tens of GB; the model-loader and text-encode nodes can auto-download the official sharded DiT and text encoder, but the VAE, Whisper, and LoRA you place yourself.
cd ComfyUI/custom_nodes
git clone https://github.com/rookiestar28/ComfyUI-LongCat-Avatar
cd ComfyUI-LongCat-Avatar
pip install -r requirements.txt
Or just search ComfyUI-LongCat-Avatar in ComfyUI Manager. Restart ComfyUI afterward, and make sure you're on the NVIDIA + CUDA path - this pack is CUDA-only, no CPU/MPS.
Where people get burned
It's slow. Community reports put a ~6-second clip at 17–20 minutes on a 4060 Ti, and even RTX 5090 owners complain - distilled or not, this is a big DiT. Second: the reference-image blink/reference-not-applied problem is usually a prompt problem - your prompt should describe the person in the reference image (appearance, clothing, scene), not generic scene text. Third: a black video output is a classic sign you're on an unsupported weight format (GGUF is not supported by this pack) or a wrong VAE. And don't raise save_fps above 25 just because you can - non-25 fps values make lip sync unstable. The name is not a lie: this is the hardest-working node in the pack, but it rewards patience.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| te_cond | CONDITIONING | — | |
| au_cond | CONDITIONING | — | |
| stage_1 | COMBO | 2 options: ai2v, at2v | |
| resolution | COMBO | 2 options: 480p, 720p | |
| seed | INT | 00–2147483647 | — |
| steps | INT | 88–8 | Avatar 1.5 DMD/distill always uses 8 inference steps. |
| text_guidance_scale | FLOAT | 1.01–1 | Avatar 1.5 DMD/distill always uses text CFG 1.0. |
| audio_guidance_scale | FLOAT | 1.01–1 | Avatar 1.5 DMD/distill always uses audio CFG 1.0. |
| ref_img_index | INT | 100–1024 | — |
| mask_frame_range | INT | 30–1024 | — |
| block_num | INT | 10–64 | — |
| mux_audio_path | STRING | Deprecated migration input; use mux_audio. Paths are limited to ComfyUI input, output, or temp. | |
| offload_device | COMBO | cpu | 2 options: cpu, cuda |
| debug_mode | BOOLEAN | false | — |
| imageopt | IMAGE | Optional for at2v; required when stage_1 is ai2v. | |
| mux_audioopt | AUDIO | Optional native ComfyUI AUDIO to mux into the generated video. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| video_path | STRING | — |