sfw
nsfw

Результаты поиска по запросу "как добавить два изображения в один пост"

Фоны старых квестов — методы разработки, секреты, советы

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Сегодня мы исследуем вопрос разработки фонов «как в старых адвенчурах». Это не совсем то, чего вы от меня ожидали. Однако, очередная часть «Галопа Пикселя» задерживается по двум серьезным причинам. Во-первых, главы посвященные анимации требуют — качественной анимации, иначе они не смогут претендовать на лавры материала обучающего. Во-вторых, «галопу» необходима ещё одна публикация до начала цикла об анимации, который уже находится в разработке. Связано это с тем, что я занимаюсь не только классическим пиксель-артом, но и тем, что выходит за пределы канонических разрешений, и у меня, определенно, есть чем поделиться. К сожалению, такой тип пиксель-арта сейчас более моден, чем классика, если судить по откликам публики.

Давайте, впрочем, вернемся к теме сегодняшней публикации. Считаю это маленьким открытием, и мне непременно нужно поделиться им с теми, кто собирается соединить некоторый отрезок своей жизни с тем, что может называться классической адвенчурой. Быть может это поможет вернуть на рынок игры, которые немного оттеснят «хипстерский пиксель» заменив его на то, что может напомнить времена лучших игр от «Westwood Studios», «Sierra» и «Lucas Arts». Предположу вскользь, что множество художников и так знают это. И, тем не менее — я не заметил публикаций на эту тему. Наша братия не спешит делиться своими секретами, сохраняя некую монополию на собственные открытия.

Я хотел приурочить эту статью к началу разработки собственной адвенчуры. Но кто знает, когда это произойдет? А вам эта информация может помочь уже сейчас. Стоит ли откладывать? Думаю, что нет. Лопаты в руки.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой

Прелюдия


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

Поскольку я не одобряю мимолетные связи, мой взор всё чаще устремляется назад в прошлое. И чем дальше я двигаюсь по реке времени, тем слаще и притягательней для меня становится то, что я называю классикой. Классика в моём понимании – игры до того момента когда весь мир перешел на режим SVGA, отчалив и навеки покинув обитель разрешения меньшего — VGA. Чаще всего игры того времени использовали разрешение 320х200 пикселей.

Меня всегда занимал вопрос – как именно делались эти фоны. В качестве примера я приведу изображения из игр «Westwood Studios». Это мой фаворит. Контора, повлиявшая на мое творчество настолько сильно, что я решил делать игры именно в этом стиле. Художники которой определили вид и цвета моих работ на десятки лет вперед. Я часто слышал об этих фонах – «какой изумительный пиксель-арт».

Давайте сразу перейдем к кульминации не характерной для моих публикаций. Я не уверен, что это чистый пиксель-арт. К этому выводу я пришел два месяца назад. Пришел окончательно. Сформировал объяснение. Выработал сходную технику. Сейчас я представлю вам свои наработки, а вы определите для себя, прав я или нет. Хочу сразу отметить, что это относится только к фонам. Вне сомнения интерфейс игр, оформление, шрифты, игровые персонажи и их анимация – это стопроцентный пиксель-арт, не разбавленный и хорошей крепости. Здесь у меня сомнений нет. И даже если я ошибаюсь в своей теории, это никак не помешает вам делать фоны похожие на фоны старых игр.

В качестве точки опоры мы возьмем несколько изображений из легендарных игр «Legend of Kyrandia» и «Lands of Lore». Я считаю их пиковыми на тот момент, с точки зрения проработки арта, с точки зрения анимации и цвета. Не говоря уже о техническом исполнении.

Spark
Freeze Lightning Fireball Hand of Fate Mist of Doom
I have need of a champion. Who among you Mill ; volunteer to serve me?
flk'shel Michael
Kieran Conrad
Protection:
Might:,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Мягкие теплые цвета, плавные градиенты и удивительная проработка мельчайших нюансов мимики. Вот, что отличает эти работы. Я очень долго пытался воспроизводить их в оригинальном разрешении – и у меня ничего не получалось. Всегда была заметна разница. Мои изображения не дотягивали до точности художников Вествуда. Там, как говориться, «каждый пиксель лежал на своём месте», всегда был нужного цвета и нигде не отмечалось явного диссонанса между цветами.

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

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

Путь


Давайте быстро проанализируем то, чем характерен пиксель-арт и чем характерны изображения старых игр. Во-первых – лимитированная палитра, редко выходившая за 256 цветов в один момент времени на экране. Во-вторых – резкие формы с фактически ручным сглаживанием в несколько пикселей по контурам этих резких форм. В-третьих, разрешение 320х200. Как нам получить нечто подобное?

Первое что приходит на ум – уменьшить изображение. Давайте проведем эксперимент. Возьмем одну из моих ранних работ. И уменьшим её.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Автоматическое сглаживание и фильтрация сохраняют картинку максимально приближенной к исходнику. Но это не сильно напоминает графику старых игр (уменьшенные изображения выведены с увеличением 2x чтобы вы могли видеть результаты более наглядно).

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Теперь пробуем сохранить изображение в индексированной палитре посредством сохранения изображений для сети (Save as Web). Сколько бы мы не выбирали цвета – это не дает нам необходимого изображения, хотя оно и похоже на нечто старое. Весьма отдаленно, надо отметить. Даже если сохранить Джима в 32-ух цветах, он никак не напоминает пиксель-арт.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Существует режим фильтрации – без сглаживания. Иначе Nearest Neighbor (preserve hard edges). То есть изображение сохраняется максимально близким к оригиналу. Без сглаживания, без адаптации изображения. Без какой-либо фильтрации.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Примечание: Это ваша дверь в мир старого. Не то чтобы она сразу доведет куда нужно, но без неё точно не обойтись. Никак.
,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Результат уже лучше. Мы, по крайней мере, избавились от нехарактерного для пиксель-арта сглаживания. Снова сохраняем изображение с индексированной палитрой.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Парадоксальность ситуации заключается в том, что если вы получаете пиксель-арт из изображения или подготовленного вами арта – вы негодяй и жулик. Но если вы сделаете тоже самое в стиле «pixel by pixel» то вы будете молодцом и хорошим парнем, который намучался порядочно, но смог сделать такую-же работу, маниакально выставляя пиксель за пикселем на виртуальный холст. Разумеется преобразованное таким образом изображение ещё не пиксель-арт, любой артист работает аккуратнее делая всё руками. И тем не менее… допустим вы разработчик игр. У вас жмут сроки, и вам нужно выпустить продукт через месяц. Есть кто-то кто полагает, что ваши крики «зато я сделал всё честно» будут волновать окружающую вас публику? Волновать вашего потребителя? Ему и дела нет, как и что вы делаете. Зато он легко скушает вас с селёдочкой под водочку, и даже не поперхнётся если вы сваляете дурака, и задержите релиз.

Таким образом изготовление пиксель-арта для доказательства, что ваш пиксель больше, и изготовление пиксель-арта, как контента поставленного на поток в рамках разработки масштабного проекта – две больших разницы. Никому не надо честно. Надо в срок, по хорошей цене, чтобы у потребителя карман не треснул, и чтобы вкусно было. Именно в срок и вкусно привело меня к мысли озвученной выше. О том, что изображения старых игр частенько готовились на базе арта.

