diff --git a/libs/Ditto/core/atomic_components/audio2motion.py b/libs/Ditto/core/atomic_components/audio2motion.py index 85d5f62..d07c0b3 100644 --- a/libs/Ditto/core/atomic_components/audio2motion.py +++ b/libs/Ditto/core/atomic_components/audio2motion.py @@ -402,13 +402,9 @@ class Audio2Motion: move = np.clip(diff, -0.06, 0.06) self.persistent_pressure += move - # Apply pressure strictly to Position + Pose (0:202) - curr_p = self.persistent_pressure - pred_kp_seq[0, f, 0:202] = pred_kp_seq[0, f, 0:202] * (1.0 - curr_p) + anchor_p * curr_p - if self.clip_idx % 20 == 0: mode_s = "SPEECH" if getattr(self, "is_talking_state", False) else "IDLE" - print(f"[v1.9.308 {mode_s}] Pressure: {self.persistent_pressure*100:.0f}% (Delta={self.delta_p:+.2f})") + print(f"[v1.9.309 {mode_s}] Pressure: {self.persistent_pressure*100:.0f}% (Delta={self.delta_p:+.2f})") fuse_r2_s = pred_kp_seq.shape[1] - step_len - self.fuse_length @@ -427,14 +423,14 @@ class Audio2Motion: return np.sum(p * np.arange(66)) * 3 - 97.5 self.pose_deg_offset = np.array([ - _get_bin_deg(actual_last[0, 1:67]) - _get_bin_deg(target_entry[0, 1:67]), # Pitch - _get_bin_deg(actual_last[0, 67:133]) - _get_bin_deg(target_entry[0, 67:133]), # Yaw - _get_bin_deg(actual_last[0, 133:199]) - _get_bin_deg(target_entry[0, 133:199])# Roll + _get_bin_deg(actual_last[0, 0, 1:67]) - _get_bin_deg(target_entry[0, 0, 1:67]), # Pitch + _get_bin_deg(actual_last[0, 0, 67:133]) - _get_bin_deg(target_entry[0, 0, 67:133]), # Yaw + _get_bin_deg(actual_last[0, 0, 133:199]) - _get_bin_deg(target_entry[0, 0, 133:199])# Roll ]) self.warp_offset = actual_last - target_entry self.warp_decay = 1.0 # Engage full power - print(f"[Ditto Warp] Onset Alignment (v1.9.308). Gap={np.abs(self.warp_offset[0,0,:202]).mean():.4f}") + print(f"[Ditto Warp] Onset Alignment (v1.9.309). Gap={np.abs(self.warp_offset[0,0,:202]).mean():.4f}") print(f" > Degree Offsets [P,Y,R]: {self.pose_deg_offset}") # Apply Warp (Position + Scale: 0:202) diff --git a/libs/Ditto/core/atomic_components/motion_stitch.py b/libs/Ditto/core/atomic_components/motion_stitch.py index 73c4138..87f94ee 100644 --- a/libs/Ditto/core/atomic_components/motion_stitch.py +++ b/libs/Ditto/core/atomic_components/motion_stitch.py @@ -534,7 +534,7 @@ class MotionStitch: self.fix_exp_a3 = _a2 # [Debug v1.9.208] Verify Code Sync - print(f"[AIIA Debug] MotionStitch Setup: v1.9.308. LATEST VERSION LOADED.") + print(f"[AIIA Debug] MotionStitch Setup: v1.9.309. LATEST VERSION LOADED.") if self.drive_eye and self.delta_eye_arr is not None: diff --git a/pyproject.toml b/pyproject.toml index 18932d4..0f5453f 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -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.308" +version = "1.9.309" license = {file = "LICENSE"} readme = "README.md" authors = [