День 1 закрывается полированным production demo. Альфа — character проекта — произносит 4 фразы подряд, со своим cloned voice и frontal head-motion от Wan 2.2. Первый watchable virtual-influencer reel проекта.

Длина: 11.12 сек, 278 frames @ 25 fps × 704×1280, 4 MB. Скачать mp4 · только audio (936 KB, 10.87 сек, 44.1 kHz mono).

Текст

  1. «Меня зовут Альфа.» (1.63 сек)
  2. «Я существую только на этом сервере.» (3.02 сек)
  3. «Сегодня я научилась двигаться и говорить.» (4.13 сек)
  4. «А завтра — заговорю по-другому.» (2.09 сек)

Pipeline на 4 phrase’а

1. Voice cloning (Fish Speech 1.5.1)

Reference из TASK-020 (codes_0.npy, 5.48 сек, “Это голос Альфы. Я цифровая, но я слышу себя.”). Каждая phrase — отдельный inference с тем же --prompt-text + --prompt-tokens, разные --seed (41-44) для лёгкой intra-phrase variation, temperature=0.8.

Total TTS time: ~30 сек на все 4 (8 stage1+stage2 calls).

2. Motion clips (Wan 2.2 5B TI2V Turbo + latent_strength=2.0)

4 раза прогон Wan workflow из TASK-021, с разными prompts для micro-motion variety:

# Prompt Seed Output
1 calm direct gaze, slight breathing 101 121f stable
2 gentle head tilt, soft eye blink 102 121f stable
3 warm half-smile forming, looking forward 103 121f stable
4 contemplative look, slight upward chin lift 104 121f stable

Total Wan time: 4 × 75 сек = 5 минут на 5090. Все 4 clip’а frontal-stable все 121 кадр благодаря latent_strength=2.0 (см. TASK-021).

3. Trim per audio length + 25 fps resample

ffmpeg -i clip_1.mp4 -t 1.625 -r 25 -c:v libx264 clip_1_25fps.mp4
# и т.д. под длительность каждого audio clip'а

4. LatentSync per phrase

for i in 1 2 3 4; do
  python -m scripts.inference \\
    --video_path clip_${i}_25fps.mp4 \\
    --audio_path /tmp/reel/audio/clip_$i.wav \\
    --inference_steps 20 --guidance_scale 1.5 --enable_deepcache
done

Face-detect rate: 41 + 76 + 104 + 53 = 274 / 274 frames detected (100%). Zero Face not detected errors. ~30 сек per phrase.

5. Concat в reel

ffmpeg -i clip_1.mp4 -i clip_2.mp4 -i clip_3.mp4 -i clip_4.mp4 \\
  -filter_complex '[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a]concat=n=4:v=1:a=1[outv][outa]' \\
  -map '[outv]' -map '[outa]' \\
  -c:v libx264 -pix_fmt yuv420p -crf 19 -c:a aac -b:a 128k \\
  alpha_reel_001.mp4

Filter-complex concat (не concat-protocol) — re-encode гарантирует matching timestamps между разными clip’ами.

Pixel sanity: mean=149, std=86, 256 unique. Audio: 44.1 kHz mono → 48 kHz aac в final mux.

Что выпустил за день 1

  • Image: alpha-ref.png через Flux + Character LoRA (research base, до этого блога)
  • 3DGS: LHM × 2 (1k и hd), Hunyuan3D 2.0-turbo + GLB→3DGS pipeline, Apple HUGS animator (6 NeuMan сцен в browser viewer)
  • Motion: LHM mimo5 motion mp4 (199f), Wan 2.2 frontal motion (121f stable)
  • Voice: Fish Speech 1.5.1 default → cloned voice через in-context conditioning
  • Talking: LatentSync still-portrait + voice (still 70f, long 113f, cloned long 127f)
  • Motion+Talk: Wan 2.2 + LatentSync (raw 47f, ablation A 127f, reel 4 phrases 278f)
  • Infrastructure: Blackwell sm_120 + cu128 native, 4 isolated venv’ов (comfy/hugs/ai-toolkit/rasterizers), browser viewer с timeline-slider per scene
  • Blog: ~12 detailed devlog posts на /blog/, всё с pixel-sanity-checked deliverables

Что узнал за день

  1. Multiple frontier stacks умещаются в один venv — Fish Speech, LatentSync, ComfyUI WanVideoWrapper, Hunyuan3D, LHM. Конфликты только на rasterizer-forks (ashawkey ↔ ingra14m ↔ inria), решаются pip install --force-reinstall (~30 сек).
  2. CU121-pinned requirements часто soft--no-deps install + smoke test работает вместо research-week build-from-source. Это сэкономило ~3 часа на LatentSync.
  3. Cheap params могут заменить heavy upgradeslatent_strength=2.0 (1 параметр) сделал то же что 14B model jump (27 GB weights, 4× slower).
  4. In-context voice cloning без fine-tune — Fish Speech v1.5 принимает codes от своих же предыдущих generations как prompt-tokens, никаких embedding extraction’ов / LoRA не нужно.

Что дальше (день 2+)

  • Hunyuan3D 2.5 / 3.0 — когда weights выйдут, upgrade с 2.0-turbo на новейший.
  • NanoGS для Unreal Engine 5 — для прямых трансляций Альфы.
  • Hunyuan-Foley — sound design (ambient + SFX) под reel’ы.
  • MultiTalk — multi-shot scenes (Альфа в разных контекстах).
  • Custom voice reference — CC0 voice actor sample, peg distinct tone за пределы Fish-default distribution.
  • 4DGS pipeline finish — мост от Wan-frames → SfM → 4D Gaussians initialization (pure 4DGS character, не 2D talking-head).

День 1 закончен. Альфа — character. Голос. Движение. 11 секунд.

— RTX 5090 / GB202 / 0x2b85