Stable Diffusion
March 22, 2023

SD: протокол эксперимента

В следующий раз попрошу чат GPT написать текст за меня, чтобы не тратить время.

Легенды гласят, что если дописать и выложить все черновики моих статей, то неизлечимые болезни излечатся, слепые прозреют, безногие пойдут и наступит мир во всем мире и, наверное, вообще не надо будет умирать. В общем, фантастический и невозможный сценарий. Дабы этот текст не постигла та же участь обреченного пребывания в состоянии similar to a constant state of sleep paralysis, not quite dead, not quite alive, он будет дописана до актуальной стадии и выпущен с поставленной точкой. Если появится надобность в продолжении, то я сделаю это отдельным текстом и, вероятно, довольно нескоро.

Stable Diffusion, история одной генерации

Я продолжаю постигать прекрасный мир ai-арта, пробуя его на вкус и попеременно ведя внутренние диалоги о приемлемой степени его использования и допустимых путях интеграции в свои пайплайны. Четких ответов тут не будет (если вдруг вы их ждете), я вообще не тот человек, который должен их раздавать. Я просто хочу рассказать о процессе создания одной генерации (пока даже не картинки), ибо вероятно, я буду дорабатывать ее позднее, но пока плохо представляю себе, как именно.

Далее процесс будет описан по шагам, от идеи до актуальной на сегодня стадии прогресса. Я не призываю относиться к этому, как к туториалу, потому что я все еще новичок в использовании нейронок и не знаю всего инструментария. Скорее это просто описание одного "эксперимента" и короткий экскурс в возможности Stable Diffusion.

APRÉS LE MONDE - LE GRIS; APRÉS LE GRIS - LE MONDE DE NOUVEAU

After life, death. After death, life again! After the world, the pale. After the pale, the world again!

Я все еще не могу оправиться от эффекта этих двух сцен из Disco Elysium (хотя игру я прошла больше полутора лет назад). Я постараюсь тут долго не расписывать, что и как, лучше поиграйте и переживите эту травму все сами.

Сцена нормер "раз"
Сцена номер "два"

Долорес Деи (как историческая фигура во вселенной игры, так и фигура-метафоры величайщей потери в жизни главного героя) с безумным наративом двойственности (a ruler or a tyrant?), блаженство или наказание, с оттенком нечеловеческого, недостижимого и непостижимого, well I just fucking love shit like this, what more can I say?

Естественно, при столкновении с "невыразимым" появляется желание облечь его в форму. Если хотя бы не его само, то свой собственный, пережитый вайб.

Машина не может написать симфонию, но и ты тоже

Все в целом началось со скетча, чтобы поймать этот самый вайб. Его я приложу вам в маленьком формате тут. Чего хотелось в целом: много складочек, летящие ткани и заигрывания с тональностью эпохи возрождения с их отсылками на античные и религиозные сюжеты. По поводу заднего фона я не думала вообще (не хотелось с наскока ставить себе амбициозную задачу, которая в процессе вызовет у меня очередной приступ разочарования в себе). В целом наброском я была довольна, но что делать с ним дальше представляла плохо, поэтому отложила до лучших времен.

Она как бы зовет тебя за собой, но в то же самое время отдаляется. К сожалению, этот нарратив оказался впоследствии утерян.
Желаемый вайб. НУ ДАВАЙТЕ ТОЛЬКО НЕ ВОСПРИНИМАТЬ ВСЕ СЛИШКОМ БУКВАЛЬНО, А

Но к сожалению, меня и мое творчество не спонсирует богатый Венецианский купец, да и, почему-то никто не додумался отдать меня в 4 года в подмастерья к какому-нибудь светиле живописи всея Италии, поэтому пришлось ходить к Фрязинским мастерам изобразительных искуств. Браться за что-то амбициозное не хотелось, равно как и вешать на себя еще один монументальный долгострой, от которого я перегорю быстре, чем доведу его до какой-то адекватной стадии. И как-то все это удачно совпало с тем, что в студии, где я работаю, начали всерьез обучать работе с нейросетками. И я подумала, совместить приятное с полезным.

Shit, you're right

Бог из машины

Я использовала ArtBreeder, чтобы получить совпадающий с моим видением референс лица, на который я смогу опираться в дальнейшей проработке образа. Сделала я это еще на стадии скетча.

Мне в целом хотелось получить довольно миловидную внешность с пронзительным взглядом, но какими-нибудь малюсенькими imperfections (довольно большой лоб, оттопыренные уши и небольшая ассиметрия губ).

Далее я перешла в работу со Stable Diffusion. Использовала модель deliberate_v2. Для начала просто начала брейнштормить промптами через text2img. Ниже - довольно небольшая часть всех первоначальных генераций, на самом деле их было раза в 2 или 3 больше. Изначально была попытка как-то добиться похожей на скетч позы, но объяснить это машине оказалось сложно, и я полностью переключилась на работу с новыми результатами.

Опытным путем выяснила, что когда копипастишь простыню негативных промптов с Playground (они там +- одинаковые), то лицо персонажа моментально становится гораздо моложе и максимально barbie-like, что мне было абсолютно не нужно. Поэтому я отказалась от использования копипасты и в дальнейшем негативные промпты прописывала уже самостоятельно.

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

Параметры для генерации в текстовом формате:
Prompt: woman, young, standing, princess, pretty, white dress, (french revolution leader:0,4), stretches out her hand to you, long hair, wind, blond hair, (ancient greek dress), virgo, heavy gold crown, full body, red, angelic, light behind her back
Negative prompt: no wings (это чтобы конкретизировать angelic)
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 156456, Size: 712x992, Model hash: 9aba26abdf, Model: deliberate_v2

