diff --git a/tts-server/app.py b/tts-server/app.py index 27a6dc9..0e74061 100644 --- a/tts-server/app.py +++ b/tts-server/app.py @@ -50,8 +50,16 @@ log.info("Loading Kokoro (lang_code=%s) on %s", LANG_CODE, DEVICE) kokoro_pipeline = KPipeline(lang_code=LANG_CODE, device=DEVICE) log.info("Kokoro ready") -log.info("Loading Sopro on %s", DEVICE) -sopro_model = SoproTTS.from_pretrained("samuel-vitorino/sopro-v2-turbo", device=DEVICE) +# Pinned instead of tracking the mutable `main` branch: upstream restructured +# the repo on 2026-09-15 (dropped/renamed vocoder_streaming.safetensors and +# speaker_encoder.safetensors), which crash-looped this container on every +# boot since the unpinned load kept re-fetching the broken layout. +SOPRO_REVISION = os.environ.get("TTS_SOPRO_REVISION", "ceeeb86b5fd805e662a5a750d6053ac4f990a45a") + +log.info("Loading Sopro on %s (revision=%s)", DEVICE, SOPRO_REVISION) +sopro_model = SoproTTS.from_pretrained( + "samuel-vitorino/sopro-v2-turbo", device=DEVICE, revision=SOPRO_REVISION +) log.info("Sopro ready") # References are just resampled/cropped tensors of the voice clip -- cheap to