Dice_Talk_Loader
Where a normal SVD checkpoint turns into a talking head
- model
- model
- weight_dtype
This is the entry point for the whole DICE-Talk pack, and it's the node that explains why the pack is built the way it is. DICE-Talk is a "correlation-aware emotional talking portrait" pipeline (arXiv 2504.18087): feed it a photo of a face and an audio clip, get back a video of that face speaking, with a mood you get to pick. The clever part is that the whole thing is bolted onto Stable Video Diffusion - same backbone as Sonic - so instead of shipping a giant monolithic checkpoint, the loader reassembles the model from parts. That's what happens here.
What this node is actually doing
The Loader takes a regular SVD checkpoint you load the ComfyUI way - that's the model input - and performs surgery on it. It converts the ComfyUI-format UNet into a diffusers one, then patches the DICE-Talk unet.pth state dict on top, adds two IP-Adapter-style adapters (one for audio, one for emotion - the ip_audio_scale and ip_emo_scale knobs), loads pose_guider.pth for the motion conditioning, and wraps the whole thing in a custom pipeline with an Euler scheduler. If use_interframe is on it also loads the RIFE optical-flow model that will double your frame count later.
So no, it doesn't "load" one model. It welds four of them together and hands you back a single ready-to-run MODEL_DICETALK.
The inputs that matter
- model - the SVD checkpoint, fed from a normal loader. The example workflow uses
ImageOnlyCheckpointLoaderpointed atsvd_xt.safetensors(orsvd_xt_1_1), which conveniently also supplies the CLIP vision and VAE the next node needs. This is a big download, ~10GB, and it's the one thing the README assumes you can get from Stability's HF pages. - dice_talk_unet - the dropdown lists files in
ComfyUI/models/dice_talk; pickunet.pth. The "none" option isn't a choice, it's an error trap: pick it and the loader raises "Please download the model first." - dtype -
fp16by default, withbf16andfp32available. Stick with fp16 unless you're chasing NaN on an older card, in which case fp32 is the reliable but twice-as-heavy option. - ip_audio_scale / ip_emo_scale - how strongly the audio and emotion conditioning push the generation, 0.5–2.0. Leave both at 1.0 until you have a baseline output.
- use_interframe - RIFE frame interpolation. On, motion is smoother and the clip effectively runs at double the frame rate; off, it's faster and cheaper. You'll pay for it either way - more on that in the Sampler article.
What comes out
Two outputs, and both feed the next node, not a preview: model (MODEL_DICETALK) goes to Dice_Talk_Sampler, and weight_dtype (DTYPE) goes to Dice_Talk_PreData so the conditioning is built in the same precision as the model.
Installing the pack (and the models)
Same routine as any custom node:
cd ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_DICE_Talk.git
cd ComfyUI_DICE_Talk
pip install -r requirements.txt
Then restart ComfyUI. It's also searchable as "ComfyUI_DICE_Talk" in ComfyUI Manager. The requirements pull in diffusers, transformers, opencv-python, librosa, imageio-ffmpeg, omegaconf and einops - a genuinely heavy dependency list that has been known to collide with other custom nodes, so if ComfyUI stops booting after the install, the environment is the first suspect.
The models go here:
ComfyUI/models/dice_talk/
├── audio_linear.pth
├── emo_model.pth
├── pose_guider.pth
├── unet.pth
├── yoloface_v5m.pt
├── whisper-tiny/ # config.json + model.safetensors + preprocessor_config.json
└── RIFE/flownet.pkl
with unet.pth and friends from EEEELY/DICE-Talk on HuggingFace, and the SVD checkpoint in ComfyUI/models/checkpoints. One genuinely nice touch from the author: if you already run his ComfyUI_Sonic pack, DICE-Talk detects the models/sonic folder and reuses its yoloface, whisper-tiny and RIFE files instead of making you download duplicates.
The gotchas
The Loader is where you find out whether you downloaded everything - the two most common failure modes are the "Please download the model first" error (missing unet.pth) and a slow, memory-hungry load. This is SVD-class, multi-GB model assembly; on 12GB cards you'll be living in fp16 and maybe Low-VRAM mode. Budget for a long first load and an even longer first render - the author's talking-portrait packs are usable, but they're not fast.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| dice_talk_unet | COMBO | 1 options: none | |
| ip_audio_scale | FLOAT | 1.00.5–2 | — |
| ip_emo_scale | FLOAT | 1.00.5–2 | — |
| use_interframe | BOOLEAN | true | — |
| dtype | COMBO | 3 options: fp16, fp32, bf16 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL_DICETALK | — |
| weight_dtype | DTYPE | — |