Олег Макаренко (olegmakarenko.ru) wrote,
Олег Макаренко
olegmakarenko.ru

Categories:

Как рисовать картинки нейросетью Стейбл Диффужн



По многочисленным просьбам радиослушателей, рассказываю, как получать от специально обученного робота забавные картинки на вольную тему — типа той, которую я прикрепил к посту. Кстати, с Теслой всё хорошо. Аппетит пришёл в норму, живёт нормальной кошачьей жизнью. Спасибо капитализму, нужный корм и нужные лекарства в ветклиниках есть.

Так вот, про нейросеть. Сейчас больше известна нейросеть Миджорни (Midjourney), однако она платная и неудобная, так как работает через молодёжный Дискорд. У меня есть деньги, но мне не нравится вот это ощущение счётчика, когда ты знаешь, что купил определённое количество картинок, и каждое нажатие кнопки «генерировать» обходится тебе во столько-то рублей. Поэтому я установил себе другую нейросеть, Стейбл Диффужн (Stable Diffusion), и играю с ней в безлимитном режиме, прямо на своём компьютере.

Вот инструкция по установке (ссылка). Всё бесплатно, хотя авторы и просят донат, на что, мне кажется, имеют полные моральные основания. Минимальные требования к работе — GeForce 10XX. Современные карты от AMD тоже работают (ссылка).

На моей карте (3090Ti) робот шуршит довольно быстро, генерируя одно фото за 3 секунды, однако диспетчер задач показывает, что видеокарта загружается при этом на несколько процентов. Подозреваю, что есть какой-то способ загрузить карту на 100%, и тогда нейросеть будет выплёвывать новые фото со скоростью печатного пресса, но мне этот способ неизвестен.

По настройкам я рекомендую поставить Generation Steps на 35, а Prompt Guidance — на 8. Первый параметр — число шагов, которые нейросеть сделает, всё глубже и глубже перерисовывая придуманную картинку. Если он низкий, получится слишком просто и туманно, если большой — слишком абстрактно. Второй параметр — позволенный роботу уровень свободомыслия. Чем выше, тем ближе к вашему запросу робот попытается сделать рисунок.

На практике, повторюсь, я рекомендую поставить 35 на 8 и дёргать ползунки только тогда, когда робот почти сгенерил уже что-то подходящее, и вы хотите слегка изменить полученную картину, чтобы превратить хороший результат в идеальный. Тогда можно переставить ползунки, например, на 45/8 или 40/10, а потом нажать на картинку другой кнопкой мыши и выбрать Re-Generate image with current settings. Нейросеть слегка перерисует картинку, возможно, продвинувшись в нужную вам сторону.

Переходим к запросам, которые вы пишете сверху слева, на английском языке, разделяя разные части запроса запятыми. Нарисуем, к примеру, кота. Пишем так:

- cat (кошка)
- steampunk (стиль)
- small street (задняя сцена)
- green (цветовая гамма)
- intricately detailed (замысловато детализированно)

Запрос: «cat, steampunk, small street, green, intricately detailed»



Как видите, получается несколько простовато, как на проходной иллюстрации из старой цветной газеты. Добавим «by greg rutkowski», чтобы нейросеть сделала нам что-то в стиле Грега Рутковски, известного современного художника. Сразу выходит гораздо интереснее.

Запрос: «cat, steampunk, small street, green, intricately detailed, by greg rutkowski».



Ах, да, по умолчанию нейросеть делает изображение 512 на 512, и я советую не тратить время на попытки генерировать фото другого размера. Сначала добейтесь нужного вам результата на разрешении 512х512, а потом жмите другой мышкой, выбирайте «Post-Process Image, Apply Upscaling», и робот улучшит вам картинку до 1024х1024. Если вам внезапно нужен прямоугольник, то, нащупав на стандартных 512х512 хороший запрос, измените пропорции фото и генерите уже прямоугольники. С прямоугольниками нейросеть работает гораздо хуже, так что вы можете попросить ей, например, сделать сразу 100 фото (Amount Of Images To Generate) и уйти пить чай, а потом вернуться и быстро всё отсмотреть.