Теоретически Джима можно было бы превратить в пиксель-арт, просто поработав с изображением. Через три-четыре часа он бы стал совершенно другим. Но задача у нас поставлена другая. Нам необходимо понять, как именно делались фоны для старых адвенчур, а не сделать нечто похожее, существенно доработав затем полученный результат. У меня довольно давно появилась уверенность, что изображения практически не обрабатывались дополнительно, потому как это удлинило бы цикл разработки игры, а это – не выгодно. Самый главный мотив разработчика – выгода. Самый главный мотив – время разработки и отсутствие промежуточных этапов. Понятие выгоды можно трактовать как угодно. И это не обязательно денежная или материальная выгода. Потратил на разработку контента меньше времени, освободил два или три месяца на другую задачу – выгода.

К чему это нас приводит? К понимаю того факта, что исходная картинка выполнена – не так. Не в том художественном стиле, который бы при сжатии стал бы выглядеть как старые фоны. Что остается в этом случае, учитывая, что при уменьшении любого арта штрихи усредняются, и не представляется возможным опознать, каким именно образом была создана работа? Каким был исходник. Что делать, когда не понять наносились ли мазки, была ли это вообще мазковая техника, или использовались градиенты, или что-либо ещё?

Ответ прост. Искать. Пробовать разные стилистики и прогонять их через процедуру уменьшения и последующего сохранения в индексированной палитре.

Это был довольно длительный этап, который долго не приводил к нужным результатам. Раз за разом. Последний год я стал усиленно рисовать. Попробовал разные стили и стал постепенно склоняться к классической схеме рисования концептов и графики. Без использования 3D, без каких-либо финтов и хитростей. Как и в случае пиксель-арта я опустился на самое дно, к истокам. И предположил, что будет неплохо научиться рисовать одной единственной кистью, делая это так, чтобы это напоминало традиционную живопись.

Традиционный мазковый подход привел меня к следующим изображениям. Сохранение их по указанному выше способу приводило к следующим результатам.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Грубая мазковая техника не подошла, но какой-то пульс уже начал прощупываться. Я добавил детализации и получил следующий «фон». Который также оказался ошибочным, т.к. излишний фото-реализм в работе оказался не очень хорош.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Проанализировав художников Вествуд я решил смягчить резкие мазки, сделать их более плавными. Это был первый фон, который наконец-то выдал нормальный результат. Это было практически то, что нужно. Этот фон уже не нужно обрабатывать. Разве что добавлять интерактивные объекты.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой

Примечание к рисунку: Интеграция и сравнение фонов будет проведена чуть ниже, сразу после окончания презентации работ по персонажам (похожим на персонажей игры «Lands of Lore»)

Можно сказать, что было важным подобрать размер и характер штрихов, чтобы при уменьшении они давали необходимый «пиксельный шум» на финальном изображении. Выработав схему можно изготавливать фон в течении трех-четырех часов, и даже без последующей пост-обработки он будет презентабелен и может быть использован в вашей игре. Забавно, что для того чтобы найти такое, казалось бы, простое решение, пришлось пробовать разные стили и покорять самые разные высоты.

После этого я озаботился вопросом персонажей. Вы помните, какие они. Практически фотографические. С хорошими цветовыми и световыми акцентами. Теплые и холодные цвета. Голливуд. Финальной точкой в этом исследовании стал доктор Саймон Тэмм из Светлячка. Символично, что именно доктор ответственен за исцеление изображения, и за финал.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Его я рисовал намеренно склоняясь к той палитре, которой характерны многие изображения квестов от «Westwood Studios». Мягкие градиенты на коже, четкое и холодное контровое освещение c аккуратными штрихами, там где это необходимо (волосы, акценты на глазах). То есть даже в исходнике Саймон уже напоминает одного из героев «Lands of Lore». Финальный аккорд – уменьшение.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Затем небольшая партия выполненная ансамблем индексированной палитры.

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Будучи соединенным с классическим пиксель-артом в тех местах, где к этой несуществующей игре добавляется интерфейс мы имеем полную иллюзия графического контента старых игр. Если бы «Westwood Studios» делали бы игру по нашему любимому «Светлячку» тогда, то скорей всего она выглядела бы примерно так. Но мы должны убедиться, что всё так, а не иначе, не так ли?

Давайте интегрируем наши изображения в интерфейс и оформление игр «Westwood Studios» — «Legend of Kyrandia» и «Lands of Lore».

I have need of a champion. Wns among you Mill volunteer to serve me?
flk'shel	Michael
15	6
8	10
5	15
Kieran
Conrad
So! Vou worthless dogs have come to your deaths!
Spark
Freeze Lightning Fireball Hand of Fate Mist of Doom
Spark
Heal
Freeze
Lightning
Fireball
Hand of Fate
Mist of


Слева представлен десатурированный вариант (обесцвеченный), а справа с яркой приветливой гаммой. Также Саймон уменьшен и помещен в то место, где ранее находилась иконка Конрада (персонаж игры «Lands of Lore»). Вполне очевидно, что такой арт мог бы быть в игре, и что он выглядит довольно гармонично. В принципе, можно было бы сохранить его в существенно меньшей палитре по цветам, а затем немного поработать кисточкой, чтобы арт был совершенно похож на арт художников из Вествуд. Очередь за фоном.

..
I think I^m 9ettin9 a rash.

