Одно лицо каждый раз: как удержать внешность персонажа 18+
Автор: Команда Fellowi · · 6 мин чтения

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