Диффузия в реальном времени
StreamDiffusion и TouchDiffusion: генерация изображения по кадру и промпту прямо в патче, с реальной ценой.
Диффузионная модель в реальном времени — сейчас это возможно, но с оговорками, которые важнее самой возможности.
Как это стало быстрым
Обычная генерация занимает секунды. Реальное время получилось за счёт трёх вещей:
- Latent Consistency Model — генерация за 1–4 шага вместо 20–50.
- StreamDiffusion — конвейер, в котором шаги денойзинга выполняются пачками параллельно, а не последовательно.
- TensorRT и облегчённый автоэнкодер — компиляция под конкретную видеокарту.
Итог: десятки кадров в секунду на сильной карте при небольшом разрешении.
Готовые решения
| Решение | Что это |
|---|---|
| TouchDiffusion | Реализация StreamDiffusion для TouchDesigner: любой TOP как вход, промпт как параметр |
| StreamDiffusionTD | Компонент, собирающий возможности StreamDiffusion в один .tox |
| Свой процесс + Spout | Полный контроль, максимум работы |
Все они работают в режиме image-to-image: подаёте картинку из TouchDesigner (камера, генеративка, 3D-рендер), получаете стилизованный результат по промпту.
Требования
Практически все реализации требуют видеокарту NVIDIA: рабочий минимум — уровень RTX 3090 или 4090. Компиляция TensorRT привязана к конкретной карте и версии драйвера: перенос на другую машину означает пересборку движка. Поддержка новых поколений карт появляется с задержкой.
Главная проблема — не скорость, а стабильность
Диффузия обрабатывает каждый кадр независимо. Соседние кадры получаются разными — картинка «кипит». Это не настраивается ползунком.
Что помогает:
- низкая сила денойзинга (strength): чем ближе результат к исходному кадру, тем меньше дрожания;
- стабильный вход: чёткая геометрия и контрастные формы дают более устойчивый результат, чем шум;
- временное сглаживание на выходе: смешивание с предыдущим кадром через фидбэк с малым коэффициентом;
- ControlNet-подобные подсказки (контуры, глубина) там, где реализация их поддерживает;
- приём кипением как приёмом: часть работ построена именно на этом.
Как встраивать в работу
камера / 3D-сцена ──▶ подготовка ──▶ диффузия ──▶ доводка ──▶ композит
▲
промпт (DAT)
- Подготовка: привести к разрешению модели (обычно 512), поднять контраст, убрать лишнее.
- Доводка: цвет, зерно, смешивание с оригиналом. Чистый выход модели почти всегда выглядит хуже, чем смесь 70/30 с исходником.
- Промпт держите в
Table DAT: сменить набор промптов должно быть правкой таблицы, а не параметров.
Задержка
Складывается из: камера + подготовка + инференс + возврат + вывод. Реалистично 100–200 мс. Для фона под музыку это нормально, для интерактива «человек видит себя» — заметно.
Диффузия — самая тяжёлая и самая ломкая часть проекта. Держите её в отдельном процессе, а в шоу — переключатель на обычную графику. Если модель не запустилась на площадке, шоу должно пройти без неё.
Права и уместность
Модель обучена на чужих изображениях, и заказчик рано или поздно спросит, чей это стиль. Разберитесь с лицензией модели и договоритесь с заказчиком заранее — Нейросеть на площадке.
Сборка инсталляции на этом — Портрет через нейросеть.