Диффузия в реальном времени
StreamDiffusion в патче: TouchDiffusion и StreamDiffusionTD, сколько кадров даёт какая карта, почему картинка кипит и как держать диффузию так, чтобы шоу без неё выжило.
Диффузия в реальном времени есть, но оговорки важнее самой возможности.
Секунды превратились в кадры из-за трёх вещей: модели на несколько шагов (SD-Turbo, LCM — 1–4 шага вместо десятков), конвейер StreamDiffusion, который пачкой гонит шаги шумоподавления для нескольких кадров, и TensorRT с облегчённым автоэнкодером под конкретную карту. Выходит десятки кадров в секунду на сильной карте около 512 × 512.
| Решение | Что это |
|---|---|
| TouchDiffusion (Oleg Chomp, GitHub) | StreamDiffusion для TouchDesigner: TOP на вход, промпт параметром; сам автор зовёт это ранней стадией |
| StreamDiffusionTD (Lyell Hintz, dotsimulate) | Промпт, seed, морфинг промптов, веса ControlNet; через Patreon автора; кроме своей карты — облако Daydream API |
| Свой процесс + Spout | Полный контроль, максимум работы |
В TouchDesigner ничего из этого не входит, всё — сообщество, и всё работает image-to-image: камера, генеративка или рендер на вход, стилизованное по промпту на выход.
Локально нужна NVIDIA RTX. По README TouchDiffusion при 512 × 512 RTX 3060 на 12 ГБ даёт около 16 кадров, RTX 4090 — 55–60. Движок TensorRT привязан к карте и драйверу: другая машина — пересборка, новые поколения карт поддерживаются с опозданием. Облако снимает требование к карте, но добавляет сеть и её задержку.
Кипение
Кадры считаются почти независимо, соседние разные, картинка кипит, и ползунком это не исправить. Помогают малая сила шумоподавления (strength), чёткий контрастный вход вместо шума, смесь с прошлым кадром через feedback, ControlNet с контурами или глубиной, где он есть. Или кипение как приём — на нём построена не одна работа.
камера / 3D-сцена ──▶ подготовка ──▶ диффузия ──▶ доводка ──▶ композит
▲
промпт (DAT)
Подготовка — разрешение модели, контраст, ничего лишнего. Доводка — цвет, зерно и смесь с оригиналом: чистый выход модели обычно хуже смеси. Промпты хранятся в Table DAT, чтобы новый набор был правкой таблицы. Задержка — камера, подготовка, инференс, возврат, вывод, а в облаке ещё сеть; под музыку терпимо, «человек видит себя» — заметно, мерить на своём железе.
Самое тяжёлое и ломкое в проекте работает отдельным процессом, а в шоу есть переключатель на обычную графику, Несколько процессов. Модель не встала — шоу идёт без неё.
Модель учили на чужих картинках, и про «чей это стиль» заказчик спросит. Лицензию модели и согласие обсуждают заранее, Нейросеть на площадке. Инсталляция целиком — Портрет через нейросеть.
Нашли в статье ошибку, устаревшее или непонятное место?