fix: Reset EMA on speech onset to prevent stale closed-mouth bleed

This commit is contained in:
Hawk Lee
2026-01-22 01:11:43 +08:00
parent eff970828f
commit eb3227a78b
2 changed files with 6 additions and 1 deletions
@@ -587,6 +587,11 @@ class MotionStitch:
if not hasattr(self, 'prev_exp_ema'):
self.prev_exp_ema = x_d_info["exp"].copy()
# [FIX] Reset EMA on Attack (Speech Onset) to prevent stale "Closed"
# state from bleeding into the new speech expression.
if is_attack:
self.prev_exp_ema = x_d_info["exp"].copy()
x_d_info["exp"] = self.prev_exp_ema * exp_decay + x_d_info["exp"] * (1.0 - exp_decay)
self.prev_exp_ema = x_d_info["exp"].copy()
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "aiia"
description = "The Ultimate AI Audio/Video toolkit for ComfyUI. Features an enhanced Ditto (with optimizations that outperform official demos and other SOTA talking head models in lip-sync accuracy and natural motion), EchoMimic V3 & FLOAT, VibeVoice & CosyVoice 3.0 (Zero-Shot Voice Cloning), Multi-Role Podcast Generation, and a powerful Media Browser."
version = "1.9.5"
version = "1.9.6"
license = {file = "LICENSE"}
readme = "README.md"
authors = [