From 0975da3d75b13bc51467250543eaab9674ec7f50 Mon Sep 17 00:00:00 2001 From: Functionhx <2994114386@qq.com> Date: Fri, 10 Jul 2026 02:21:29 +0800 Subject: [PATCH] Fix StableAudio extra_conds using wrong temporal downscale ratio Replace hardcoded magic numbers (21.53 for SA1, 21.5332 for SA3) with self.latent_format.temporal_downscale_ratio (2048 for SA1, 4096 for SA3). Also switch from int() truncation to round() to avoid off-by-one errors. This fixes SA3 generating truncated audio because extra_conds divided by SA1's rate after fix_empty_latent_channels had already resized the latent to SA3's native rate. Refs: #14825 Signed-off-by: Yuchen Fan --- comfy/model_base.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/comfy/model_base.py b/comfy/model_base.py index dcfa555dc..0a87611f8 100644 --- a/comfy/model_base.py +++ b/comfy/model_base.py @@ -799,7 +799,8 @@ class StableAudio1(BaseModel): device = kwargs["device"] seconds_start = kwargs.get("seconds_start", 0) - seconds_total = kwargs.get("seconds_total", int(noise.shape[-1] / 21.53)) + ratio = self.latent_format.temporal_downscale_ratio + seconds_total = kwargs.get("seconds_total", round(noise.shape[-1] * ratio / 44100)) seconds_start_embed = self.seconds_start_embedder([seconds_start])[0].to(device) seconds_total_embed = self.seconds_total_embedder([seconds_total])[0].to(device) @@ -866,7 +867,8 @@ class StableAudio3(BaseModel): noise = kwargs.get("noise", None) device = kwargs["device"] - seconds_total = kwargs.get("seconds_total", int(noise.shape[-1] / 10.7666)) + ratio = self.latent_format.temporal_downscale_ratio + seconds_total = kwargs.get("seconds_total", round(noise.shape[-1] * ratio / 44100)) seconds_total_embed = self.seconds_total_embedder([seconds_total])[0].to(device) global_embed = seconds_total_embed.reshape((1, -1))