AI-видео — это не «дёрнуть API», а адская инфраструктура 🎬

Наткнулся на отличный open-source проект —Infinite TV. Это система непрерывного интерактивного стриминга на Twitch, где сюжетом на лету управляют зрители через чат. Что делает пайплайн: слушает IRC-сокет чата → скармливает последний кадр в Vision LLM → генерирует промпт по законам драматургии → варит видео через диффузию → синхронизирует аудио → стримит 24/7.

Вот ключевые инженерные решения, на которых держится эта система 👇 1️⃣ LLM-режиссёр с визуальным контекстом Нельзя просто брать сообщения из чата и слать их в диффузию — через 3 шага картинка рассыплется в бессвязный мусор. Здесь мультимодальная модель (Gemini 2.5 Flash через fal/OpenRouter или Llama-4 Scout на Groq) анализирует последний сгенерированный кадр + сообщения зрителей и собирает следующий. Есть три режима: 🔵Cohesive — плавное развитие сюжета 🔵Chaotic — драматические изменения 🔵Nightmare — сюрреалистичный сон при температуре 40.

2️⃣ Диффузионное ядро: LTX 2.3 Distilled FP8 на GPU-B200 Стриминг не ждёт, пока модель полчаса подумает. Для реалтайма взяли LTX-2.3-Distilled (22B параметров): 🔵 Квантование: Веса трансформера кастятся в float8_e4m3fn с вычислениями в bfloat16. 121 кадр успевает сгенерироваться до опустошения буфера стрима. 🔵 Консистентность персонажей: В режиме LTX2ConditionPipeline передаются до 4 референсных изображений с весами (strength). Это держит визуальный якорь, чтобы герой не мутировал каждые 5 секунд. 🔵 Прогрев памяти: Сетевые диски в облаках медленно читают файлы последовательно. Пайплайн прогревает веса в page cache вызовом cat в 32 параллельных потока (parallel file loading).

3️⃣ Борьба с «залипанием сцены» Главная боль склейки Image-to-Video генераций — деградация динамики. Если тупо кормить модели её же последний кадр, через пару итераций движение затухает и всё превращается в статичный стоп-кадр. Как это победили: 🔵 Инъекция шума: Параметр noise_scale: 0.15 подмешивает энтропию в латенты, сбивая детерминированные петли. 🔵 Рандомизация сидов: Принудительный отказ от фиксированного сида (random.randrange(2**31)) на каждом шаге. 🔵 Динамический CFG: Если выбран комментарий зрителя, guidance_scale задирается выше, чтобы заставить модель перерисовать сцену под действие.

4️⃣ Медиапотоки и аудио: FFmpeg + WebRTC Здесь чистый ML превращается в системное программирование: 🔵 Audio Sync: LTX 2.3 совместно генерирует звук через вокодер (24 кГц). Пайплайн налету ресемплит его в 44.1 кГц stereo s16le PCM и заливает в Unix FIFO pipe для FFmpeg. Если модель не успевает — вставляется тишина строго нужной длины. 🔵 Защита от падения потока (Jitter buffer): Если очередь кадров пустеет, стример не крашится, а повторяет последний кадр с микроколебаниями яркости (±1-2 уровня), маскируя ожидание. 🔵 WebRTC: Кастомный бэкенд на aiortc с нарезкой аудио на чанки по 20 мс для локального просмотра с sub-second latency.

Сама ML-модель в современном продукте — это просто кирпич. 80% успеха и стабильности продакшена — это оркестрация, работа с очередями, контроль латентов и обработка сбоев. ☝️

AI-видео — это не «дёрнуть API», а адская инфраструктура 🎬
Наткнулся на отличный open-source проект —Infinite TV | Сетка — социальная сеть от hh.ru