TL;DR
TARA — метод, который чинит промпт для генерации картинки не одним универсальным «улучшением», а разными способами исправления для разных типов ошибок. Модель сначала находит, что конкретно не так на картинке (пропущенный объект, неверное количество, спутанные атрибуты, нечитаемый текст), а потом лечит каждую проблему своим приёмом.
Когда генератор изображений не слушается промпта, большинство инструментов чинят это одним и тем же способом — просто добавляют больше описательных слов. Но это работает плохо: если на картинке нарисовано 2 кота вместо 3, помогает не «больше деталей», а явное число и указание, что коты должны быть разделены и не слипаться. Если текст на вывеске нечитаем — нужна не общая фраза «красивый текст», а точная цитата в кавычках с указанием шрифта. Разные проблемы требуют разного языка исправления, а не одной формулы на все случаи.
TARA работает в 4 шага: диагностирует, что именно не выполнено на картинке; распределяет каждую находку в свой тип с готовым рецептом ремонта; собирает все точечные правки в один связный промпт; и генерирует картинку заново — но принимает результат только если он реально лучше оригинала, иначе откатывается к старой версии.
Схема метода
ШАГ 1: ДИАГНОСТИКА → разбить запрос на список конкретных проверяемых утверждений
("на картинке есть кот", "их ровно 3", "надпись читается как X")
→ сверить каждое с картинкой → список несовпадений с типом ошибки
ШАГ 2: РАСПРЕДЕЛЕНИЕ → каждой найденной ошибке присвоить тип-специфичный рецепт исправления
(счёт → явное число + "по отдельности"; текст → точная цитата в кавычках + шрифт;
объект → сделать заметным на переднем плане; отношение → чёткое указание расположения)
ШАГ 3: КОМПИЛЯЦИЯ → собрать все точечные правки в один финальный промпт,
не трогая то, что уже было верно
ШАГ 4: ГЕЙТ ПРИНЯТИЯ → сгенерировать картинку с новым промптом один раз,
сравнить с оригиналом → принять новую версию только если она лучше,
иначе вернуться к старой
Шаги 1–3 — текстовая работа с LLM (без генерации картинки). Шаг 4 требует одной генерации изображения в сервисе (DALL-E, Midjourney).
Пример применения
Задача: Вы делаете рекламный визуал в ChatGPT (с DALL-E) для小 магазина: «3 кота в разноцветных шапках (красная, синяя, жёлтая) сидят на диване, на стене вывеска с надписью "Скидка 50%"». Генератор почти всегда путает: рисует 2 кота, все шапки одного цвета, текст на вывеске превращается в кашу из букв.
Промпт (после генерации первой картинки, отправляете картинку обратно в чат):
Вот картинка, которую сгенерировал DALL-E по промпту:
«3 кота в разноцветных шапках (красная, синяя, жёлтая) сидят на диване,
на стене вывеска с надписью "Скидка 50%"»
Разбей этот промпт на список конкретных проверяемых утверждений
(сколько котов, какие цвета шапок у кого, есть ли вывеска, что на ней написано).
Проверь каждое утверждение на картинке. Для каждого несовпадения укажи ТИП ошибки:
неверное количество / неверный атрибут / отсутствующий объект / нечитаемый текст.
Теперь для каждой найденной ошибки предложи ТОЧЕЧНОЕ исправление конкретно под её тип:
- если количество — впиши явное число и слово "отдельно друг от друга"
- если атрибут — привяжи цвет к конкретному коту явно ("кот слева — в красной шапке")
- если текст — дай точную цитату в кавычках и слово "крупный чёткий шрифт"
Собери все исправления в один новый промпт, не убирая то, что уже было верно правильно.
Результат: LLM выдаст таблицу или список: что не совпало и какого типа ошибка, затем — переписанный промпт с точечными правками (не «добавь больше деталей», а конкретные фразы под каждую проблему). Вы генерируете картинку заново и сравниваете — если стало лучше, используете новую версию, если хуже — возвращаетесь к первой.
Почему это работает
Генераторы изображений (и LLM в целом) плохо реагируют на общие инструкции типа «сделай лучше» или «добавь деталей» — это не подсказывает что конкретно менять, модель просто добавляет случайные украшения.
Зато LLM отлично выполняет узкие, конкретные инструкции: если сказать «впиши точное число и раздели объекты» или «процитируй текст в кавычках» — модель это сделает прицельно.
TARA использует эту сильную сторону: вместо одной общей команды ремонта она разбивает проблему на типы и даёт под каждый тип свой узкий рецепт, а потом собирает все рецепты в единый промпт. Гейт принятия (шаг 4) защищает от того, что точечный ремонт случайно испортит то, что было верно — если новая версия хуже, метод просто её отбрасывает.
Рычаги управления: - Порог «уже почти правильно» (в оригинале 0.72) — если у вас картинка почти удалась, можно не переписывать промпт вообще, а просто попросить генератор попробовать с новым сидом - Набор типов ошибок — можно расширить под свою задачу (например, добавить тип «неверный ракурс» для фотографий продукта) - Критерий гейта — «лучше/хуже» можно заменить на свой чек-лист требований к финальной картинке
Шаблон промпта
Вот картинка, сгенерированная по промпту: «{исходный_промпт}»
1. Разбей промпт на список конкретных проверяемых утверждений.
2. Сверь каждое утверждение с картинкой. Отметь: выполнено / не выполнено.
3. Для каждого невыполненного пункта укажи тип ошибки:
- отсутствующий объект
- неверное количество
- неверный атрибут (цвет, размер, материал)
- неверное расположение/отношение между объектами
- нечитаемый или неверный текст
- несоответствие стиля
4. Для каждой ошибки дай ТОЧЕЧНОЕ исправление под её тип:
- количество → явное число + указание "раздельно"
- атрибут → привязка атрибута к конкретному объекту явно
- расположение → чёткое указание позиции ("слева от", "на фоне")
- текст → точная цитата в кавычках + требование к шрифту
- объект → сделать заметным, на переднем плане
5. Собери все исправления в один новый промпт.
Не убирай то, что уже было верно. Не добавляй ничего лишнего.
Подставьте {исходный_промпт} — ваш оригинальный запрос на генерацию изображения.
🚀 Быстрый старт — вставь в чат:
Вот шаблон TARA для исправления промптов генерации картинок.
Адаптируй под мою задачу: {опиши свою задачу и прикрепи картинку}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какую картинку вы получили и что в ней не так — потому что без этого невозможно определить типы ошибок и подобрать точечные исправления.
Ограничения
⚠️ Домен: метод создан для генерации изображений — типы ошибок (счёт, текст на картинке, атрибуты объектов) специфичны для этой задачи. Для чисто текстовых задач принцип переносим, но конкретные типы придётся придумывать самому.
⚠️ Нужен мультимодальный чат: метод требует, чтобы LLM могла «увидеть» картинку и сравнить её с требованиями. Работает в ChatGPT с DALL-E, но не в интерфейсах без такой функции.
⚠️ Гейт принятия требует объективного критерия: для картинок легко сказать «3 кота лучше, чем 2» — для более субъективных задач (например, тон текста) сравнение «лучше/хуже» работает менее надёжно.
Как исследовали
Исследователи прогнали TARA на двух бенчмарках (DSG и TIFA), четырёх генераторах картинок и с тремя случайными сидами — чтобы исключить случайность. Сравнивали с пятью существующими оптимизаторами промптов, включая лучшего конкурента VisualPrompter. TARA выиграл во всех восьми комбинациях бенчмарк-генератор, обогнав VisualPrompter на 5.6 и 2.6 пунктов точности — и при этом работал быстрее (16 секунд против 20 на промпт), потому что типизированные правки короче и точнее общих.
Самое любопытное: выигрыш TARA был больше всего именно на сложных промптах — там, где нужно было одновременно попасть в счёт, атрибут, расположение и текст. Это подтверждает главную идею: чем разнороднее требования, тем сильнее вредит один универсальный фикс, и тем больше выигрывает разделение по типам. Отдельная проверка на людях показала, что результаты TARA реально предпочитают в 58–62% случаев против оригинала — то есть метрика не оторвана от восприятия.