Далее я перекинула эту же картинку в img2img и накинула сверху тот же самый набор промптов, который я использовала для первоначальной генерации.

Изменения в промптах я сделала минимальные, они выделены жирным.

woman, young, oil painting, young, standing, princess, pretty, white dress, (french revolution leader:0,4), stretches out her hand to you, long hair, wind, blond hair, (ancient greek dress), virgo, heavy gold crown, full body, red, angelic, light behind her back, naked chest (для варинтов с голой грудью.)
Negative prompt: no wings (это чтобы конкретизировать angelic)
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 156456, Size: 712x992, Model hash: 9aba26abdf, Model: deliberate_v2, Denoising strength: 0.75, Mask blur: 2

Затем, в фотошопе я совместила три понравившихся мне варианта в один, подмазала лишнее масками, на скорую руку увеличила формат изображения в высоту, чтобы корона не обрезалась, а так же бахнула поверх референсное лицо из Артбридера. Снова запихнула в img2img, накрутила поверх свеже-скачанную лору для стиля под маслянную живопись и села довольная ждать результат.

Но, оказалось, что лора "под масло" в сочетании с deliberate-моделью довольно сильно изменяет лицо героини (в анимешную лоли-сторону), что в целом было ожидаемо и абсолютно мне не подходило. Тогда я решила прогнать лицо отдельно, без использования этой лоры.

oil painting, beautiful face, rough oil style, classical french painting, blond hair, white hair
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 156456, Size: 712x720, Model hash: 9aba26abdf, Model: deliberate_v2, Denoising strength: 0.27, Mask blur: 2

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

Если вдруг кто-то задается вопросом почему на некоторых картинках у героини открыта грудь, то это потому что в классической живописи открытая женская грудь считалась символом молодости и юности (по очень тупой причине: типа если грудь выглядит збс, то женщине не приходилось кормить ей ребенка). Плюс, еще открытая грудь считается символом "материнского начала". Здесь же я скорее играю с темой "материнства" не в биологическом, но в духовном смысле. В общем, этот текст про Stable Diffusion, а не про мою любовь к символизму для эстетов, так что let's stop there.

На этом первый этап можно считать завершенным. Все три результата мне нравились и я отправилась спать и отдыхать.

Ок, а что если?

Не смотря на уже полученный descent-результат, мне не давала покоя вот эта вот 6гб модель для генерации картинок в стиле масляной живописи. И я решила продолжить свои эксперименты и посмотреть, можно ли усилить эффект масляных мазков на картинке, которую я сгенерировала ранее. Начать я решила с лица, использования новой модели и накрученной сверху маслянной Лорой (все в разных сочетаниях и с разными настройками, опять же показываю только избранные генерации). Выходили неплохие изображения, но к сожалению, со стилем тела новые лица не сочетались абсолютно.

Снова столкнулась с тем, что эта лора очень сильно молодит лицо.

Тогда я решила взять результаты экспериментов предыдущего дня, а так же одну из тех, что я использовала как расходник для маттпейнтинга (с голой грудью) и попробовать поколдовать уже с ними, но с новой моделью (и лорой поверх). Везде сразу же поехали лица, но ткань складок стала более воздушная, а материал более легкий и не таким плотным и монументальным по проработке, как предыдущие генерации.

oil painting, beautiful face, rough oil style, classical french painting, blond hair, white hair, woman, young, standing, princess, pretty, white dress, (french revolution leader:0,4), stretches out her hand to you, long hair, wind, blond hair, (ancient greek dress), virgo, heavy gold crown, full body, red, angelic, light behind her back, red vest, naked right chest
<lora:oilPaintingStyleLora_viscuit12:0.1> (та самая лора)
Negative prompt: bright colors, young, child, deformed arms, mutated fingers, mutated arms
Steps: 20, Sampler: Euler a, CFG scale: 2.5, Seed: 339652382, Size: 736x1072, Model hash: 9da0c2b94d, Model: oilPainting_oilPaintingV10 (а это модель, натренированная под масло), Denoising strength: 0.15, Mask blur: 4

Однако, лицо нужно было снова исправлять. Для этого я в фотошопе совместила его с теми вариантами, которые удалось достичь с помошью лоры. Результат (он слева, самая первая картинка) получился более нежным и человечным, чем жесткий и четкий вариант прошлого дня (справа, последняя картинка в ряду). Однако, при подстановке нового "мягкого" лица в новые генерации, оказалось, что абсолютно все стало "воздушным", все части фигуры потерли четкость и ничего в картинке больше не является центром притяжения внимания. Поэтому было решено оставить старый более жестко-выписанный вариант лица (последняя картинка).

вот они слева направо: Намджун, Чонгук, Чингачгук, Гойко, Митич, Джин, Юнги

Итого, у меня сейчас есть два результата, которые мне относительно нравятся (это генерации первого дня с жесткими складками) и генерация второго дня с более мягкими складками, но с акцентом на лицо (хотя, конечно, такой же акцент хочется добавить еще куда-нибудь, например на руку на переднем плане).

Что дальше? Неплохо будет поработать с бекграундом (попробовать сделать генерацию), затем уже вручную вписать туда фигуру и доработать руками поверх, исправляя машинные косяки, переделать руки, разобраться со складками, причесав адскую мешанину выходящую из под пояса и много всего другого.

В целом, нейронки-это крутой инструмент, позволяющий быстро делать штуки на которые в реальности у меня бы ушло несколько месяцев кропотливой работы. Я все еще не могу дать четкого ответа на вопрос о том является ли такой метод читерством и насколько этично его использовать. Но, эта технология уже здесь и закрывать на это глаза стало слишком сложно и достаточно глупо.

Спасибо за внимание!