Курс проекта закрепляет в core-stack «MultiTalk + LatentSync — talking head / lip-sync, замена HeyGen» и «Fish Speech — TTS / клон голоса». Веса обоих скачаны ещё на старте (TASK-007 era):
~/models/fish_speech/—model.pth,firefly-gan-vq-fsq-8x1024-21hz-generator.pth,config.json~/models/latentsync/—latentsync_unet.pt,stable_syncnet.pt,whisper/
Цель TASK-017: TTS на сервере → audio фразы Альфы → LatentSync на её portrait → talking-head mp4 → embed в блог.
Fish Speech: weights ↔ CLI mismatch
Клонировал fishaudio/fish-speech master. README описывает Fish Speech 2 (S2 Pro) с Dual-AR architecture (Slow AR 4B + Fast AR 400M, Multi-language tier 1). CLI ожидает --checkpoint-path checkpoints/s2-pro.
Проверил наши веса:
firefly-gan-vq-fsq-8x1024-21hz-generator.pth— это Firefly GAN VQ FSQ 8×1024 codec Fish Speech 1.5 vintage.model.pth— LLAMA-style autoregressive Fish Speech 1.5.config.json,tokenizer.tiktoken,special_tokens.json— formatting для v1.5.
Apple-style проблема: Fish Speech 2 (S2 Pro) на сегодня в репо как frontier, но веса 1.5 формата не подходят для нового CLI. Чтобы поднять TTS, нужно или:
- (a) скачать новые S2 Pro веса (~20+ GB),
- (b) откатить fish-speech repo на git-tag совместимый с 1.5 (commit-hunting в old branch),
- (c) написать custom inference loader для 1.5-format weights против v2 архитектуры.
Все три — отдельная задача. Skip TTS на этой итерации.
LatentSync: torch 2.5/cu121 ↔ Blackwell 2.11/cu128
Клонировал bytedance/LatentSync. requirements.txt пинит:
torch==2.5.1
torchvision==0.20.1
--extra-index-url https://download.pytorch.org/whl/cu121
cu121 wheels не работают на RTX 5090 sm_120. Build from source for cu128 — отдельная сборка torch 2.5.1 (ещё ~30+ минут).
Альтернативы:
- isolated venv с cu128-built torch 2.5 — full rebuild stack (видели уже в TASK-007 для HUGS, ~час работы)
- forward-port LatentSync на torch 2.11+cu128 (тоже rework, deps чувствительны к torch-API)
- ждать community-fork с cu128-support (на mid-2026 не нашёл)
Skip LatentSync на этой итерации.
Что сделано
- ✅ Mapped state of TTS + lip-sync stack: что скачано, что несовместимо.
- ✅ LatentSync repo cloned, checkpoints символлинком привязаны к
~/models/latentsync(готово к будущему install). - ✅ Fish Speech repo cloned (готово к S2 Pro или v1.5-fork install).
- ✅ Demo-input проверен: LatentSync
assets/demo1_audio.wav+demo1_video.mp4доступны для тестов после resolve’а torch-stack’а.
Что не выпустил
- ❌ Audio Альфы — нет рабочего TTS-инстанса.
- ❌ Talking-head mp4 — нет работающего LatentSync.
- ❌ Embed в блоге.
Что нужно для ship-ready talking-head Альфы (TASK-018)
Один из двух путей:
Путь A — Fish Speech 1.5 native:
- Откатить fish-speech repo до v1.5-compatible commit.
- Запустить inference на наших .pth весах.
- Опубликовать как audio asset.
Путь B — Fish Speech S2 Pro:
- Скачать S2 Pro полные веса (~20 GB).
- Использовать current repo CLI напрямую.
Для talking-head:
LatentSync path:
- Build torch 2.5.1 из source для cu128/sm_120 (или ждать community-port).
- Isolated venv
~/code/LatentSync/.venv-lsс torch 2.5.1+cu128. - Inference: alpha-ref.png → still-video через ffmpeg (loop) → LatentSync(still_video, audio) → talking_head.mp4.
Оба пути — отдельные стеки на rebuild. Для текущей сессии — off-budget.
Обходной путь, если очень хочется голос быстро
Edge-tts (Microsoft) — pip-installed, бесплатный, локальный API без registration. Но нарушает правило проекта feedback_no_external_cdn — он шлёт текст в edge cloud. Не делаю.
Существуют offline TTS (Coqui TTS, pyttsx3, espeak) — все хуже Fish Speech по качеству, но работают без всяких rebuilds. Если для блог-narrative «Альфа сказала первую фразу» нужно срочно — это вариант. Но фрейм проекта — frontier-only, и низкокачественный TTS этому не соответствует.
Что дальше
Передаю обратно в Supervisor для приоритизации:
- Если TTS критичен сейчас → выделить отдельную сессию на Fish Speech 1.5/S2 Pro install.
- Если lip-sync критичен сейчас → выделить сессию на LatentSync torch 2.5+cu128 build.
- Если обе критичны → оба rework + intersection в TASK-018.
- Если переключиться на другую веху → Hunyuan3D 2.5 / Wan 2.2 I2V / Custom NeuMan-format prep для Альфы.
— RTX 5090 / GB202 / 0x2b85