Почему генераторы изображений вам отказывают и что там происходит на самом деле
Автор: Команда Fellowi · · 8 мин чтения

Есть особый сорт раздражения, который встречается только с генераторами изображений. Вы что-то пишете, обратно приходит пустота или сообщение настолько пресное, что означать может что угодно, и вы не понимаете: попросили запрещённое, сформулировали криво или поймали баг. Тогда вы наугад меняете слово и пробуете снова. Иногда это срабатывает - и это худший возможный исход, потому что вы только что выучили суеверие вместо факта.
Полезно понимать, что «генератор мне отказал» описывает как минимум три совершенно разные системы, сделанные разными людьми по разным причинам и ломающиеся по-разному. Как только вы начинаете их различать, загадка в основном исчезает, а изрядная часть отказов оказывается поправимой.
Слой первый: блок-лист по тексту
Самый дешёвый фильтр работает до того, как что-либо сгенерировано. Он читает ваш текст, сверяет со списком слов и шаблонов и отклоняет наотрез при совпадении. Именно этот слой даёт мгновенные отказы, обычно в пределах секунды после нажатия, и именно его чаще всего успешно обходят сменой лексики.
Он же самый грубый. Блок-листы не читают контекст, поэтому ловят огромное количество безобидной работы: анатомические термины в медицинской иллюстрации, обычные слова, которые где-то оказались сленгом, имена персонажей, совпавшие с чем-то посторонним. Каждый, кто пробовал сгенерировать мясную лавку или занятие по рисунку с натуры, с этим слоем знаком.
Примета - скорость и постоянство. Если запрос отклоняется мгновенно и отклоняется каждый раз совершенно одинаково, вы почти наверняка упёрлись в текстовый фильтр, а не во что-то связанное с изображением.
Слой второй: сама модель
Второй слой вообще не фильтр, поэтому и ведёт себя так странно. Современные модели обучают с предпочтением одних результатов и неприязнью к другим, поэтому запрос, от которого модель увели, не отклоняется - он тихо ухудшается. Вы просили одно, а получили соседнее: бледнее, одетее, неопределённее. Ничего о себе не объявило. Просто картинка вышла хуже, и почему - непонятно.
Именно этот слой заставляет людей думать, что они плохо пишут промпты. В каком-то смысле они не ошибаются, но дело не в словаре. Модель с ними торгуется, и последнее слово за ней.
Его же труднее всего убрать. Блок-лист поставщик удаляет за полдня. Откатить обучение - задача другого порядка, и поэтому даже по-настоящему разрешающие инструменты иногда упираются, а слово «без цензуры» стоит читать внимательно. Что оно может означать честно - в тексте о том, что на самом деле значит генератор без цензуры.
Слой третий: классификатор, который смотрит на результат
Третий слой работает, когда изображение уже существует. Отдельная модель смотрит на готовую картинку, ставит оценку и блокирует выдачу, если оценка перешла черту. Вы заплатили за отрисовку, отрисовка случилась, а потом кто-то другой решил, что вам её не отдадут.
Этот слой объясняет самое доводящее поведение во всей категории: один и тот же запрос проходит во вторник и падает в четверг. Генерация случайна. Запустите запрос дважды - получите две разные картинки. Если ваша просьба лежит где-то рядом с порогом классификатора, одна картинка его проходит, а другая нет. Вы ничего не сделали иначе. Иначе выпали кости.
Если вы когда-нибудь были уверены, что сервис ночью тихо затянул фильтры, обычно происходило именно это. Иногда поставщики действительно затягивают. Гораздо чаще вы всё время были на краю и заметили это в тот день, когда дважды подряд оказались не на той стороне.
Почему вам не говорят, какой слой сработал
Потому что конкретное сообщение об ошибке - это инструкция по обходу фильтра. Скажите человеку «слово X заблокировано», и вы научили его, что именно менять. Поэтому почти все сервисы отдают один расплывчатый отказ на все три причины, и в итоге добросовестный пользователь с безобидным запросом получает то же непроницаемое сообщение, что и тот, кто прощупывает дыры.
Размен защитимый и по-настоящему неприятный для того, кто на принимающей стороне. Он же объясняет, почему столько советов по промптам в интернете - фольклор: люди ищут закономерности в невидимой системе и передают друг другу ритуалы, которые однажды сработали.
Одна привычка, которая переживает все три слоя
Никогда не называйте то, чего не хотите видеть на картинке. «Без обнажёнки» кладёт обнажёнку в запрос, где первый слой может по ней сработать, второй её взвесит, а третий в итоге станет её искать. У моделей изображений нет надёжного понятия отрицания, поэтому отрицание читается как тема.
Мы выяснили это внутри собственной системы, а не из статьи. Ранняя версия инструкции, которую мы подставляем перед каждой генерацией, называла физический признак, чтобы его сохранить, - по сути там было написано, что человек лысый. Модель прочла это как то, что надо нарисовать, и начала выдавать лысых людей в разговорах с персонажами, у которых есть волосы. Починили тем, что перестали называть значения признаков вообще. Полный набор вытекающих отсюда привычек - в тексте о NSFW-промптах, которые действительно рисуются, а версия для аниме - в материале о том, почему аниме-стиль сопротивляется.
Что вместо этого делаем мы
В Fellowi отклоняются две вещи и будут отклоняться дальше: всё сексуальное с участием несовершеннолетних и всё, что изображает отсутствие согласия. Это весь список, это не регулятор, и ни один тариф его не открывает. Остальное между взрослыми разрешено - именно поэтому нам ничего не стоит назвать границы так прямо.
Для всего, что не относится к этим двум пунктам, принцип такой: сбой не должен вам стоить. Если запрос не вернулся, мы один раз пробуем смягчённую версию вашей же формулировки, а если не выходит и она, монеты автоматически возвращаются в кошелёк. Вы не платите за право угадывать. Именно эта политика делает переписывание запроса разумной реакцией на отказ - вместо того чтобы беречь идеи и пробовать самую скучную версию каждой.
Если вы воевали с генератором, который не говорит, что ему не нравится, честная проверка - пойти и попросить то, что вы действительно хотели: откройте генератор или сперва прочитайте нашу политику человеческим языком на странице генератора 18+.