i.JaL ,-%y.r.rT -	
(Dark forest	
V-^-~M I ■«» i«A |_Vcl. - 1	(iifife '
JL

I think I'm 9ettin9 a rash.
- -J •* - -S^S-	.	4
Dark forest
	■ ftife i-gl V 1 - fc. 1 5»,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


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

Финал


Из всего вышесказанного можно сделать вывод, что изначально фоны художников «Westwood Studios» были классической живописью. Затем оцифрованной и сохраненной в той палитре, которую использовала игра. После этого добавлялся интерфейс, персонажи и другие элементы. Анимация также делалась на базе этих работ. Она не содержала множество кадров, но была крайне детально проработана. Как? Теперь мы знаем.

Я написал эту статью под влиянием порыва разделить с вами эту небольшую радость маленького, но очень важного для меня открытия. Также я довольно часто встречал в сети вопросы, как именно делаются изображения, которые походят на старые игры? Что нужно сделать чтобы изображение было таким? Ответ прост. Прогресс ушел далеко, цветов стало больше, и изменились принципы работы с изображением. Больше не нужно было экономить, больше не нужно было умещаться в рамках низких разрешений, и внешний вид игр изменился. Поэтому чтобы имитировать их необходимо кланяться истокам, а именно:

• Уменьшать изображения до размера старых разрешений (320х200)
• Уменьшение изображение производить в соответствующем режиме.
• Сохранять изображение в индексированной палитре, имитируя ограничения тех лет.
• Готовить исходное изображение в определенной стилистике.

Удивительно то, что занятия пиксель-артом стимулировали меня на занятия классическим рисунком. Можно сказать, что во многих случаях именно пиксель-арт подсказал мне как лучше рисовать в большом разрешении. И это не единственное из моих маленьких открытий. Похожая статья пойдет следом. Где мы научимся готовить графику как в «Fallout». Не современном, разумеется. А в том самом. Старом.

Безусловно данная публикация не поможет сделать подобные фоны человеку техническому, не облеченному умением рисовать. Однако она может подсказать к какому художнику вам стоит обратиться, у кого вам стоит заказывать арт, и как он должен выглядеть. За последние годы ко мне не раз обращались разные программисты, которые знали, что хотят сделать, но не знали как. Это, кстати, довольно частое явление, когда во главе проекта стоит человек технический. Мне не хватает технической смекалки и практического склада ума. Но по крайней мере я могу разделить с вами те знания что имею.

Переводим дух


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

К чему я это? У вас могло сложиться впечатление, что всё вышесказанное и показанное сложно. Отнюдь. Для человека, который ещё только начинает путь – да. Но для того, кто рисует – нет. Каждый из таких фонов может создаваться за один рабочий день (тех о которых я писал выше). Восьмичасовой. Это будет не самый честный вид пиксель-арта, но это – рабочий день. Это важно. Две работы ниже, совсем другое дело…

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой

,Weilard,длиннопост,Pixel Art,Пиксель Арт, Пиксель-Арт,habr,мопед не мой


Пиксель-арт производимый с нуля занимает существенно больше времени. Эти две работы создавались, примерно, по 16-20 часов каждая, могли бы занять и больше, если бы не было соответствующего опыта. Безусловно, они срубили свои овации на соответствующих ресурсах. Но это именно «мой пиксель больше», а не что-либо ещё. Публичное доказательство – «я умею». Смею напомнить, что подобные амбиции и размахивание квадратиками не имеет ничего общего с разработкой контента для игр.

Приведу аналогию. Рыцарский турнир. На нём рыцари сражаются между собой, а где-то сверху сидит знатная дама, и, в общем и целом, победившему рыцарю может что-то обломится. Если он будет вести себя некрасиво, то скорей всего его бой не придется по душе ни даме, ни публике вокруг. Стало быть надо проявить себя во всей красе, показать все красивые приёмы, что вы умеете делать, как-то картинно упасть, снова вскочить, нанести пару эффектных ударов, парировать удары противника… словом – устроить прекрасный спектакль.

Работка игр это не бой на потеху публике и не рыцарский турнир. Это побоище. Битва. И ваша задача – выжить в этой битве. Когда вам нужно выживать, уж поверьте, вам не до красивых ударов. Вы сделаете всё, что угодно, чтобы вернуться домой. Ваше «возвращение» есть игра, ушедшая в печать. Никто не увидит ваших страданий, вашего пота и крови пролитой в сражении с ней. Все увидят лишь финальный результат.

К чему это я? Берегите себя. Оптимизируйте работу. Находите решения чтобы ускорить разработку, удержать её на нужном уровне качества. Ну и иногда заходите на турнир… помахать пикселем. Может быть вам тоже обломится.
Это должен был быть пост по вселенной SCP, про народ Ади-юм, но оказалось что все уже было на реакторе, а найти релевантных свежих артов не удалось, так что держите просто кентавро-мальчиков и кентавро-девочек. Помнится, кто-то предлагал тег "лоликонь", но он не прижился.
,Centaur,Fantasy race,длиннопост,Centaur no Nayami,Лоликонь

,Centaur,Fantasy race,длиннопост,Centaur no Nayami,Лоликонь
,Centaur,Fantasy race,длиннопост,Centaur no Nayami,Лоликонь
,Centaur,Fantasy race,длиннопост,Centaur no Nayami,Лоликонь
,Centaur,Fantasy race,длиннопост,Centaur no Nayami,Лоликонь
,Centaur,Fantasy race,длиннопост,Centaur no Nayami,Лоликонь
,Centaur,Fantasy race,длиннопост,Centaur no Nayami,Лоликонь

нейросеть научилась сочинять пацанские цитаты (и рисовать под них волков)

цитата поста автора: "Давным-давно мы с автором бота "Всратослав" вместе напилили бота "Сутулый Акела". Этот бот присылал изображения всратых сгенерированных нейронкой волков с веселыми заранее собранными подписями. Позже админы "всратослава" бота отключили (не знаю почему). С тех пор мне по 2-3 раза в неделю пишут разные люди с просьбой включить этого бота или написать нового. Я все собирался, но времени никак не было. До сегодняшнего дня. Кароч, вот @neural_wise_wolf_bot (t.me/neural_wise_wolf_bot)
Отличается от "Сутулого Акелы" тем, что подписи генерирует нейросеть GPT-3, обученная на пацанских цитатах. С моделькой я еще поработаю, чтоб сделать веселее. И да, первое время бот может падать. Если долго не отвечает — просто подождите несколько минут и попробуйте заново"

Немного мудрости, проникайтесь:
,нейросеть,пацанские цитаты,длиннопост
,нейросеть,пацанские цитаты,длиннопост
,нейросеть,пацанские цитаты,длиннопост
Цена ошибки измеряется количеством запятых.-,нейросеть,пацанские цитаты,длиннопост
,нейросеть,пацанские цитаты,длиннопост
,нейросеть,пацанские цитаты,длиннопост
,нейросеть,пацанские цитаты,длиннопост
,нейросеть,пацанские цитаты,длиннопост
-V
А -Ч,нейросеть,пацанские цитаты,длиннопост
,нейросеть,пацанские цитаты,длиннопост

Отличный комментарий!

ширЯвдед ;rsg гГ1
ДШШ
*,нейросеть,пацанские цитаты,длиннопост

Листовок "Нет войне" пост.

Вижу много скептики в адрес листовок "Нет Войне", но ведь листовки отлично светятся в новостях и поисковых запросах. Пидоры, мы не одиноки, наши листовки замечают, это не бесполезный труд.
Да ублюдкам куда проще нарисовать Z чем нам, но не надо опускать руки.
Ну и от себя хочу добавить, буду надеяться в недалёком будущем живя в разрухе людям видящим листовки и граффити они будут как напоминание об их молчаливом согласии на анальный зонд.
P.S. некоторые изображения очень маленькие, связано это с тем что почти все сайты где освещаются такие новости забанены в Эрафии
Листовки НЕТ Войне в подъездах. Россия Украина война.
Россия Украина война.
^ Дзен ■ 1 марта
НЕТ Войне! 01.03.22. Антивоенные листовки в Хабаровске на ул.Ленина #НетВойне #nowar
видео, поделиться, телефон с камерой, телефон с видео, бесплатно, загрузить...
О YouTube - 28 февраля ■ 2306
В Иванове на остановках развешивают листовки «НЕТ ВОЙНЕ»
01.03.2022	<*> аз щ о
БЛОКИРОВКАМИ СЕРВИСОВ
ТЫ ПЛАТИШЬ ЗА ПУТИНСКУЮ ВОЙНУ
I 1711 I
НАЛОГАМИ
ЗАКРЫТЫМИ ГРАНИЦАМИ
НИЩЕТОЙ
На некоторых остановках в Иванове активисты развешивают листовки с антивоенными лозунгами.
В них утверждается,
,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
В Абакане на улицах и остановках стали появляться листовки с призывом остановить конфликт с Украиной.
Жители Абакана заметили, что на улицах города появились самодельные листовки с призывом остановить военные действия на Донбассе. Авторы призывают «открыть глаза» и не допустить смертей в ходе
Нет войне!
I CHIV5
Пистовки в центре Петербурга. Фото: подписчики DOXA
1 Мст nruatis«	
nwur рщ [ ■ Уирмн« ■ —■ ' Вернуть поиска 1 домом!	I 	1
	. •?" 1 гг &|,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
На некоторых из листовок есть ОЯ-код, пройдя по которому можно подписать петицию против проведения военной спецоперации на Украине.
МЫ ПОБЕЛИЛИ ФАШИЗМ НЕ ДЛЯ ТОГО, ЧТОБЫ ЧЕРЕЗ 80 ЛЕТ ИДТИ С ВОЙНОЙ Е,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
\átm¡
te
AU„S«„HU» „лака, e о«на* вяани»	Казань,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
ggjj	
r^\ ,n^-u	•¿r\ \ 4 \ V
vlr\	—
			c iiiJU|X1 /Ш ^	л^Т<		
	IP — , ул- i*yw^r-»:	,{/ j*//^^./\ *				
Ш '	\j "lT*j 35%к		T\	i / \ ' W	
Шт/Н' Щ	[r^^\ 't л	^•^1 J^<X'^^\iil \ 1 " »^.xV / \ J iv^. ХУ^Г^^Г1 Л1* уДг?&>УД 1^1	>1	y \ Л" / \ ' Л1 '	
I /^ u4!)I			;’A	WM K b,Вторжение в Украину 2022
,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
ЮОъЗДЮ НА Ьк^ЛААЛЛЛО исцет^д I
Усгш
I И€*ПОЛЛО»
|С«яша
ЗОН
ДМ№хйи Г
$(963}08
НЕТ
ВОЙНЕ
Каждый день войны —
сотни и тысячи новых смертей. Каждый день мира —
согни и тысячи сохранённых жизней.
дри>
г,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест
,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
				
f-	. Г ' 4 1 ff ib» >'. w ~ __ - * ;		8*^*-ыЛ TI Ey- Л*у JJ	
			» 4 —:.,	L i,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост
,Вторжение в Украину 2022,политика,политические новости, шутки и мемы,Нет войне,протест,длинопост

Отличный комментарий!

Пора менять лозунги на "Смерть хуйлу!"
Нет войне это лозунг, а "Смерт хуйлу" уже призыв )
А это ещё надо установить, вдруг Зеленского кто имеет в виду. Аогда я сказал одному ватану про пидораса ахуевшего, он сначала думал про Зеленского.

Выходят люди с совещания у Сталина. Жуков вполглоса:
- У, пидорас усатый!
Берия сразу к Сталину:
- Вы знаете, Жуков, когда от Вас уходил, сказал "У, пидорас усатый!"!!!
- А позовитэ ко мнэ товарища Жюкова!
Является Жуков.
- Скажитэ, товарищ Жюков, а кого ви имэли в виду, когда сказалы "У,
пидорас усатый!"???
- Как кого, товарищ Сталин? Конечно, гада Гитлера!!!
- Хорошо, товарищ Жюков, идыте. Товарищ Бэрия, а ви кого имэли в виду???

Получил доступ в бету Stable Diffusion, делюсь впечатлениями и изысканиями

Больше недели развлекаюсь с нейросетью, накопил архив удачных и не очень генераций, решил скомпилировать сюда, может, кому интересно. 
Бэкстори: Stable Diffusion обещает быть полностью опенсорсным, пока что доступ для 15 тысяч бета-тестеров идёт через дискорд, вскоре грозятся запустить сайт, для исследователей есть возможность заполнить форму и скачать модель, чтобы запускать у себя локально. В конечном итоге они обещают выложить модель и веса в открытый доступ, бесплатно. Особая прелесть сети в том, что она, как утверждает руководитель проекта, способна работать с 5.1 Гб видеопамяти - т.е. её можно запустить на домашнем ПК и генерировать изображения за несколько секунд.
Упреждая ваш вопрос - да, сеть умеет генерировать сиськи, причем зачастую даже если её об этом не просить, например, по запросу "нимфа" или "соблазнительная". Причем они даже ок. Пользовательское соглашение гласит, что вы не будете генерить NSFW, пока используете сервера проекта, если это случилось - нужно зарепортить модеру, но в целом правила очень лояльны, за всё время из 15к участников выгнали около 70, за то что они настойчиво генерировали NSFW. Когда модель станет доступна, то на своём железе можно будет генерить что душе угодно.
Итак, на что я потратил всё это время? Я пытаюсь немного экспериментировать, чтобы выяснить, как запросы (prompt) влияют на изображение. У сети есть удобная фича - генерация выдаёт сид, с которого сгенерирован шум, лежащий в основе изображения. С его помощью можно повторно генерировать картинки с небольшими изменениями в запросе.
Используя один и тот же запрос и меняя только имена авторов, я составил для себя таблицу с референсами на стили известных художников. Дисклеймер: все изображения сгенерировались с первого раза, я не пытался повторять попытки и выбрать что получше
Как видно, какие-то получаются лучше, чем другие. Но вообще, портретики в стиле Артгерма получаются у сети лучше всего. Забавно при этом то, что если указывать рандомные имена в качестве художников, сеть всё равно делает вид, будто всё идёт по плану.
Что характерно, портреты очень часто удачно получаются с первой попытки. Я скопировал описание Ферро из "Первого закона" Аберкромби и получил весьма годные результаты, правда без шрамов.
Как вообще работает это хрень и что такое диффьюжн? Это лучше загуглить, ибо моё представление весьма туманно. Сеть генерирует шум, и потом начинает... обратно размывать изображение, типа как можно заблюрить картинку до полной каши, а тут процесс в обратную сторону? Делается это пошагово, максимум дают сделать 150 шагов, по дефолту 50. Процесс примерно можно увидеть на ролике с контрафактной Элой ниже, число в углу это количество шагов.
Что ещё хорошего умеет сеть? Она неплохо справляется с бэкграундами, простые вещи выглядят вполне убедительно, особенно если не всматриваться. 
Хаяо Миядзаки, осенний лес
Хаяо Миядзаки, выжженная пустыня
Хаяо Миядзаки, зимний городок
Хаяо Миядзаки, пустоши
Портовый город, бэк из видеоигры
Мрачный средневековый город, бэк из видеоигры
Ну и конечно, дело не ограничивается артами, сеть также умеет в фото, вот вам моя коллекция Снейков (солидных, ибо за нагих Снейков дают таймаут).
,Stable diffusion,нейронные сети,много картинок,длиннопост,нейроарт
,Stable diffusion,нейронные сети,много картинок,длиннопост,нейроарт
,Stable diffusion,нейронные сети,много картинок,длиннопост,нейроарт
На самом деле Снейк - очень неудачная модель, т.к. его глазная повязка сбивает сеть с толку.
Вот вкратце сильные стороны нейросети. Теперь давайте об её слабостях, ибо их хватает. Например, генерировать персонажей в полный рост - сущее мучение, я не знаю, в чем дело, то ли привычка художников обрезать персонажам ноги, то ли криво кропнутые картинки в базе, на которой училась сеть, но в 2/3 случаев при запросе персонажа в полный рост вы получите или обрезанного, иногда с головы, перса, или персонажа с лишними телами и головами. Если портреты отлично генерятся с первой попытки, то с персонажами нужно основательно мучатся. Единственный плюс: если вы нашли удачный сид, где перс в полный рост, его можно переиспользовать. Ниже типичные запоротые генерации, и это ещё не самое стрёмное.
Один из способов консистентно получать персонажа в полный рост - использовать запрос anime model sheet в разрешении 512 на 1024, но тогда сильно страдает детализация.
Еще одно ограничения, которое я пока не знаю как обойти - слишком детализированные запросы. Например, здесь 4 изображения по запросу "женщина с белыми волосами, жёлтыми глазами и в красном платье". Сеть путает, какие цвета к чему относятся.
,Stable diffusion,нейронные сети,много картинок,длиннопост,нейроарт
Заключение. Stable Diffusion пока что немного уступает по качеству изображений DALL-E 2, на мой взгляд получше чем Midjourney, при этом значительно быстрее и не обременена цензурой, и это только первая стадия бета-теста. Несмотря на определённые ограничения, сеть уже вполне может генерить простые стоковые картинки, кастомные аватарки для вашей гномки-лича в Пасфайндере и возможно даже задники для вашей инди-игры.
Окей, пост уже и так непомерно длинен, так что я закругляюсь, описал далеко не всё, если есть вопросы - задавайте, постараюсь ответить.

Отличный комментарий!

Чем старше становишься - тем ближе к корню переезжает папка с порно. Это явно, сокровищница, кого-то очень молодого.

Модель NovelAI под Stable-Diffusion

Там недавно слили исходники NovelAI, на сколько знаю сервис генерит истории по описанию, что то вроде AI Dungeon. Но с 3 октября у них появилась фича генерить и изображения по описанию. Собственно слили и её.
Автор репозитория одной из сборок, AUTOMATIC1111 добавил в свою сборку поддержку работы новых слитых моделей ,его кстати забанили в офф. дискорде Stable Diffusion после произошедшего.
Если хотим поиграться с новой моделью, а выдаёт она довольно неплохие результаты, то нам нужно:
1. Установить сборку Stable Diffusion от AUTOMATIC1111 - https://github.com/AUTOMATIC1111/stable-diffusion-webui
2. Качаем модель (у них есть NSFW и SFW версии) и некоторые ещё необходимые вещи из слитых материалов - magnet:?xt=urn:btih:5bde442da86265b670a3e5ea3163afad2c6f8ecc&dn=novelaileak
Name
> □
>
>
>
>
>
>
>
>
>
> □ □ □ □ □
novelaileak
github
stableckpt
Q	animefull-final-pruned
□	animefull-latest
□	animefull-prevgood
□	animesfw-final-pruned
□	animesfw-latest
□	animesfw-prevgood
□	extra-sd-prune
Q	modules
O	vector_adjust
Q	animevae.pt
□	clean.py workspace
3. Переименуйте model.ckpt, что лежит внутри animefull-final-pruned в любоеназвание.ckpt. например в novelai.ckpt, теперь переименуем animevae.pt в название которое мы дали предыдущему файлу и добавляем к нему .vae.pt к примеру в novelai.vae.pt... Теперь заходим директорию \stable-diffusion-webui\, заходим в папку models и создаём там папку с именем hypernetworks и кидаем в неё файлы aini.pt, anime.pt, anime_2.pt и т.д из папки modules, что мы скачивали. Теперь в папку \models\Stable-diffusion\ с основными моделями что мы используем, переносим ранее переименованый файл novelai.ckpt и файл novelai.vae.pt
4. Запускаем Stable Diffusion и переходим в настройки, ищем раздел "Stable Diffusion" и включаем нужную модель и finetune hypernetwork
5. Готово, можем работать с новой моделью.
NovelAI использует CFG:11 и негативные промты: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, поэтому если хотите результаты похожие на те, что генерит оригинальная, то используйте эти параметры.
В некоторых промптах взятых напрямую из NovelAI может встречаться синтаксис {}. Он предназначен только для официального сервиса NovelAI. Так же усиливает акцент, как и (), но акцентирование увеличивается только в 1,05 раза вместо 1.1 с (). Поэтому если прям точь в точь повторить результат с понравившегося промпта, что увидели в интернетиках, то используем (слово:1.05) или видим {{}}, то используем (слово:1.1025)... А лучше почитайте https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features для понимания всяких тонких фишек.
Ну надеюсь всё правильно описал расписал. Если есть вопросы спрашивайте, если они в рамках понимания моего разума, то отвечу. Ниже приложу пару примеров изображений и промптов к ним, которые способна выдать модель. К слову через эту модель лучше генерить всякие анимешные арты ибо они там получаются лучше всего.
Мои:
((masterpiece)), painting of a ((Mandalorian)) bounty hunter, Star wars, Tatooine, space, stars, art by John J. Park
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry
Steps: 150, Sampler: Euler, CFG scale: 11, Seed: 3998559443, Size: 512x704, Model hash: 925997e9
,нейросети,Stable diffusion,длиннопост,NovelAI
((masterpiece)), girl,red dress,short hair,summer, twintails, black hair,
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry
Steps: 150, Sampler: Euler, CFG scale: 11, Seed: 3013799092, Size: 512x704, Model hash: 925997e9
,нейросети,Stable diffusion,длиннопост,NovelAI
Из Discord'a NovelAI:
copic, thick outlines, {{mohawk, shaved sides}}, 1girl, {vibrant}, deep shadows, deep space, {{80s, scifi, movie poster}}, skin tight spacesuit, jumpsuit, {power armor}, {{small breasts}}, closeup, detailed eyes, torso, headshot
,нейросети,Stable diffusion,длиннопост,NovelAI
{{BEST QUALITY}}, {{MASTERPIECE}}, {{HIGH RES}}, {{CINEMATIC LIGHTING}}, {{DETAILED}}, {{TELEPHOTO LENS}}, beautiful hd background, high detailed background, {realistic shadows}, HD shadows, {{{midjourney}}}, tarte (hodarake), Anor Lando, avataart, Andy Livy, by dark album, god teir background art, realistic, realistic portrait, masterpiece portrait, {{{{{{MASTERPIECE}}}}}}, sharp, photo realistic, background focus, {{{{{background only}}}}}, futuristic city, future, advanced technology, neon lights, holograms, flying ships, buildings metalic silver , advanced civilization, year 5096 , science fiction, sci-fi, futuristic dome, matrix
{white hair}, {very long hair}, gloves, black yellow coat, bandaged wrist, torn clothes, {{black}} eyeshadow, black and white eyes, earrings, {{floating crown}}, {star halo}, detached wings, {{masterpiece}}, {1girl}, black smear on right side of face, space background, {goddess}, {standing on a white platform}, {star symbol on clothes}, star earrings, {{medium}} breasts, bandaged torso, patterns on eye pupils, long majestic black yellow coat, chain earrings, makeup, large black and yellow coat, inside a cathedral at night, {detailed large crown}, character focus, floating stars, presenting a menger cube, magic cubes on background, dark magic, serious, {divine}, {{teenage}}, mini universe above hand, black cubes on the background, supernova on the background, decorated hair, covered body, {{{black background}}}, light above head, spirals on background, fractal patterns, {{dirty face}}, bandaged arms, fractal background
,нейросети,Stable diffusion,длиннопост,NovelAI

Тренируем модели через DreamBooth на конкретные образы.

Здравствуйте мои любители нейронного колдунства и прочих искуственно интелектуальных утех. Сегодня мы научимся тренировать уже готовые модели на образы которые мы хотим. Локально на нашем ПК без всяких Google Colab и Runpod.
Если я где то накосячил, поправьте в коментариях.
ДИСКЛЕЙМЕР! БУДЕТ ОЧЕНЬ МНОГО ТЕКСТА. Этот способ тренировки через DreamBooth подразумевает, что у вас в гробу установлена карточка (Nvidia скорее всего только поддерживается) с минимум 8-10 ГБ видеопамяти. Тренировка сетки уже куда более ресурсожрущий процесс, чем просто генерация картиночек. Ранее DreamBooth требовал минимум 24ГБ памяти. Так что пока я нашёл нужные материалы, проверил их и понял, как с этим работать, прошла не одна неделя... Стояла бы у меня 3090, то этот гайд вышел бы ещё в середине октября. но если всё же хочется побаловаться, то можно воспользоваться облачными google colab и runpod. Но я так же затрону гиперсети (Hypernetworks), результаты с ними куда менее презентабельные чем через dreambooth, но можно запустить на карточках попроще. Если вы всё же железо-бетонно готовы следовать дальше, прошу.
И так, продолжим. DreamBooth модель можно натренировать на свою рожу, свою собаку, любимую табуретку, или какого нибудь персонажа.
В данном посте я буду работать на модели NAI (NovelAI я буду сокращать в дальнейшем) ибо буду тренить на нашу Реактор-тян. Если хотите сделать своё лицо или, что то из нашего бренного мира то подойдёт обычная модель Stable Diffusion 1.4
В конце будет небольшой Q&A и заметки, дабы всю (почти) воду и рассуждения отградить от основной информации.
Я разобью гайд на несколько частей. Тренировка DreamBooth и тренировка Embeddings с Hypernetworks.
DreamBooth:
Знаю, что уже появился спобоб тренить DB (DreamBooth я буду сокращать в дальнейшем) через webui stable diffusion от AUTOMATIC1111 в виде загружаемого плагина, но чёрт, вы хоть видели сколько там настроек? Я устану вам объяснять каждую и вы умрёте от духоты, поэтому я выбрал более дружелюбное, отдельно загружаемое приложение - DreamBooth-gui - https://github.com/smy20011/dreambooth-gui скачиваем и устанавливаем его по инструкции приложеной на Гитхабе, не буду тут расписывать ибо и так много текста.
Запускаем приложение и видим первое, что нас просят сделать, а именно загрузить набор изображений на который мы хотим натренировать модель. Делаем их в разрешении 512x512, где надо фотожопим лишнее.
0 dreambooth-gui
□
X
Pick Image Config Trainer Train,нейросети,нейромазня,Stable diffusion,NovelAI,DreamBooth,длиннопост
Как только залили изображения, я сделал 8шт, переходим на следующую вкладку Confin Trainer, здесь мы зададим нужные параметры и настройки. Рассуждения о зависимости некоторых параметров от других, пока где-то на уровне теории заговоров, но основные зависимости я объясню дальше.
И так, для начала выбираем модель. По умолчанию нам предложит CompVis SD v1.4, который оно подкачает с hugging face. Но сегодня я работаю с NAI поэтому указываю путь до папки с моделью. Сейчас я на версии программы v0.1.8. и она требует, что бы модель была конвертирована из .ckpt в diffusers. Вот ссылка на мою конвернутую модель NAI - https://drive.google.com/file/d/1BnZyUb9C5wjz7Lcp1Dn8JidZLQ4taQEy/view?usp=share_link
Далее указываем Instance prompt, это должно быть уникальное слово которого не должна знать модель, то есть никаких boy, girl, и имён персонажей которых может знать модель. В дальшейшем это название мы будем указывать среди промптов, что бы модель на это тригеррилась и генерила уже с учётом натренированности этого концепта.
Class prompt указываем ёмко, кратно, что мы тренируем. У нас один женский персонаж и раз уж модель NAI тренилась на датасете danbooru, то я и укажу женский тег от туда, а именно 1girl.
Training Steps я выставлю 1000, а Learning Rate 5e-6, но это крайне запутанные настройки, о них я побольше размусолю ниже в разделе с водой и по ходу текста.
Аргументы не трогаю.
0 dreambooth-gui
□
X
Pick Image Config Trainer Train Run dreambooth on NVIDIA GeForce RTX 3080, 8.65gb free
Model
C:\Users\egorv\dreambooth-gui\models\NAI
Choose Local Model
Name of the base model, (eg, CompVis/stable-diffusion-v1-4)
Instance prompt joyreactorchan
Name of the instance, use
Отлично, переходим к разделу тренировки, здесь нас попросит вставить наш Hugging Face Token. По идеи это нужно только если мы качаем модель SDv1.4 или прочую с Hugging Face, а у нас она локально на пк уже стоит, но всё равно просит, поэтому регаемся там и идём в настройках раздел с токенами https://huggingface.co/settings/tokens и создаём токен на WRITE и вставляем его в наше поле. Прописываем папку куда будут выгружаться все файлы после и проверяем, что бы стояла галочка, что бы модель генерилась потом в .ckpt файл в нашей папке вывода.
0 dreambooth-gui
□
X
Pick Image Config Trainer Train Hugging Face Token
Output Dir
C:\Users\egorv\dreambooth-gui\outputs\joyreactor
Select
B Generate model checkpoint (.ckpt file) in the output directory
Training Command
docker run -t —gpus=all
Иии жмём старт! И так теперь запасаемся терпением, можете заварить чай, помыться, выйти на улицу, потрогать траву, сходить в магазин и т.д, ибо процесс первого запуска НЕВЕРОЯТНО ДОЛГИЙ. Серьёзно, я сам в первый раз думал, что у меня, что то зависло. Минут 30 только оно подгружало нужные файлы, и убедитесь, что у вас на диске есть ещё место, ибо пару десятков ГБ на нём, этот процесс забьёт. Если увидите, что ошибок не вылезно, в папке \AppData\Roaming\smy20011.dreambooth были сгенерены картинки референсы по классовому промпту и вы не словили ошибку о нехватке видеопамяти (будет у многих вангую) то поздравляю, у вас пойдёт тренировка, и вы увидите, как у вас будут лететь надписи Steps ****% |▋▋▋▇| ***/1000 [**:** < 00:00, *.**s/it, loss=0.***,lr=5e-6]
На тренировку модели в 1000 шагов моей RTX 3080 потребовалось почти пол часа. Чтож, когда увидим сообщение о том, что всё готово, заходим в папку вывода, и переименовываем как хотим и переносим .ckpt файл в папку с моделями нашего stable diffusion.
Training Command
Finished!
"jii\datasets\joyreac
:tor:/instance •
S
s s s
Steps: 100%' Steps: 100%|| Steps: 100%|| Steps: 100%|| Steps: 100%||
Training finished, check
C:\Users\egorv\dreambooth-gui\outputs\joyreactor for model output.
OK
/it, loss=0.257, lr=5e-6] /it, loss=0.257, lr=5e-6]
Запустите SD, загрузите модель. Проверьте результаты, всё ли выглядит так, как должно, у меня получилось... приемлимо...
joyreactorchan, 1girl, orange hair, medium hair, antenna hair, blue eyes, freckles, foxy ears, white bardot top, orange overalls, orange collar with bell, gold hairpin, gold buckles
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, furry
Steps: 60, Sampler: Euler, CFG scale: 11, Seed: 3985740085, Size: 960x960, Model hash: e02601f3, Model: joyreactor, Denoising strength: 0.7, Clip skip: 2, First pass size: 0x0
Модель DreamBooth
Чистая NAI
Ну вроде неплохо. Но можно лучше.
У меня выходили и более презентабельные модели, чего стоит модель с моей рожей, что генерит меня с шансом 50%, а в остальных случаях Иисуса либо Джареда Лето либо двухголовую ебаку...
Вот пример с DB, а вот чистая NAI. Ну думаю, я бы мог вопроизвести похожий результат и без DB, но потребовалось бы куда больше промптов и попыток. Тем не менее, DB приближает качество и иполнение результатов, к тем, на какие мы тренировали, поэтому если тренируете на лицо, то оно даст намного чёткие и предсказуемые результаты, чем просто по запросу "лохматый бородатый мужик"
Если хотим закрепить результат и возможно улучшить, то рекомендую потренить и Textual Inversion - https://huggingface.co/docs/diffusers/training/text_inversion Это крошечная часть нейросети обученая на наборе картинок. требует поменьше ресурсов для тренировки, чем DreamBooth. С её помощью удобно воспроизодить стили и какие то объекты. Я потреню на том же датасете картинок, что и DB.
Тренировка Embeddings (Textual Inversion)
Идём в раздел SD webui который называется Train, и в первом подразделе Create embedding начинаем заполнять пункты.
Name - просто имя файла и в дальшейшем мы будем писать это название среди промптов, что бы задействовать нужный embedding. Поэтому я использую название, то же, что и у инстанс промпта в DB, что бы тригеррить их обоих разом.
В Initilization text вписываем описание персонажа, я описал его более подробно, ибо на реактор-тян оно почему то ловит затуп и генерит совсем шлак потом. А так обычно то же, что и class prompt в DB. Число векторов на токен я выставил 8, хотя чем больше это число, то тем больше примеров картинок лучше подготовить, но остановлюсь на этом.
Теперь идём в Preprocess images, вводим путь до папки с изображениями и туда, куда их выгрузит. Ставим галочку на Use deepbooru for caption, не уверен, будет ли у вас эта функция, если нету или не работает, поставьте в аргументах запуска SD аргумент "--deepdanbooru", и тогда точно всё будет ок. Эта функция создаст текстовое описание для каждого изображения в формате тегов с danbooru, так сетка лучше обучится. Если трените не на NAI моделе, а что то реалистичное, то советую использовать, Use BLIP for caption, создаст промпты как если бы их писали для работы с обычной моделью SD 1.4... Так же уделите время и вручную проверьте КАЖДЫЙ созданый текстовый документ, и сверьте его с картинкой, постарайтесь удалить ненужные промпты или добавить, то что считаете нужно, не всегда оно создаёт описание корректно. Да это муторно, но стоит без этого может натренить сетку не на то, что мы желаем.
И последний подпункт Train. Тут внимательно, можно ошибиться с пунктами и кнопками. Я помечу на скрине те пункты, которые мы трогаем, остальные игнорьте.
В embeddings выбираем наш созданый, в dataset directory указываем путь, куда мы выгружали изображения уже с описаниями, в prompt template file указываем путь до файла шаблона по которым оно будет трениться, я создал свой файлик, в котором внутри написано только [filewords] , прямо с квадратными скобками, это будет задействовать описания изображений которые мы создали раньше.
Save an image to log и save a cope of embedding, это параметры отвечающие за тестовое создание изображения на данном этапе тренировки и сохранинии текущего результата на момент шагов. Я генерирую изображение каждые 500 шагов и сохраняю прогресс каждые 1000, да бы проверить не произошла ли перетренировка модели, да бывыет и такое, её можно перетренировать, об этом после гайда...
И надеюсь вы не подумали, что я пропустил пункт с Embedding Learning Rate и Max Steps, то нет. Вот тут та же шляпа, что и раньше, и надо подбирать соотношения. В этот раз будем создавать поэтапно.
Для начала мы проведём тренировку на 200 шагов и Learning Rate 0.02, после увеличим число шагов до 1000 и уменьшим LR до 0.01, потом 2000 шагов и LR 0,005, 3000 и 0.002, 4000 - 0.0005 и в конце выставим 20000 шагов и скорость обучения на 0.00005. Чё страшно, запутались? Кароче, шляпа в том, что бы сетка не переобучилась, так мы её постепенно полируем, подробнее об этом после гайда в разделе с разными мыслями.
Вот выставили 200 шагов и 0.02 скорость, она прогонит по этим параметрам и закончит, не закрываем ничего, меняем параметры на следующие по списку, 1000 шагов и скорость 0.01 и опять жмём Train Embedding и опять идёт тренировка уже дальше с новыми данными. И т.д до конца. 20000 шагов золотая середина как по мне. У меня на это уходит около полутора часа, побольше, чем на тренировку DreamBooth, результат не будет сверх разиться, но будет чуть более в нужном нам направлении.
Вот примеры, того что по итогу вышло.
masterpiece, best quality, joyreactorchan, 1girl, orange hair, medium hair, antenna hair, blue eyes, freckles, foxy ears, white bardot top, orange overalls, orange collar with bell, gold hairpin, gold buckles, solo, standing, upper body
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, furry, portrait
Steps: 60, Sampler: Euler, CFG scale: 11, Seed: 370310831, Size: 768x768, Model hash: e02601f3, Model: joyreactor, Denoising strength: 0.7, Clip skip: 2, First pass size: 0x0
DreamBooth + Embedding
,нейросети,нейромазня,Stable diffusion,NovelAI,DreamBooth,длиннопост
DreamBooth без Embeding
,нейросети,нейромазня,Stable diffusion,NovelAI,DreamBooth,длиннопост
И без DreamBooth и без Embedding на чистом NAI
,нейросети,нейромазня,Stable diffusion,NovelAI,DreamBooth,длиннопост
Ну Embedding иногда подтягивает, некоторые результаты, иногда может быть лишним. Довольно ситуативная и спорная вещь, но вот на DreamBooth сразу узнаётся Реактор-тян, нежели на обычной NAI с теми же хорошо подобранными промптами.
И да, знаю, что вероятно будут просить уже готовую модель, так что держите ссылки на модель на Реактор-тян и готовый Embedding:
Лучше пусть кто то забэкапит, а то мало ли я буду облако чистить.
Hypernetworks
Если не получилось натренить DreamBooth, то попробуйте гиперсети. Тоже прикольные результаты можно получить, если постараться.
Тренить гиперсеть на реактор-тян я не буду, поэтому опишу как делал ранее с другими вещами. Если желаете ознакомиться с материалом, по которому я и сам тренировался, прошу - https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/2670
Процесс тренировки схож с тренировкой embeddings.
Так же в заходим в раздел Train, и уже в подпункт Create Hypernetwork. Имя гиперсети пишем какое хотим, без разницы, модули 768 320 640 1280 оставляем как есть.
Теперь тут свои завертоны пойдут, просят ввести структуру слоёв гиперсети:
Для широких гиперсетей: 1, 3 ,1 или 1, 4 ,1
Для глубоких гиперсетей: 1, 1.5, 1.5, 1 или 1, 1.5, 1.5, 1.5, 1 или 1, 2, 2, 1
Широкие: подходят для запоминания новых вещей, таких как конкретное животное, человек или объект.
Глубокие: подходят для обобщения вещей, таких как стили.
Поэтому исходите из этого, для реактор-тян я бы выбрал 1, 3, 1
Следующий пункт, select activation function of hypernetwork:
Для аниме (NAI, Waifu и т. д.): Selu, Gelu, mish
Для фотографий: Relu, swish, mish,leakyrelu, rrelu
Теперь Select Layer weights initialization. Для аниме ставим xaviernormal. Если фото и т.д то по умолчанию normal.
Остальные галочки ниже необязательны.
Потом так же подготавливаем изображения как и с embeddings, это я не буду повторять и переходим сразу в Train.
Выбираем так же как и при тренировке embedding путь до шаблона, папку с датасетом из наших картинок с текстом, сохранение результатов и картинок.
Теперь выбираем нужную гиперсеть в выпадающем списке Hypernetworks. Изменять будем раздел Hypernetwork Learning rate, а не Embedding Learning rate, как раньше и жать будем на Train Hypernetwork, а не Train Embedding.
Вот примеры хороших соотношений последовательностей Steps к LR:
Для обычных людей - 0.00005:100, 0.000005:1500, 0.0000005:10000, 0.00000005:20000
А вот для извращенцев - 0.00005:100, 0.000005:1500, 0.0000005:2000, 0.00005:2100, 0.0000005:3000, 0.00005:3100, 0.0000005:4000, 0.00005:4100, 0.0000005:5000, 0.00005:5100, 0.0000005:6000, 0.00005:6100, 0.0000005:7000, 0.00005:7100, 0.0000005:8000, 0.00005:8100, 0.0000005:9000, 0.00005:9100, 0.0000005:10000, 0.000005:10100, 0.00000005:11000, 0.000005:11100, 0.00000005:12000, 0.000005:12100, 0.00000005:13000, 0.000005:13100, 0.00000005:14000, 0.000005:14100, 0.00000005:15000, 0.000005:15100, 0.00000005:16000, 0.000005:16100, 0.00000005:17000, 0.000005:17100, 0.00000005:18000, 0.000005:18100, 0.00000005:19000, 0.000005:19100, 0.00000005:20000. Этот вариант выглядит монструозно, но я его тестировал лично, и довольно хорошо работает при условии, что вы подобрали хорошие примеры изображений и текстовые описания к ним.
И так же поэтапно треним как и embedding... ВСЁ!
ВОДА и Q&A!!!
Ахренеть, как буд-то по новой пишу дипломную, но только с надеждой в том, что кому то это поможет и он воспользуется этим материалом, либо же просто покекает с того, что я потратил на это несколько недель, начиная от поиска нормального способа запуска DreamBooth и заканчивая десятком часов на попытки разобраться в особенностях и нюансах, ну и этот текст я пишу уже где то часов 6 нонстоп, набралось уже 2 c половиной тысячи слов! серьёзно, надо хоть воды налить себе, ха отличная шутка.
1)Q: Почему так сложно?
A: А кому легко?
2)Q: Можно ли было уместить это в 5 абзацев на 500 слов в общем?
A: Не знаю, пишу как умею, кто умер от духоты и захлебнулся в воде, простите)
3)Q: У меня видеокарта ******, у меня заработает?
A: Не знаю. Скорее всего на AMD, вообще никак. Если у вас есть в карте тонна видеопамяти, то должно. Либо попробуйте запустить, через Google Colab, Runpod и прочие облака с арендой видеокарт и работы с их мощностями. Я НЕ БУДУ ПИСАТЬ ГАЙД ПО КОЛАБУ, НЕЕЕЕТ!
4)Q: Не надоело ли писать вопросы и ответы?
A: Да, чёт устал, задавайте в комментариях, отвечу как смогу.
Теперь ВОДА и прочие размусоливония которых, я старался избегать в основной части гайда.
Подойдите к этапу подбора изображений для тренировки максимально отвественно и серьёзно, ибо от того какие изображения вы скормите, во многом будет зависить результат. Так же качество > колличество, будет хорошо если вы задействуете 10 годных примеров, нежели 30 посредственных. Я стараюсь выдерживать единый стиль изображений, если одна картинка будет от карандаша, другая 3D CGI, а третья в стиле Пикассо, то выйдет так себе и выйдет мешанина из этого всего. Если тренирую персонажа, то стараюсь делать акцент на лице, тело можно будет и промптами задать, но вот получить нужное лицо сложно, ну за этим и нужен DB.
Во многом из за конвертации .ckpt в diffusers я неделю ломал голову, ибо обычным скриптом предназначеным для этого у меня не выходило, но как видите удалось, а именно при помощи гуглколаба от TheLastBen. Необходимо было залить модель в колаб, прогнать через его скрипт, и выгрузить результат себе на гугл диск. В скорой версии Dreambooth gui v.0.1.9. появится возможность использовать .ckpt и программа сама будет его конвертировать. 
Вот теперь мы пришли к одной из самых важных вещей, во круг которых строятся различные догадки и теории заговоров... А именно зависимость количества шагов тренировки (Training Steps) и скорости обучения (Learning Rate или LR).
Число шагов обучения ~= кол.во изображений * 100, у меня 8 изображений, поэтому оптимально было бы 800, но я округлил до 1000, потому что хочу. По скорости обучения ещё сложнее, но держим в голове несколько вещей, больше steps = меньше LR, и наоборот. Так же главное не перетренировать модель. Представьте этот процесс как работа по дереву. У вас есть бревно и вы хотите обтесать из него фигуру. Поставите слишком высокий LD и срежете слишком много кусков и модель будет перетренирована и бракована. А поставите если поставите слишком низкий LR, то представьте, как мелким скальпелем обтёсываете огромное бревно дуба до размера фигурки.
Пока тестил эту байду, знакомый кидал идеи на чё попробовать тренить, приложу ещё примеры DB и embedding под персонажа Макимы из Человека Бензопилы (Аниме), но её я уже делал на немного допилиной модели - Anything-V3.0, про неё уже сделали пост - https://joyreactor.cc/post/5385144
masterpiece, best quality, makimacmdb, makima \(chainsaw man\), 1girl, medium hair, pink hair, sidelocks, bangs, braid, braided ponytail, eyebrows visible through hair, orange eyes, ringed eyes, breasts, medium breasts, shirt, collared shirt, shirt tucked in, black pants, suit, business suit, formal jacket, long sleeves, necktie, black necktie, light smile, expressionless, looking at viewer, solo, gradient background, cinematic, filmic, telephoto, depth of field, lens distortion, lens flare, white balance, strobe light, volumetric lighting, dramatic lighting, little haze, ray tracing reflections, detailed, intricate, elegant, realistic
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name, ((extra fingers)), ((poorly drawn hands)), ((poorly drawn face)), (((mutation))), (((deformed))), ((bad anatomy)), (((bad proportions))), ((extra limbs)), glitchy, ((extra hands)), ((mangled fingers)), dark skin, hair ornament , troubled eyebrows, big breast, yumemi riamu
Steps: 60, Sampler: Euler, CFG scale: 11, Seed: 1316407258, Size: 896x896, Model hash: e02601f3, Model: makimaANY, Denoising strength: 0.7, Clip skip: 2, First pass size: 0x0
DreamBooth + Embedding
DreamBooth и без Embedding
Без DreamBooth и без Embedding
Как и писал выше, иногда Embedding лишний, некоторые результаты, лучше без него, некоторые с ним. Сутуативная хреновона, но лучше будет, чем нет.
КОНЕЦ.

HoloGTA gang Millimon (Million Monsters)

Upd. Добавил арт, ради которого этот пост изначально и хотел создать. Спасибо ребятам в коммментах :3

|

Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме как добавить два изображения в один пост (+1000 постов - как добавить два изображения в один пост)