Stable Diffusion. Для тех, у кого лапки

Автор: Сиратори Каору

Данный пост является результатом моих предварительных исследований и не претендует ни на полноту, ни на абсолютную точность. Любые поправки и дополнения всячески приветствуются. 

Глядя на текущую ситуацию с обложками/иллюстрациями, душа моя наполнилась печалью. Куча расплодившихся, как тараканы, сайтов предлагают прямо скажем, не слишком удовлетворительные услуги (даже те, что платные), а тт. художники, которые не пойми зачем здесь отираются, по-прежнему пребывают погрязшими в мздоимстве. В связи с чем пришла мне в голову идея припасть, так сказать, к истокам. Из которых все эти тараканьи сайты и питаются. Ну, как припасть, посмотреть, а что же, собственно эта самая Stable Diffusiоn из себя представляет, и реально ли попользоваться ею непосредственно, а не через алчных и непутёвых посредников.

И первое, что мне удалось обнаружить, это что масса народа, эдаких нейрохудожников, именно это и делает. Что, конечно, обнадёживает. Но вот второе, что выяснилось, это что для эффективной работы этой нейросети нужна достаточно могучая аппаратура. Например, для самых лучших и навороченных моделей рекомендуются графические карты по цене автомобиля. Что, безусловно, несколько обескураживает. Прямо плевок в душу какой-то. Правда, имеется по крайней мере один бесплатный онлайновый сервис, который предоставляет доступ к некастрированнoй Stable Diffusion, а именно Google Colab, но реально забесплатно там дают лишь мизер времени, скорее чтобы попробовать, чем что-то серьёзное сделать. Так что платить всё равно придётся, что-то порядка двухсот баксов в год. Ну и за подобные цены есть ещё несколько сервисов.

Но вернёмся к чисто локальному варианту. И тут мне удалось понять (насколько удалось) следующие вещи:

  1. Если не брать старых моделей (оно, конечно, почему бы и нет, но новые, вроде, получше), то на своей аппаратуре нормально пойдёт только SD 3.5, самая маленькая из последнего поколения.
  2. Всё это дело сильно оптимизировано под NVIDIA. Другие карты будут работать значительно хуже.
  3. Более-менее пристойную производительность можно получить начиная с RTX 2070. Это если только генерировать изображения, без дополнительного тренинга.
  4. Совсем хорошо будет работать на RTX 3080 (это что у меня), но и на ней могут возникнуть проблемы с тренингом, но, вроде, не фатальные, просто ждать в некоторых случаях придётся весьма долго, типа, запускать на ночь.
  5. Для совсем хорошей работы надо бы по крайней мере 16 GB VRAM, а желательно ещё больше.

Что требуется кроме аппаратуры? Установить кучу всего, но на то есть достаточно понятные инструкции. (Тут, кстати, видно ещё одно преимущество онлайновых сервисов: там уже всё установлено и настроено.) При этом надо заметить, что сама по себе Stable Diffusion позволяет общаться с ней только в текстовом режиме. Это, если хотите, движок, а не полноценный продукт. Но к нему есть сразу несколько графических интерфейсов, рекомендуемый на текущим момент — ComfyUI, который работает в том числе со всеми последними моделями и, вроде, обеспечивает полный функционал.

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

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

При этом надо ещё отметить, что тренировать можно не только на образы, но и вообще на всё, что угодно. На стиль например. Скормите модели плоды своих художественных потуг — и она научится рисовать, как вы. Или на цветовую гамму. Или на степень неприличности. Или на моду. На всё, что угодно.

Как происходит собственно тренировка? Есть три основных пути. (Есть ещё и четвёртый, но его многие ругают, так что рассматривать не будем.

1) DreamBooth. Это самый лучший, в плане качества, путь. Модель просто продолжает тренироваться в обычном режиме, все изменение вносятся непосредственно в модель, потенциально меняя любые коэффициенты. Однако, недостатками этого метода являются большой объём результирующей модели (вы получает полный новый файл модели), высокие требования к объёму VRAM и потенциально большая длительность тренировки.

2) Textual Inversion. Это самый простой и быстрый метод, производящий минимальный объём файла. Модель остаётся неизменной, создаются только новые ключевые слова, транслируемые в дополнительные ограничения на то, что модель может сгенерировать. В каком-то смысле, это работает как просто более подробное описание в запросе. В каких-то случаях этого может быть достаточно, в каких-то — нет. Дополнительное преимущество состоит в том, что сгенерированные файлы можно использовать с разными моделями. Например, у вас есть две полные подели для двух книг и один такой файл, описывающий различные позы героев.

3) LoRA, или Low-Rank Adaptation. Нечто промежуточное между двумя предыдущими методами. Здесь также создаётся отдельный файл, но сейчас он действительно содержит новые элементы модели. И точно так же он может использоваться с разными базовыми моделями. Также, если новых элементов не так много и они не слишком сложные, требования на VRAM, по сравнению с DreamBooth, снижаются. До какой-то степени это похоже на мод для игрушки. В процессе генерации изображения в основную последовательность действий по базовой модели вносятся дополнительные шаги по всем дополнительным. Что, в принципе, может несколько ухудшить конечный результат, но, говорят, если и да, то незначительно. Кроме того, при желании LoRA можно слить с базовой моделью, что, вероятно, приведёт к результатам, близким к DreamBooth. Так что, похоже, именно этот метод представляется наиболее предпочтительным для домаенего использования.

Ну и ещё. На разных сайтах есть масса уже готовых TI и LoRA файлов общего назначения доступных для скачивания. Хотя, возможно, не все они бесплатные.

На этом пока всё.

+91
208

0 комментариев, по

3 535 1 621
Наверх Вниз