Ты, навер­ное, уже нас­лышан о ней­рон­ке Stable Diffusion, рису­ющей кар­тинки локаль­но на тво­ем компь­юте­ре без вся­ких сер­висов с плат­ными токена­ми. Недав­но выш­ла новая вер­сия — SDXL, то есть «Extra Large». В этой статье мы с тобой уста­новим ее и пос­мотрим, как она генери­рует кар­тинки.
 

Приступаем

Что­бы гонять SDXL локаль­но, нам пот­ребу­ется виде­окар­та отно­ситель­но све­жего поколе­ния и хотя бы 6 Гбайт виде­опа­мяти, так­же подой­дет «мак» с чипом серии M. Одна­ко я буду все делать в Windows на машине с кар­той Nvidia.

www

Ес­ли у тебя кар­та AMD, можешь гля­нуть инс­трук­цию на Medium и ви­деоту­тори­ал.

Ус­танов­щик будет качать и ста­вить мно­гочис­ленные модули общим объ­емом 10–15 Гбайт, так что пред­лагаю про­мотать статью вниз и сра­зу запус­тить про­цесс, что­бы все успе­ло ска­чать­ся, пока ты чита­ешь статью.

Те­бе понадо­бит­ся Python вер­сии 3.10, и никакой дру­гой — в акту­аль­ной сбор­ке Python 3.12 не работа­ют некото­рые нуж­ные пакеты. Ска­чать его можешь с офи­циаль­ного сай­та.

Ус­тановив Python, ска­чай при­ложе­ние Fooocus со стра­ницы про­екта на GitHub. Рас­пакуй архив в пап­ку, куда будет уста­нов­лено при­ложе­ние, и запус­ти уста­нов­щик одной из команд:

  • run.bat — будет ска­чана модель обще­го наз­начения;
  • run-realistic.bat — будет ска­чана фоторе­алис­тичная модель;
  • run-anime.bat — ска­чает модель, которая будет генери­ровать изоб­ражения в сти­ле ани­ме.

Пов­торюсь, вре­мени это зай­мет мно­го — про­ект исполь­зует сот­ню с неболь­шим пакетов, а для его работы понадо­бит­ся ска­чать файл модели SDXL раз­мером в 6,5 Гбайт. Пока это про­исхо­дит, раз­берем­ся, что это за Fooocus такой и какое отно­шение он име­ет к Stable Diffusion.

 

Stable Diffusion XL в облаке

По­ка ска­чива­ются необ­ходимые для работы Fooocus фай­лы, Stable Diffusion XL мож­но опро­бовать быс­тро и совер­шенно бес­плат­но, вос­поль­зовав­шись DreamStudio — офи­циаль­ным облачным сер­висом, соз­данным в Stability AI.

Ин­терфейс прос­той: стро­ка вво­да, выбор соот­ношения сто­рон и количес­тва генери­руемых изоб­ражений. Сис­тема даже под­ста­вит слу­чай­ный зап­рос — в моем слу­чае это «a woman holding a gun stands in a desert 1800’s America Western town». Зап­рос не хуже дру­гих, будем и даль­ше отталки­вать­ся от него.

Жму на кноп­ку, через нес­коль­ко секунд изоб­ражения готовы. Их мож­но ска­чать «как есть», в раз­решении 1024 на 1024, или вос­поль­зовать­ся умным алго­рит­мом повыше­ния раз­решения ESRGAN.

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

Од­нако сра­зу бро­сают­ся в гла­за извес­тные боляч­ки ней­росетей: лица и конеч­ности. Лицо, кис­ти рук — извечная беда Stable Diffusion. И если с кис­тями рук все не так однознач­но (слиш­ком гиб­кие, слиш­ком мно­го воз­можных положе­ний), то лица ней­росеть дол­жна генери­ровать иде­аль­но — но толь­ко если у нее дос­таточ­но прос­транс­тва для работы.

Суть проб­лемы: изоб­ражения соз­дают­ся в низ­ком раз­решении; в резуль­тате тех пик­селей из пол­ного раз­решения в 1024 на 1024 точ­ки, которые занима­ет неболь­шое на отда­лении лицо, прос­то недос­таточ­но, что­бы тща­тель­но отри­совать объ­ект. С этой бедой мож­но спра­вить­ся, чем мы и зай­мем­ся чуть поз­же, уже в локаль­ной вер­сии Stable Diffusion.

 

Локальные дистрибутивы Stable Diffusion

