Dice_Talk_Sampler
The slow, rewarding payoff that renders the talking video
- model
- data_dict
- image
- fps
This is the node that burns your GPU. Dice_Talk_Loader built the model, Dice_Talk_PreData did all the listening and face prep, and this Sampler runs the actual denoising loop that turns your photo plus audio into a video of a face talking. It's the last node in the chain, it's the slowest, and it's the one that produces something you can actually watch.
How it works
The Sampler takes the ready-made MODEL_DICETALK and the DICETALK_PREDATA bundle and pushes both through the DICE pipeline: each frame's pose, audio and emotion conditioning is denoised under guidance scales derived from ref_scale and emo_scale, conditioned on the reference image and the pre-encoded image latents. The VAE decode happens in chunks specifically to dodge OOM. If use_interframe was on in the Loader, the RIFE model then inserts an interpolated frame between every pair of frames, effectively doubling the frame count.
The inputs that matter
- model, data_dict - wire them from the Loader and PreData respectively. Nothing else will do; these are custom types.
- inference_steps - 25 default. Drop to 15–18 for quick drafts; this is where your patience budget lives, because every step costs you real seconds.
- seed - standard. If you hit a great result, hold the seed and vary the emotion or audio for takes.
- ref_scale - reference/appearance guidance, 1.0 default (maps to the config's appearance scale of 4.0). Raise it if the face drifts from your photo, lower it if the head locks up.
- emo_scale - audio/emotion guidance, 1.0 default (maps to the config's audio guidance of 7.5). This is the "how hard should it chase the emotion you picked" knob.
- fps - 25 default. Only sets the reported rate; it doesn't change the actual generation cost.
The outputs and what to do with them
Two outputs: image (an IMAGE tensor where each frame is a batch item - effectively your video) and fps (a FLOAT). Feed both into a VHS_VideoCombine node from VideoHelperSuite - that's exactly what the pack's shipped example workflow does - to get an mp4, and you can mux your source audio back in there so the finished video actually has sound. If you don't have VideoHelperSuite installed, grab it from the Manager; the DICE pack assumes it for the final step.
The gotchas
Manage your expectations on speed. This is the SVD-class backbone that the whole Sonic family runs on, and it is not fast - someone on a 3090 reported around an hour and a half for a short talking clip at 448 resolution from the sibling Sonic pack, and DICE-Talk sits in the same weight class. That's why min_resolution and inference_steps are your real friends: every reduction compounds.
Second, the interframe trap. When use_interframe is on, the output has roughly twice as many frames, but the Sampler still returns the fps you typed in - so if you save at that fps, the video plays back at double speed and the audio won't line up. Either save at 2 × fps when interframe is on, or turn interframe off and keep the audio sync simple. Third, ref_scale and emo_scale interact: cranking both feels like "more talking," but what you usually want is to fix the face first with ref_scale, then dial emotion. Start at 1.0/1.0, change one thing at a time, and give each render the time it demands - this pack rewards patience.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL_DICETALK | — | |
| data_dict | DICETALK_PREDATA | — | |
| seed | INT | 00–2147483647 | — |
| inference_steps | INT | 251–1024 | — |
| ref_scale | FLOAT | 1.00.5–2 | — |
| emo_scale | FLOAT | 1.00.5–2 | — |
| fps | FLOAT | 25.05–120 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| fps | FLOAT | — |