Поток, а не картинка
Задача звучала как генеративная, но по существу оказалась инфраструктурной. Тридцать восемь тысяч изображений в сутки — это двадцать шесть кадров в минуту непрерывно, круглые сутки, с учетом пиков при заливке новых категорий.
При таком объеме вопрос «красиво ли рисует модель» уходит на второй план. На первый выходят другие: сколько стоит один кадр в машинном времени, что делать с очередью, когда каталог заливают пачкой в сто тысяч позиций, и кто проверяет результат, если проверять глазами физически некому.
Требование, определившее архитектуру
Работа только на серверах заказчика. Фотографии товаров до релиза коллекции — коммерческая информация, и отправка их во внешний сервис означает передачу этих данных третьей стороне.
Плюс арифметика: облачная генерация тарифицируется за изображение. На потоке в десятки тысяч кадров в сутки собственные GPU окупаются быстро, и дальше стоимость кадра определяется только электричеством и амортизацией.
Товар остается собой
Базовое правило то же, что и в любой каталожной генерации: реальный предмет сохраняется в кадре без изменений, модель дорисовывает сцену вокруг него. Стиль, фон и композиция подчинены бренд-гайду и удерживаются адаптерами, дообученными на утвержденных референсах.
Дальше начинается специфика масштаба: гайд нужно не только соблюсти, но и проверить автоматически — на каждом кадре из тридцати восьми тысяч.
Автоматический бренд-контроль
| Что проверяется | Почему это ловится машиной |
|---|---|
| Фон в заданной палитре | Формальная проверка распределения цвета по кадру |
| Положение и масштаб товара | Геометрия относительно границ кадра задана гайдом в числах |
| Поля и безопасная зона | Требование площадки, проверяется арифметически |
| Целостность предмета | Сравнение области товара с исходником по допуску |
| Артефакты на границе | Анализ контура: ореолы и разрывы дают характерный отклик |
| Тень и опора | Наличие тени в ожидаемом секторе от источника света |
94% кадров проходят этот контроль без правок. Оставшиеся 6% — это очередь к человеку, и она конечна: около двух тысяч кадров в сутки, которые разбирает небольшая команда.
Резали шаги, пока не дрогнет приемка
Диффузия считает изображение итерациями, и число итераций определяет и качество, и стоимость. Интуиция подсказывает, что сокращение шагов ударит по картинке.
Мы превратили догадку в процедуру: срезаем шаг, прогоняем партию, смотрим долю отбраковки автоматическим контролем. Метрика приемки — объективный судья, у которого нет ощущений. Отбраковка не выросла ни разу за несколько итераций сокращения. Запас прочности у модели оказался больше, чем мы ей приписывали, и именно это дало основную часть пропускной способности.
Метод переносится на любую задачу с генерацией: сначала строится измеримая приемка, потом под нее оптимизируется все остальное. В обратном порядке получается спор о вкусах.
Расписание вместо мощности
Пиковую нагрузку не покрывают железом — это дорого и большую часть времени простаивает. Поток разложен по приоритетам: новинки и позиции, ждущие публикации, идут вперед; переработка старого каталога уходит в ночные окна, когда GPU свободны.
Кадры считаются пачками: групповая обработка на GPU дает заметно больше кадров в час, чем поштучная, при том же железе.
Откуда минус 82% к стоимости
Сравнение идет со студийной съемкой, и в него входит не только работа фотографа. Товар нужно физически привезти в студию, распаковать, снять, вернуть; кадры — отобрать и отретушировать; при смене бренд-гайда все это повторяется заново.
Генерация убирает логистику и ретушь и делает пересъемку каталога под новый гайд вопросом машинного времени. Именно этот пункт заказчики недооценивают на входе: смена оформления карточек перестает быть проектом на квартал.
Что ломается на потоке первым
Опыт эксплуатации дал короткий список слабых мест, и ни одно из них не относится к модели. Первое — диск: тридцать восемь тысяч изображений в сутки складываются в терабайты за месяц, и политика хранения промежуточных версий должна быть придумана до запуска, а не после звонка от админов. Второе — очередь: пачка на сто тысяч позиций, залитая в понедельник утром, легко выдавливает срочные новинки, если приоритеты не заданы явно. Третье — обновление модели: новый адаптер обязан прогоняться по эталонной выборке со старым бренд-контролем, иначе дрейф стиля обнаруживается через неделю в каталоге.
Где это не заменяет камеру
- Первая съемка нового товара: исходник для сцены все равно нужен реальный.
- Материалы со сложной фактурой и прозрачностью — стекло, мех, сетка.
- Кадры с людьми и примерками.
- Любые изображения, где на картинке заявлены характеристики товара: за них отвечает продавец, и генерации там не место.
Направление — генеративный ИИ, эксплуатация моделей под нагрузкой — MLOps, ранняя версия той же идеи для маркетплейса — в кейсе генерации карточек на диффузии.