Са­ма по себе Stable Diffusion работа­ет через коман­дную стро­ку и тре­бует опре­делен­ных навыков для уста­нов­ки и исполь­зования. Делать это вруч­ную нет никакой необ­ходимос­ти: в сети дос­таточ­но готовых сбо­рок, где к ней­росети прик­ручен локаль­ный веб‑интерфейс (а иног­да и не веб; есть сбор­ки, в которых вза­имо­дей­ствие с сетью сде­лано в виде отдель­ного при­ложе­ния, обыч­но для Windows). Новому поль­зовате­лю разоб­рать­ся во всех этих сбор­ках и отли­чиях меж­ду ними неп­росто.

По­жалуй, самая популяр­ная сбор­ка для обла­дате­лей карт Nvidia — это Stable Diffusion web UI, она же — AUTOMATIC1111. Одна­ко не так прос­то будет с нуля разоб­рать­ся во всех парамет­рах генера­ции, а пер­вые резуль­таты, веро­ятно, не поразят качес­твом. Более того, сам про­цесс генера­ции на сла­бой виде­окар­те может ока­зать­ся нас­толь­ко мед­ленным, что ты можешь подумать, что вся эта воз­ня не для тебя. Все это впол­не реша­емо, и AUTOMATIC1111 не зря самая популяр­ная сбор­ка. Тем не менее начинать работать со Stable Diffusion я рекомен­дую с чего‑то более прос­того, и Fooocus для это­го под­ходит иде­аль­но.

Какие вообще бывают сборки?

Сбо­рок Stable Diffusion мно­жес­тво, я упо­мяну толь­ко те, что меня заин­тересо­вали боль­ше дру­гих.

  • Fooocus — иде­аль­на для начина­ющих, сра­зу выда­ет кар­тинки отлично­го качес­тва, хорошо работа­ет как на сла­бых, так и на мощ­ных виде­окар­тах. В то же вре­мя серь­езно огра­ничи­вает поль­зовате­ля.
  • AUTOMATIC1111 — один из наибо­лее популяр­ных про­ектов. Здесь есть огромные воз­можнос­ти для рас­ширения через под­клю­чаемые модули. Но здесь доволь­но высокий порог вхож­дения. Как пра­вило, если появ­ляет­ся какое‑нибудь новое инте­рес­ное решение для Stable Diffusion, то в пер­вую оче­редь оно офор­мля­ется в виде рас­ширения для A1111.
  • Форк AUTOMATIC1111 за авторс­твом vladmandic — тут еще более широкие воз­можнос­ти, но и еще более высокий порог вхож­дения по срав­нению с ори­гина­лом. Мно­гие полез­ные рас­ширения, которые в A1111 нуж­но искать и уста­нав­ливать самос­тоятель­но, уже вхо­дят в сбор­ку, но мне уда­лось добить­ся ста­биль­ной работы лишь с треть­ей попыт­ки.

Три перечис­ленные выше сбор­ки исполь­зуют уни­фици­рован­ный син­таксис для сос­тавле­ния зап­росов. Это полез­но, нап­ример, для того, что­бы прос­то ско­пиро­вать зап­рос с сай­та Civitai.

  • InvokeAI — еще один инте­рес­ный про­дукт. Син­таксис отли­чает­ся, а поль­зователь­ский интерфейс отли­чает­ся очень силь­но.
  • ComfyUI — про­ект с уни­каль­ным интерфей­сом, наз­вание которо­го, впро­чем, не дол­жно тебя обма­нуть: ничего осо­бен­но ком­фор­тно­го тут нет. Что­бы сге­нери­ровать кар­тинку, нуж­но соз­давать узлы и соеди­нять их стре­лоч­ками, как это делалось в ста­родав­ние вре­мена на блок‑схе­мах, которые изу­чались на уро­ках информа­тики.
  • nod.ai SHARK — про­ект, опти­мизи­рован­ный для карт AMD. Дру­гие про­екты могут работать с кар­тами AMD, но у SHARK это получа­ется нам­ного луч­ше.
 

Первый запуск

Ког­да уста­нов­ка Fooocus завер­шится, мож­но запус­кать. В зависи­мос­ти от того, какой файл ты запус­тишь, прог­рамма исполь­зует пре­дус­танов­ленные нас­трой­ки для генера­ции изоб­ражений одно­го из перечис­ленных типов. При пер­вом запус­ке соот­ветс­тву­юще­го фай­ла нуж­ная модель (раз­мером 6,5 Гбайт) будет ска­чана авто­мати­чес­ки. В бра­узе­ре откро­ется пус­тое окно с полем вво­да и боль­шой кноп­кой Generate.

Вво­дим зап­рос:

a woman holding a gun stands in a desert 1800's America Western town

Че­рез нес­коль­ко секунд получа­ем пару изоб­ражений.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    8 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии