Кто-то прикрепил изображение — открытку с русским текстом — и попросил на русском ту же открытку на турецком. Вернулись два изображения, оба оплаченные, на другом фоне, с буквами, не являвшимися словами ни на одном языке. Ответ описывал их на турецком как пришедшие «по ссылке ниже».
Одно сообщение, три отдельных сбоя. Ни один сам по себе не дал бы такого результата.
Дешёвая полоса не умеет писать буквы
Инструменты изображений по умолчанию запрашивают «среднее» качество, а средний запрос без предпочтения качества попадает в ветку роутера, отсортированную по цене, которая заканчивается на самой дешёвой активной модели изображений. Эта модель — диффузионная. Диффузионные модели очень хороши в картинках и печально известны плохими буквами — ещё хуже с буквами вне латинского алфавита.
Это хорошее умолчание для «лисы в лесу» и плохое для постера, приглашения, меню или открытки, где текст и есть результат. Такие запросы теперь покидают дешёвую полосу. Промпт читается на предмет признаков этого — фразы в кавычках, строки заглавными буквами, маркированные списки, ограниченный список слов для вещей, состоящих в основном из текста, на нескольких алфавитах — а у инструмента также есть явный флаг, который модель может выставить, когда знает это. Отрицания сначала удаляются, чтобы «без текста» не срабатывало. Любой из двух сигналов отправляет вызов в уровень качества. Какой уровень изображения вы получите — по-прежнему ваш выбор; это лишь решает, какой модели разрешено пытаться.
Модель, которая не видела изображение
Второй сбой хуже, потому что именно он произвёл абракадабру, а не просто посредственные буквы. Детекторы, распознающие «сделай мне картинку» и «измени эту картинку», были написаны для английского и турецкого. Фраза на русском не совпала ни с одним из них, поэтому реплика так и не была отмечена как требующая зрения, и попала к текстовой модели без зрения. Эта модель вызвала инструмент изображений с фразой в качестве промпта. Она рисовала с нуля то, что никогда не видела.
Для обоих добавлены русские шаблоны. Что важнее, добавлена защита от фразы, которая всё это вызвала: «такую же», «aynısını», «the same one», «как та, что я отправил». Когда запрос указывает на прикреплённое изображение, принудительная новая генерация — не небольшая ошибка. Это неверно, и это оплачивается.
Инструмент неправильно описывал сам себя
Третий сбой смешон самым простым образом. Описание инструмента изображений всё ещё утверждало, что инструмент редактирования «ещё не подключён» и что результат возвращается как ссылка. Ни то ни другое давно не было правдой. Поэтому модель избегала инструмента редактирования, который должна была использовать, а затем описывала встроенное изображение как ссылку.
Описания переписаны — что на самом деле делает каждый инструмент, что «та же открытка на другом языке» — это редактирование, что результат — изображение и никогда не ссылка, что модель не может его видеть, и что описание должно быть на языке пользователя. Каждый результат изображения теперь несёт подсказку, как о нём говорить.
Все три исправления закреплены тестами, дословно воспроизводящими исходные реплики, включая пограничные случаи, которые должны продолжать идти в дешёвую полосу.