Но, повторюсь, я рекомендую не тратить время — квадрат 512х512, который одним движением детализируется до 1024х1024, для большинства целей достаточно хорош.

Итак, мы сделали стимпанковскую кошку. Добавим в запрос ещё кое-что — словосочетание «epic portrait» (эпический портрет), чтобы получить мощную, воодушевляющую композицию.

Запрос: «cat, steampunk, small street, green, intricately detailed, by greg rutkowski, epic portrait»



Перейдём для разнообразия в другой сеттинг. Сделаем кошку, пасущуюся на солнечном лугу (sunny meadow). Добавим также ей роскошную гриву (gorgeous mane) — уточнение, которое отлично подходит к большинству запросов.

Запрос: «cat, sunny meadow, gorgeous mane, intricately detailed»



Опять не то — как любительское фото дачной кошки, испорченное неумелым фотошопом. Добавим «by Sir Peter Paul Rubens» (в стиле Рубенса). Конечно, я мог бы добавить и любого другого известного художника, от Петрова-Водкина до Боттичелли, нейросеть знает их всех.

Запрос: «cat, sunny meadow, gorgeous mane, intricately detailed, by Sir Peter Paul Rubens»



Перенесём нашу кошку в фантастический лес, изменим сцену на «dark forest» (тёмный лес), добавим «sunshine» (солнечный свет) и fantasy world (вымышленный мир). Наконец, добавим «by Artgerm», это ещё один художник.

Запрос: «cat, gorgeous mane, dark forest, sunshine, intricately detailed, fantasy world, by Artgerm»



С руками, как видите, незадача — это слабое место как настоящих художников, так и нейросетей. Можно взять эту картинку за основу и подёргать ползунок Generation Steps (как я указывал выше, потом надо выбрать Re-Generate Image With Current Settings). Конкретно с этой картинкой, впрочем, ничего хорошего у меня не вышло.



Интересные результаты даёт иногда слово Russian в запросе. Я добавил также к нему uniform (униформа) и fantasy digital art (цифровое искусство в стиле фэнтези). Вообще, сочетание «fantasy digital art» включите в свой арсенал, оно делает картинки более стильными.

Запрос: «russian cat, uniform, intricately detailed, epic portrait, fantasy digital art»



Наконец, попробуем скрестить кошку со свиньёй, перенеся место действия на цветочный луг.

Запрос: «halfpig cat, flower meadow, epic portrait, fantasy digital art, intricately detailed».



Пожалуй, на сегодня хватит запросов, дальше уже пора испачкать руки в грязи и провести несколько экспериментов лично. Вот имена художников, стили которых вам, возможно, придутся по душе. Разумеется, их можно смешивать в одном запросе, указывая сразу нескольких:

- by Gustav Klimt
- by Nixeu
- by Wlop
- by Krenz Cushart
- by Artgerm
- by Greg Rutkowski
- by Alfons Mucha
- by Cameron Gray
- by John Gould
- by Weta Digital

Также попробуйте «saturated» (насыщенно) и «riot of colors» (буйство красок). Если получится что-то интересное, выкладывайте в комментарии, вот прямо в разрешении 1024х1024. И обязательно пишите текст запроса, чтобы мы понимали, как вам это удалось.


Обновление от 14 декабря 2022. Иногда при увеличении до 1024х1024 получается мыло, исчезает мелкая текстура типа волос в бороде. Чтобы этого избежать, можно поступить так.

1. Нащупайте хороший запрос в стандартных 512х512.
2. Установите 1024х1024, поставьте галочку High Resolution Fix, чтобы было меньше дублей внутри картинки.
3. Прикажите роботу генерировать 25-50 картинок сразу.
4. Идите пить чай.
5. Когда робот закончит, выбирайте удачные картинки.

Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 84 comments