Наверное, даже те, кто довольно далек от темы нейросетей, слышали о том, что на сгенерированных искусственным интеллектом картинках очень плохо выходят руки – рандомное количество пальцев, слишком длинные и не пропорциональные, правые вместо левых и наоборот. Даже совет есть, чтобы распознать сгенерированные нейросетями картинки нужно смотреть на руки. В целом, сейчас уже дела обстоят чуть получше, хотя до идеала еще очень далеко.
Руки – это очень широко известная проблема, но есть еще множество менее обсуждаемых, которые вылезают в процессе решения конкретных задач. Так, пробуя делать обложки к отдельным частям цикла рассказов «Учитель года, или Китайские приключения Ивана», я выяснила, что наиболее сложно создавать изображения с несколькими персонажами, особенно, если это персонажи разных национальностей. Выявилось несколько типичных проблем, каждую из которых сейчас опишу и, конечно же, подкреплю конкретными примерами изображений.
Приведенные далее примеры картинок не являются обложками к рассказам, они, как правило, соответствуют общему стилю изображений, но не подошли по множеству разных причин, и в основном иллюстрируют как раз то, какими обложки видеть не хотелось бы
Проблемы со счетом – количество персонажей непредсказуемо
Поскольку цикл рассказов про «Учителя года» посвящен русскому преподавателю английского для китайских детей, на обложках некоторых частей китайские дети обязаны были появиться. И вот тут-то обнаружилась проблема – можно сколько угодно писать в промте, какое именно количество китайских детей ты хочешь увидеть на картинке, но на итоговый результат это практически не влияет. Покажу, почему вообще я начала прямо четко прописывать количество этих самых детей. Потому что, если просто пытаться нарисовать «русского парня, который ведет урок английского для китайских детей», то получается примерно вот это:
Несмотря на то, что в истории главный герой вел уроки даже в детских садах, такое количество детей на картинке – явный перебор. Кроме того, чем больше персонажей, тем более искажены и неразборчивы лица, чего тоже совсем не хотелось бы. Поэтому, чтобы получить более приемлемый результат, нужно четко прописывать количество детей, но и это не стопроцентный способ, потому что и написав «три ребенка» можно на готовой картинке увидеть десять, но все же в некоторых вариантах будет более близкое к прописанному количество персонажей.
Несколько однотипных персонажей сделать проще, чем разноплановых
Вот это для меня оказалось неожиданностью. Например, для одной из частей нужно было сделать обложку, на которой будут изображены маленькие китайские девочки, которые ходят на занятия для юных моделей. Подходящий вариант получился не сразу, но вопрос скорее был в правильном антураже, сами девчонки-модели получались вполне хорошо, как потом выяснилось, именно потому, что похожи друг на друга:
А вот когда для другой части понадобилось изобразить главного героя в ресторане с коллегами – дамой-директором школы английского и ее помощницей – оказалось, что это совсем не просто. Несмотря на то, что в промте было четко прописано, кто именно и в чем должен быть на картинке, нейросеть постоянно подбрасывала сюрпризы. Промт: a single young Russian guy in an aquamarine sweatshirt and jeans, sitting at the round table in a Chinese restaurant, smiling and talking to a 50-years-old Chinese woman wearing black suit and a pretty 25-years-old Chinese woman wearing dress. И вот такие результаты, то нарисует двух русских ребят и одну китаянку, то мужчину вместо женщины, то еще чего:
Кстати, обратите внимание на эмоции – они у всех одинаковые, несмотря на то, что в промте приписаны только главному герою, и так постоянно. После массы итераций получить что-то похожее на то, что прописано в промте, все-таки можно. Но вот сделать так, что бы на итоговой картинке были женщины заметно разных возрастов у меня так и не получилось.
Тип и цвет одежды часто становятся одинаковыми для всех персонажей
Почти во всех обложках, в которых присутствуют несколько персонажей, можно заметить, что все они одеты если не одинаково, то очень похоже. Или цветовая гамма, или тип, или стиль одежды прямо-таки очень близкие. Это не специально, это часто получается само собой, так как даже если четко прописывать в промте, какой персонаж во что одет, как правило, тип и цвет одежды первого описанного персонажа «размажется» на всех остальных. Вот примеры, присмотритесь к ним повнимательнее, и сразу станет ясно, о чем идет речь:
Можно, конечно, считать, что однотипная одежда персонажей добавляет визуальной гармонии изображениям, но все-таки хотелось бы более близких к заданному описанию результатов.
Смешивание характеристик разных персонажей
На самом деле, не только одежда становится одинаковой. Цвет волос, наличие очков, даже национальность перемешиваются непредсказуемо между всеми персонажами на изображении. Если прописать, что один из персонажей носит очки, то с большой долей вероятности очки окажутся и у всех остальных. С национальностью еще сложнее, например, желая изобразить рядом русского и китайца, можно с равной вероятностью получить как двух русских или двух китайцев, так и одного полурусского-полукитайца. С учетом всего этого, обложка для той части китайского цикла, где главный герой едет в другой город на встречу с китайским бизнесменом, оказалась самой сложной. Нужно было не только получить похожего самого на себя главного героя, но и соответствующих описанию китайского владельца сети языковых школ и его переводчицу. А нейросеть постоянно выдавала что-то в этом духе:
Ко всем описанным выше проблемам добавляется также частое «задваивание» персонажа, то есть вместо одного появляются сразу два почти одинаковых. Такое встречается и когда генерируешь изображение с одним героем, но когда персонажей должно быть несколько, «задваивание» кого-то из них встречается чаще (как правило, дублируется персонаж, описанный в промте первым). А уж про неадекватную анатомию я вообще молчу, это сплошь и рядом, но этой проблемой изображений, сгенерированных искусственным интеллектом, никого не удивишь.
Итог: что можно сделать, чтобы все-таки получить адекватный результат
Описанные здесь трудности при генерации изображений с несколькими персонажами – это только те, с которыми столкнулась я, создавая обложки или другие изображения. Наверняка, есть еще много других подводных камней. При этом, получить в итоге какие-то приемлемые картинки из всей массы неподходящих вариантов все-таки удается. Как правило, помогает что-то из этого:
- Описывать в промте каждого персонажа (как выглядит и во что одет), и делать огромное количество генераций в ожидании того, что случай подкинет удачное сочетание характеристик персонажей на картинке. С этого все и начинается, и может получится как надо, но каждая генерация стоит какого-то количества кредитов, и когда-нибудь они просто закончатся, если нет оплаченного безлимитного аккаунта.
- Пробовать менять местами описания персонажей, это дает возможность получить несколько другие результаты, но будут ли они подходящими – это, конечно, большой вопрос.
- Менять изображение по частям. Получив хотя бы одного подходящего персонажа, можно пробовать изменять лицо или одежду других персонажей, переделывая только часть изображения с каким-то конкретным персонажем. Причем, можно даже пробовать менять только часть лица конкретного персонажа, например, глаза или нос.
Мне в большинстве случаев приходилось использовать все три подхода по очереди, и результата добиться все-таки удалось. Скорее всего, есть какие-то еще советы или хитрости, я бы с радостью о них узнала. Примеры неподходящих изображений мы уже посмотрели, а те, которые в итоге были доведены до приемлемого вида, стали обложками для разных частей цикла рассказов про приключения русского учителя английского в Китае, которые собраны в подборке:
Читайте истории, смотрите картинки, не останавливайтесь, если что-то не получается сразу :)