TL;DR
STRIDE — это цикл доработки картинки поверх любого генератора изображений. Задача разбита на атомарные требования-вопросы (чек-лист «да/нет»). Один модуль проверяет, какие пункты провалены. Другой показывает, где на картинке это видно. Затем решается, что делать: перерисовать всё или поправить точечно. Новая версия заменяет текущую, только если набрала больше выполненных пунктов.
Главная находка: инфографика ломается на двух разных масштабах. Если сломана композиция (нет объекта, съехала сетка), точечная правка не поможет. Если кривая одна подпись, полная перерисовка испортит то, что уже было правильно. Вдобавок каждая новая попытка случайна. Исправление одного пункта легко ломает другой, и итог то улучшается, то откатывается назад.
STRIDE решает это тремя приёмами. Проверка и локализация ошибки разделены. Масштаб правки выбирается под тип ошибки. Из нескольких кандидатов в следующий раунд идёт только тот, кто строго лучше текущего лидера. Остальные попытки не пропадают, а попадают в историю, чтобы не повторять ошибки. На открытых моделях это дало прирост в 20–30 пунктов и сравнялось или обогнало закрытые системы.
Схема метода
ШАГ 0: Сгенерировать K вариантов (в статье 6) → выбрать лучший по чек-листу = «чемпион»
ПОВТОРЯТЬ до 3 раундов (или пока все пункты выполнены):
ШАГ 1: ВЕРИФИКАТОР — проверить чемпиона по чек-листу → «да/нет» по каждому пункту + причина
ШАГ 2: ПЕРЦЕПТОР — описать картинку по областям (где что стоит, какой текст) → привязка провалов к местам
ШАГ 3: ВЕДУЩИЙ РЕДАКТОР — прочитать историю попыток → выбрать: ПЕРЕРИСОВКА или ТОЧЕЧНАЯ ПРАВКА → дать указание
ШАГ 4а: КОМПОЗЕР (если сломано глобально) → исходный промпт + блок «исправь вот это» → 4 новых картинки
ШАГ 4б: РЕТУШЕР (если сломано локально) → 4 параллельные правки отдельных блоков текста
ШАГ 5: Проверить всех кандидатов → чемпион меняется, только если счёт СТРОГО выше; при ничьей остаётся старый
ШАГ 6: Записать в историю, что пробовали и что отклонили → следующий раунд
В статье это отдельные вызовы моделей, оркестрируемые кодом.
Пример применения
В статье STRIDE работает как код. Но каркас можно прогнать вручную в чате с генератором картинок: ChatGPT с картинками, Gemini, Midjourney плюс чат с vision-моделью. Ограничение: в картинках пока слабее всего кириллица, поэтому для текста по-русски нужен ретушёр (правка блока) или ручная подмена текста.
Задача: Селлер на Wildberries делает инфографику для карточки термокружки. Генератор то путает цифры, то теряет иконки, то пишет «1 920 ₽» вместо «1 290 ₽».
Промпт (шаг проверки, отправляется вместе с картинкой):
Ты — ВЕРИФИКАТОР. Ты строго проверяешь картинку по чек-листу.
1. Заголовок «Термокружка Мороз 450 мл» написан без ошибок.
2. Цена «1 290 ₽» указана точно, без искажений цифр.
3. Есть ровно 4 иконки преимуществ: «12 часов тепла», «Нержавейка 304», «Не течёт», «450 мл».
4. Подписи под иконками совпадают с иконками по смыслу.
5. Слева сверху — место под логотип, оно пустое.
6. Кружка занимает правую половину кадра, не обрезана краями.
7. Фон светлый, весь текст читается.
Для каждого пункта выведи строку: номер | ДА/НЕТ | причина одной фразой.
В конце — итог: сколько ДА из 7.
Не исправляй картинку и не давай советов.
Затем роль ПЕРЦЕПТОРА: опиши картинку по областям (где стоит каждый текстовый блок, что именно написано, где иконки) и для каждого провального пункта укажи, в какой области проблема.
Дальше вы сами играете «ведущего редактора»:
- Если провалены 3+ пункта или сломана композиция, просите генератор перерисовать.
- Если провалена одна подпись, правите только её.
- Новую версию принимаете, только если ДА стало больше.
Результат: Модель выдаст таблицу по 7 пунктам с причинами и итоговым счётом. Затем идёт описание областей картинки с привязкой провалов к местам. Вы получаете не «выглядит нормально», а конкретный список: что сломано и где. Из него легко собрать точное указание для перерисовки или правки.
Почему это работает
Слабость. Генератор картинок не «знает», что нарушил. Общая оценка «скорее хорошо» не говорит, что чинить. Сама правка тоже случайна: следующая попытка может починить цену и сломать иконки. Без правила отбора система ходит по кругу.
Сильная сторона. Мультимодальная модель хорошо отвечает на узкие вопросы с ответом «да/нет» по картинке. Она также умеет описывать, где что расположено. Узкий вопрос надёжнее, чем «оцени картинку от 1 до 10». Это показывает и сравнение с оценкой людей: согласие верификатора с человеческой оценкой было заметным, хотя не идеальным.
Как метод это использует. Он делит работу на роли: - Проверка отвечает «что не так». - Локализация отвечает «где». - Редактор выбирает «чем чинить». - Правило чемпиона не даёт откату съесть прогресс.
В эксперименте жёсткая замена лидера на лучшего из новых давала хуже, чем «оставить старого, если нового нет лучше». Несколько кандидатов за раунд повышают шанс найти улучшение.
Рычаги управления: - Число кандидатов за раунд (в статье 4) → больше шансов найти лучше, но дороже. - Число раундов (в статье 3) → качество росло с каждым раундом: 1 → 2 → 3. - Детальность чек-листа → чем атомарнее пункты, тем точнее диагноз. - Приоритетные уровни пунктов (например, цена и заголовок важнее фона) → сравнение идёт по важности пунктов сверху вниз. - Уверенность в фактах → если модель не уверена в имени, дате или числе, ей разрешён поиск в сети.
Шаблон промпта
Сохраняю роли и правило отбора. Метод надо запускать по шагам, в нескольких сообщениях.
Ты — ВЕДУЩИЙ РЕДАКТОР по доработке изображения. Под тобой три исполнителя:
ВЕРИФИКАТОР, ПЕРЦЕПТОР, КОМПОЗЕР и РЕТУШЕР. Ты решаешь, кого вызвать.
{описание изображения: что должно быть на картинке}
{атомарные пункты, каждый — вопрос с ответом ДА/НЕТ}
Чемпион: {текущая лучшая версия или её описание}
Счёт чемпиона: {число ДА из N}
История: {что пробовали, что отклонили, какие регрессии были}
Шаг 1. ВЕРИФИКАТОР: пройди по каждому пункту Checklist → «номер | ДА/НЕТ | причина».
Шаг 2. ПЕРЦЕПТОР: опиши области картинки (расположение объектов, дословный текст,
связь «признак–область») и привяжи каждый провал к области.
Шаг 3. РЕШЕНИЕ:
- Если провалы глобальные (нет объекта, неверная композиция, нарушено сразу
несколько пунктов) → вызови КОМПОЗЕР.
- Если провалы локальные (опечатка, неверная цифра, один атрибут) → вызови РЕТУШЕР.
Учти {История}: не повторяй отклонённые правки, учти предупреждения о регрессиях.
Шаг 4а. КОМПОЗЕР: сохрани исходное описание {Task} дословно как начало, затем добавь
блок повелительных указаний «исправь только вот это: …» по проваленным пунктам.
Дай {число_кандидатов} вариантов такого блока.
Шаг 4б. РЕТУШЕР: дай {число_правок} правок вида «блок N → точный исправленный текст».
Одна правка — один блок. Убери дубли.
Шаг 5. ПРАВИЛО ЧЕМПИОНА: после генерации кандидатов проверь их по Checklist.
Чемпион меняется, ТОЛЬКО ЕСЛИ у кандидата счёт СТРОГО выше.
При ничьей остаётся прежний чемпион.
Остановись, когда выполнены все пункты, или после {число_раундов} раундов,
или если два раунда подряд не принесли улучшения.
Выведи: таблицу проверки; решение (композер/ретушёр) с обоснованием в одну фразу;
текст указаний для исполнителя; обновлённую историю.
Что подставлять:
- {описание изображения} — исходный промпт для генератора.
- {атомарные пункты} — 5–10 вопросов «да/нет» по каждому требованию.
- {число_кандидатов}, {число_правок}, {число_раундов} — например 4, 4, 3.
🚀 Быстрый старт — вставь в чат:
Вот шаблон доработки изображения по методу STRIDE. Адаптируй под мою задачу: [твоя задача — какое изображение нужно получить].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какие требования должны выполняться (текст, цифры, расположение, количество объектов) и какие из них критичны. Это нужно, чтобы собрать чек-лист из атомарных вопросов: на нём держится весь метод. Она возьмёт структуру ролей и правило чемпиона из шаблона и адаптирует их под задачу.
Ограничения
⚠️ Нужна инженерия: В статье это пайплайн с несколькими большими моделями, параллельными ветками и программным инструментом для правки текста на картинке. В чате можно повторить логику вручную, но без автоматизации это долго.
⚠️ Качество зависит от чек-листа: Метод работает, когда требования можно разбить на проверяемые «да/нет». Для субъективного «красиво» или «цепляет» он почти не помогает.
⚠️ Верификатор ошибается: Согласие с человеческой оценкой было заметным, но не полным. Модель-проверяющая сама может пропустить ошибку или придраться зря, и тогда цикл гонится за ложной целью.
⚠️ Дорого по числу вызовов: За раунд — несколько кандидатов и повторные проверки каждого. Для одной картинки это много запросов.
⚠️ Локальные правки — только текст и формулы: Ретушёр в статье умеет менять блоки текста. Ошибки формы, объекта или стиля исправляются только полной перерисовкой.
⚠️ Русский текст в картинках: В статье проверяли на англоязычных и китайских бенчмарках. Для кириллицы эффект надо проверять самому.
Как исследовали
Команда взяла три открытых генератора картинок и три бенчмарка. Два бенчмарка про инфографику (BizGenEval и IGenBench: слайды, веб-страницы, постеры, графики). Третий (WISE) про общие знания, чтобы проверить, что метод не заточен под инфографику. Сравнивали с «голым» генератором, с другими агентными методами и с закрытыми системами, включая Nano-Banana-2.0, Seedream-5.0-Pro и GPT-Image-2.0.
Результат: на BizGenEval итоговый балл с одним генератором вырос с 22–28 до 51,1, а с другим — на 28,4 пункта, до 69,5. Это выше закрытых Nano-Banana-2.0 (68,5) и Seedream-5.0-Pro (65,7). На IGenBench точность по вопросам выросла с 0,72 до 0,84, а по целым картинкам — с 0,17 до 0,38, на уровне GPT-Image-2.0. Сильнейший конкурирующий агентный метод отстал на 23–26 пунктов.
Самое интересное — абляции (по очереди отключали части системы). Просто «6 попыток, берём лучшую» подняло балл с 28,0 до 34,7. Это намного ниже полной системы с 51,1. Значит, дело не в количестве попыток, а в диагнозе и выборе масштаба правки. Стратегия чемпиона дала 51,1, случайный выбор 40,4. Жёсткая замена на новое без сравнения дала 39,4–45,4. Качество росло с раундами: 46,4 → 48,1 → 51,1. Модели-детекторы и OCR как «глаза» проиграли сильной мультимодальной модели. Человеческая оценка подтвердила прирост: верификатор и официальные оценщики коррелировали с людьми на уровне 0,65–0,85.
Адаптации и экстраполяции
🔧 Техника: сохранять исходный промпт целиком и дописывать к нему блок исправлений → меньше дрейфа
В статье композер не переписывает промпт, а оставляет оригинал в начале и добавляет блок указаний. Это можно переносить на любые перегенерации:
{исходный промпт без изменений} ИСПРАВЬ В ЭТОЙ ВЕРСИИ (остальное не трогай): — {провал 1, в повелительной форме} — {провал 2}Эффект: то, что уже получилось, реже ломается при следующей попытке.
Экстраполяция: принцип чемпиона для текстов. В статье это про картинки, но логика переносится на правки текстовых черновиков (посты, письма клиентам):
У меня есть текст-чемпион и чек-лист из 8 пунктов (ДА/НЕТ).
1. Проверь чемпиона и посчитай ДА.
2. Сделай 3 варианта правки только проваленных пунктов.
3. Проверь каждый по чек-листу.
4. Замени чемпиона, только если у варианта ДА строго больше. При ничьей оставь старый.
5. Выведи, что отклонил и почему, чтобы не повторять.
Ресурсы
- Название работы: STRIDE: Scale-Aware Multi-Agent Evolutionary Refinement for Infographic Generation
- Код: https://github.com/SJTUSAI/Stride
- Авторы: Yan Zhou, Yang Yang (School of Artificial Intelligence, Shanghai Jiao Tong University)
- Бенчмарки: BizGenEval, IGenBench, WISE
- Упомянутые генераторы и агентные методы: ERNIE-Image, Infographic-V2, Qwen-Image-2512, PaperBanana, AutoFigure, Gen-Searcher, ReflectionFlow, T2I-Copilot
