AI-ассистент для обработки каталогов: автоцветокоррекция и художественная постобработка
Когда у вас десять фотографий товара, можно открыть каждую в редакторе, подвинуть ползунки, добавить лёгкую художественную обработку и закрыть на этом вопрос. Когда фотографий пять тысяч — этот же подход превращается в две недели монотонной кликни-сохрани, после которых дизайнер увольняется (а каталог всё ещё выглядит, будто его собирали из трёх разных съёмок).
В прошлый раз я уже рассказывал, как с помощью ИИ и ImageMagick автоматизировал базовую цветокоррекцию каталога из 5000+ изображений. Тот пост был про MVP — «как вообще к этому подступиться». Сейчас пора углубиться: как из разовой автоматизации сделать полноценного AI-ассистента, который умеет не только выравнивать баланс белого, но и применять художественную постобработку, держать очередь задач и встраиваться в чужие пайплайны.
Зачем вообще AI-ассистент, если есть пресеты Lightroom
Резонный вопрос. У Lightroom и Capture One отличные пресеты, у RAW-конвертеров — батч-режим, ImageMagick справляется с большинством линейных трансформаций без всякого ИИ. Так почему ассистент?
Потому что пресет — это жёсткая функция: одна и та же кривая накладывается на любое изображение. Если у вас каталог снят в одном помещении с одним светом — пресет работает. Если съёмка шла три недели в разных локациях, разной погоде и тремя разными фотографами — пресет либо тянет к своему среднему (и убивает удачные кадры), либо требует ручной корректировки на каждом снимке.
AI-ассистент решает другую задачу. Он не применяет одну и ту же трансформацию — он подбирает трансформацию под конкретный кадр, опираясь на эталонную выборку. Эталоны вы готовите вручную (10–20 штук, отредактированных так, как должно выглядеть всё остальное). Ассистент учится у эталонов и генерализует подход на оставшиеся 4980 изображений.
Эталон — изображение «до» и «после», на котором ассистент видит, какую именно трансформацию вы считаете правильной для этого типа сцены.
Это не серебряная пуля (ассистент не превратит размытое селфи в обложку Vogue), но для каталогов с условно стабильным предметом съёмки — вполне рабочая история.
Из чего состоит ассистент: архитектура пайплайна
Если бы это была одна функция «дай мне обработанные картинки» — статья кончилась бы на втором абзаце. Реальность сложнее: ассистент — это связка из нескольких слоёв, каждый делает свою маленькую часть.
На диаграмме видно главное: ассистент — это конвейер с явными границами ответственности. Препроцессинг приводит входные файлы к единому знаменателю (формат, ориентация, разрешение). Классификатор группирует кадры по типу сцены — потому что для предметки на белом фоне и для лайфстайла нужны разные LUT. Очередь развязывает скорость классификации и скорость обработки. LUT-генератор и AI-обработчик делают цвет и художку. QC-агент сверяет результат с эталоном и либо выпускает наружу, либо отправляет на повтор. Журнал решений — отдельная история, к которой мы ещё вернёмся.
Препроцессинг: грязная работа без ИИ
Первый слой — самый скучный и самый важный. Если на входе зоопарк из RAW, JPEG, HEIC, PNG в разной ориентации и разных цветовых пространствах — ассистент будет давать стабильно непредсказуемые результаты (потому что одна и та же операция в sRGB и в Display P3 даёт разные пиксели).
На этом этапе ImageMagick делает три вещи:
- приводит всё к единому формату и цветовому пространству;
- читает EXIF и поворачивает изображение по ориентации;
- ресайзит до рабочего разрешения, если оригинал избыточен (часто это 2× от того, что реально нужно в каталоге).
ИИ здесь не нужен. Это детерминированный шаг с понятными правилами, и любая попытка «сделать его умнее» обычно заканчивается багами.
Классификатор сцен: VLM в роли сортировщика
Дальше начинается интересное. Ассистент должен понять, что у него на входе — упаковка йогурта на белом фоне, тарелка борща в общепите, человек в куртке на улице или интерьер кафе. От ответа зависит, какой LUT и какие художественные правила применять.
Раньше для такого писали отдельные классификаторы на CNN. Сейчас проще взять multimodal-модель (VLM), скормить ей картинку и пару эталонов, и спросить «это какая категория из списка». Точности 95% обычно достаточно — пограничные случаи всё равно уйдут на ручной разбор через QC.
Тут уместно вспомнить про Model Context Protocol — если у вас уже есть MCP-инфраструктура, классификатор удобно подключать как отдельный tool с фиксированным контрактом «изображение на вход — категория и confidence на выход».
LUT-генератор и художественная постобработка
LUT (Look-Up Table) — это, по сути, таблица соответствий «исходный цвет → целевой цвет». Если у вас есть пара «до/после», LUT извлекается математически: смотрим на распределения каналов R, G, B на эталоне-исходнике и на эталоне-результате, строим функцию преобразования. Это первая, техническая часть постобработки.
Художественная часть — то, что не сводится к одной кривой. Лёгкое размытие фона, локальное усиление контраста на предмете, тёплый акцент на тенях. Здесь уже работает диффузионная или image-to-image модель: ей даётся вход + эталон стиля + промпт-описание желаемого результата. На выходе — кадр, в котором цвет уже выровнен LUT-ом, а художка наложена сверху.
Важный момент: художественная обработка должна быть обратимой и параметризованной. Ассистент не должен «улучшать» по своему вкусу — он должен применять ровно тот набор изменений, который вы согласовали на этапе эталонов. Любая попытка дать модели свободу обычно заканчивается тем, что половина каталога приобретает фирменный AI-овский глянец, который заказчик потом просит снять.
Сравнение подходов: пресет vs LUT vs AI-ассистент
Чтобы было нагляднее, что мы получаем — таблица. На вход 5000 изображений, разные локации, два фотографа.
| Параметр | Пресет Lightroom | Сгенерированный LUT | AI-ассистент |
|---|---|---|---|
| Стоимость подготовки | Низкая (1 пресет) | Средняя (требует эталонов) | Высокая (эталоны + инфраструктура) |
| Учёт типа сцены | Нет | Нет | Да (через классификатор) |
| Художественная обработка | Только параметрическая | Нет | Да |
| Стабильность результата | Высокая | Очень высокая | Средняя (зависит от модели) |
| Время на 5000 кадров | 30–60 минут | 10–20 минут | 4–8 часов |
| Цена ошибки | Все 5000 испорчены одинаково | Все 5000 испорчены одинаково | Часть кадров уйдёт в QC |
Парадокс: ассистент — самый медленный из вариантов и самый дорогой в подготовке. Но это единственный, который масштабируется на разнородный каталог без ручной доводки. Для однородной съёмки в студии за один день — берите пресет, не мучайте себя и инфраструктуру.
Очередь задач: почему она нужна почти сразу
Соблазн велик: написать скрипт for file in *.jpg, дёргать API в цикле и идти пить кофе. На 50 файлах это работает. На 5000 — нет.
Причин три:
- API-провайдеры падают и троттлят. Если на 3478-м файле сервис вернул 429 — у вас в скрипте либо retry-в-лоб (который добивает квоту), либо тихая потеря файла.
- Нужна параллельность с контролем. Хочется обрабатывать 8 файлов одновременно, но не 80 (иначе сервис уйдёт в защиту, а у вас закончится память).
- Нужен возобновляемый прогресс. Упал процесс на 4000-м файле — не хочется начинать с нуля.
Очередь решает всё это бесплатно. Берёте Redis или RabbitMQ, кладёте туда задачи, запускаете воркеров — и получаете честный пайплайн с retry, dead-letter и метриками. Эту же очередь, кстати, удобно подсадить под автопубликацию через cron, Claude Code и Docker, если ассистент — часть большего конвейера.
Журнал решений: то, без чего ассистент превращается в чёрный ящик
Через две недели работы заказчик пришлёт сообщение «вот эти 12 фото обработаны не так, верните как было». Если у вас нет журнала — у вас нет и ответа. Вы не знаете, какой LUT применился, какая модель отрабатывала художку, какой промпт использовался.
Журнал должен фиксировать минимум:
- хеш входного файла и хеш выходного;
- версию LUT-а и параметры (какие эталоны использовались);
- модель и версию для художки + промпт;
- результат QC-агента и его комментарий;
- временные метки всех шагов.
Это похоже на обычное логирование, но с одним отличием: журнал должен позволять повторить операцию точь-в-точь через полгода. Иначе ассистент перестанет быть инструментом и станет источником сюрпризов.
QC-агент: проверка перед выпуском
Последний слой — автоматический контроль качества. Без него ассистент — это «загрузил, обработал, выгрузил, надеешься на лучшее».
QC-агент берёт пару «вход / выход» и эталон того же класса, считает несколько метрик: гистограммную близость, SSIM (structural similarity), перцептивную дистанцию через предобученную модель. Если значения в зелёной зоне — кадр уходит в выходной каталог. Если жёлтая — кадр всё равно выходит, но помечается флагом «глянуть глазами». Если красная — кадр улетает обратно в очередь с пометкой «попробовать другой LUT» или сразу в ручную доработку.
Стоит отметить: QC-агент не обязан быть AI-моделью. На большинстве каталогов хватает старых добрых метрик и пары порогов, которые вы калибруете на эталонной выборке. ИИ нужен там, где «правильно» — это субъективное чувство, а не цифра.
Когда AI-ассистент — это перебор
Чтобы честно: не каждому каталогу нужен такой пайплайн. Признаки, что вы перепроектировали:
- Каталог меньше 500 изображений — пресет в Lightroom закроет вопрос за вечер.
- Все съёмки в одинаковых условиях — LUT без ассистента справится.
- Художественная постобработка не нужна — например, медицинские или техдок-фотографии, где любая «художка» = искажение.
- У вас один-единственный каталог раз в год — окупаемость инфраструктуры будет отрицательной до конца времён.
Ассистент имеет смысл, когда обработка каталогов — это повторяющийся процесс с разнородными входами и художественными требованиями. Один e-commerce проект с обновлением ассортимента раз в месяц — да. Однократная обработка свадебного альбома — нет.
Куда это растёт дальше
Самое интересное начинается, когда ассистент становится частью большего контура. Появляются смежные сценарии: автоматическая генерация превью под маркетплейсы (каждый со своими требованиями к фону и пропорциям), подбор обложек под A/B-тесты, динамическая ресайз-фабрика для CDN. Архитектура с очередью и журналом расширяется на эти кейсы почти бесплатно — добавляется новый воркер, новый класс задач, и ассистент уже работает не только с цветом.
И главное: построенная инфраструктура — это не «AI-фича», это обычный продакшн-конвейер обработки данных, в котором ИИ занимает один-два слоя из шести. Помните об этом, когда читаете очередную статью про «революцию AI в обработке изображений». Революция — в дисциплине пайплайна. ИИ — в одной из коробочек на схеме.
Заключение
Хороший AI-ассистент для обработки каталогов — это не «модель, которая делает красиво». Это конвейер с чёткими границами: препроцессинг, классификация, LUT, художка, QC, журнал. Каждый слой решает одну задачу и не лезет в чужую — и именно поэтому всё это вообще можно поддерживать в продакшене.
PS. Если на ревью архитектуры кто-то предложит «давайте всё это заменим одним промптом к мультимодальной модели» — улыбнитесь и откройте журнал решений. Через пару месяцев вы будете благодарны себе прошлому за то, что не заменили.