К содержанию
fohbookбета/ TouchDesigner

Диффузия в реальном времени

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, память, Windows

Локально нужна NVIDIA RTX. По README TouchDiffusion при 512 × 512 RTX 3060 на 12 ГБ даёт около 16 кадров, RTX 4090 — 55–60. Движок TensorRT привязан к карте и драйверу: другая машина — пересборка, новые поколения карт поддерживаются с опозданием. Облако снимает требование к карте, но добавляет сеть и её задержку.

Кипение

Кадры считаются почти независимо, соседние разные, картинка кипит, и ползунком это не исправить. Помогают малая сила шумоподавления (strength), чёткий контрастный вход вместо шума, смесь с прошлым кадром через feedback, ControlNet с контурами или глубиной, где он есть. Или кипение как приём — на нём построена не одна работа.

камера / 3D-сцена ──▶ подготовка ──▶ диффузия ──▶ доводка ──▶ композит
                                        ▲
                                     промпт (DAT)

Подготовка — разрешение модели, контраст, ничего лишнего. Доводка — цвет, зерно и смесь с оригиналом: чистый выход модели обычно хуже смеси. Промпты хранятся в Table DAT, чтобы новый набор был правкой таблицы. Задержка — камера, подготовка, инференс, возврат, вывод, а в облаке ещё сеть; под музыку терпимо, «человек видит себя» — заметно, мерить на своём железе.

Отдельный процесс и запасная графика

Самое тяжёлое и ломкое в проекте работает отдельным процессом, а в шоу есть переключатель на обычную графику, Несколько процессов. Модель не встала — шоу идёт без неё.

Модель учили на чужих картинках, и про «чей это стиль» заказчик спросит. Лицензию модели и согласие обсуждают заранее, Нейросеть на площадке. Инсталляция целиком — Портрет через нейросеть.

Нашли в статье ошибку, устаревшее или непонятное место?

рядом по смыслу