У локаль­ных веб‑интерфей­сов к Stable Diffusion есть самые раз­ные воз­можнос­ти для улуч­шения резуль­тата генера­ции изоб­ражения. Сегод­ня мы погово­рим о рас­ширени­ях для WebUI reForge. Авто­мати­чес­кое исправ­ление рук и лиц, генера­ция кар­тинок в повышен­ном раз­решении, более «вни­матель­ное» отно­шение модели к мел­ким деталям, сег­менти­рован­ные зап­росы и рас­ширен­ный динами­чес­кий диапа­зон — лишь малая часть из того, что дос­тупно поль­зовате­лю.
 

WebUI reForge dev

Ин­терфейс reForge — это форк WebUI Forge, который, в свою оче­редь, явля­ется фор­ком WebUI AUTOMATIC1111, уже, воз­можно, зна­комо­го тебе по стать­ям «ReForge. Улуч­шаем кар­тинки, генери­руемые Stable Diffusion» и «Сем­пле­ры и шедуле­ры. Раз­бира­ем два важ­ных механиз­ма улуч­шения генера­тив­ных кар­тинок». В пер­вой я рас­ска­зывал об уста­нов­ке про­дук­та на компь­ютер и начале работы, во вто­рой опи­саны раз­ные сем­пле­ры и шедуле­ры.

Се­год­ня же мы будем говорить о рас­ширени­ях (extensions) — как уже встро­енных в про­дукт, так и сто­рон­них. Но преж­де, чем прис­тупить к иссле­дова­нию, мы обно­вим нашу копию веб‑интерфей­са reForge до све­жей сбор­ки и перек­лючим­ся на вет­ку «для раз­работ­чиков», что откро­ет дос­туп к некото­рым вещам, недос­тупным поль­зовате­лям ста­биль­ной сбор­ки.

На стра­нице про­екта перечис­лены вет­ки main, dev, dev2 и experimental; если ты видишь какие‑то дру­гие вет­ки, зна­чит, автор про­екта Panchovix зате­ял оче­ред­ное пере­име­нова­ние. По задум­ке раз­работ­чика, основная вет­ка main дол­жна быть мак­сималь­но ста­биль­ной и сов­мести­мой; в нее вхо­дят обновле­ния из A1111 (в час­тнос­ти, новые сем­пле­ры и шедуле­ры), в ней же сде­ланы пат­чи для одновре­мен­ной заг­рузки нес­коль­ких моделей.

В эту вет­ку не вхо­дят све­жие обновле­ния движ­ка Comfy; что­бы получить к ним дос­туп, нуж­но перек­лючить­ся на вет­ку dev, в которой есть все из main плюс выбороч­ные обновле­ния и фун­кции из Comfy.

В теории эта вет­ка работа­ет быс­трее основной, одна­ко мож­но добить­ся реаль­ного при­рос­та про­изво­дитель­нос­ти, обно­вив вруч­ную torch до вер­сии torch-2.5.1+cu12 и torchvision до вер­сии torchvision-0.20.1+cu124. Обновле­ния луч­ше брать с сай­та про­екта или сра­зу ка­чать wheel с соот­ветс­тву­ющи­ми име­нами фай­лов. Наде­юсь, с уста­нов­кой в пап­ку stable-diffusion-webui-reForge\system\python\Lib\site-packages и чис­ткой «хвос­тов» ста­рых вер­сий ты раз­берешь­ся.

 

Установка reForge dev с нуля

Для начала уста­нови Python вер­сии 3.10 (да, это ста­рая вер­сия Python; нет, с его акту­аль­ной вер­сией работать не будет по край­ней мере часть воз­можнос­тей) и Git, а так­же убе­дись, что они добав­лены в перемен­ную PATH. Python мож­но взять как с офи­циаль­ного сай­та, но ста­рую вер­сию, так и с не­офи­циаль­ного све­жую 3.10.15.

Са­мым пра­виль­ным спо­собом уста­нов­ки reForge dev будет уста­нов­ка «с нуля» в новую пап­ку, нап­ример stable-diffusion-webui-reForge или stable-diffusion-webui-reForge-dev. Раз­работ­чик неод­нократ­но пере­име­новы­вал фай­лы, выносил встро­енные рас­ширения «наружу» и совер­шал обратные опе­рации, в резуль­тате чего обра­зова­лось мно­жес­тво «хвос­тов» в виде «завис­ших» папок __pycache__, из‑за которых обра­зова­лись кон­флик­ты меж­ду остатка­ми рас­ширений.

Раз­работ­чик рекомен­дует для это­го такую пос­ледова­тель­ность команд:

git clone https://github.com/Panchovix/stable-diffusion-webui-reForge.git
cd stable-diffusion-webui-reForge
git checkout dev

Вни­мание: уста­новив све­жую сбор­ку reForge, пока не запус­кай про­дукт! Для начала отре­дак­тируй файл webui-user.bat, ука­зав сле­дующий путь к пап­ке venv:

set VENV_DIR=%\~dp0venv

Эта перемен­ная ука­зыва­ет, что нуж­но соз­дать изо­лиро­ван­ное окру­жение для кон­крет­ной сбор­ки reForge. Это поз­воля­ет избе­жать кон­флик­тов в уста­нов­ленных пакетах и зависи­мос­тях.

В этом же фай­ле мож­но ука­зать еще и ряд перемен­ных, спо­соб­ных уве­личить про­изво­дитель­ность, изме­нить пути к моделям и вклю­чить тем­ную тему интерфей­са. Перечис­лю основные — они ука­зыва­ются в стро­ку, ее мож­но прос­то вста­вить в файл webui-user.bat; исполь­зовать их, разуме­ется, не обя­затель­но — параметр COMMANDLINE_ARGS мож­но оста­вить пус­тым.

set COMMANDLINE_ARGS=--vae-in-bf16 --pin-shared-memory --cuda-malloc --cuda-stream --theme dark

Все парамет­ры, кро­ме --theme dark, который акти­виру­ет тем­ную тему, отно­сят­ся к повыше­нию про­изво­дитель­нос­ти; если твоя виде­окар­та несов­мести­ма с какими‑либо из этих парамет­ров, не исполь­зуй их. Узнать, под­держи­вают­ся ли они, мож­но толь­ко пос­ле пол­ной уста­нов­ки и пер­вого запус­ка reForge; если при запус­ке в тер­минале выводят­ся подоб­ные стро­ки, то их име­ет смысл поп­робовать:

Hint: your device supports --pin-shared-memory for potential speed improvements, but may cause issues.

Hint: your device supports --cuda-malloc for potential speed improvements.

Hint: your device supports --cuda-stream for potential speed improvements, but may cause some issues.

 

Пути к моделям

Ба­зовые модели, а так­же все­воз­можные лоры и тек­сто­вые инверсии удоб­но хра­нить отдель­но от основной уста­нов­ки WebUI, в том чис­ле на дру­гом дис­ке. К при­меру, мож­но ука­зать сле­дующие пути:

set COMMANDLINE_ARGS=%COMMANDLINE_ARGS%^
--models-dir "%CD:~0,2%/models/"

С такими нас­трой­ками модели (как базовые, так и те, которые хра­нят­ся по умол­чанию в пап­ке \stable-diffusion-webui-reForge\models) дол­жны будут находить­ся в пап­ке /models того же дис­ка, куда уста­нов­лен reForge. Соот­ветс­твен­но, если ты решишь исполь­зовать такую схе­му, тебе нуж­но будет перенес­ти всю пап­ку моделей в корень дис­ка:

\stable-diffusion-webui-reForge\models \models

Так­же сто­ит сра­зу ска­чать в пап­ку \models\Stable-Diffusion какую‑нибудь модель SDXL — нап­ример, gtmUltimateBlendXL_v25CosXL, с которой мы будем экспе­римен­тировать даль­ше. Если ты это­го не сде­лаешь, то одна из моделей для начала работы будет ска­чана авто­мати­чес­ки.

Рань­ше это была реалис­тичная модель с архи­тек­турой SD1.5:

realisticVisionV51_v51VAE.safetensors

С недав­них пор раз­работ­чик reForge заменил модель, и теперь по умол­чанию будет ска­чана модель NoobAI 1.1 EPS, а имен­но файл NoobAI-XL-v1.1.safetensors. Обра­ти вни­мание: эта модель име­ет мало обще­го с обыч­ными моделя­ми SDXL; она уме­ет генери­ровать толь­ко ани­ме‑изоб­ражения, при­чем зап­рос нуж­но сос­тавлять из тегов Danbooru. Короче говоря, выбери и ска­чай в нуж­ную пап­ку более уни­вер­саль­ную модель.

При­меры моделей:

  • AlbedoBase XL — удач­ная уни­вер­саль­ная модель с мак­сималь­но широким пок­рыти­ем име­ющих­ся в рам­ках SDXL кон­цепций.
  • CyberRealistic — еще одна качес­твен­ная, отлично сба­лан­сирован­ная модель с укло­ном в реализм.
  • KIKA_real — инте­рес­ная модель с укло­ном в кре­атив­ность.
  • Zaxious_XL — еще одна модель с укло­ном в кре­атив­ность.
  • GTM UltimateBlend_XL — модель клас­са CosXL; серь­езно отли­чает­ся от любых дру­гих моделей; несов­мести­ма с RAUNet, но спо­соб­на выдавать качес­твен­ный резуль­тат.

Для генера­ции изоб­ражений в сти­ле ани­ме на сегод­няшний день луч­ше все­го исполь­зовать одну из моделей на осно­ве Illustrious. Модели семей­ства v-pred име­ют ряд осо­бен­ностей, и к ним неп­римени­мы некото­рые из опи­сан­ных ниже при­емов.

Пол­ностью сфор­мирован­ный файл webui-user.bat может выг­лядеть приб­лизитель­но сле­дующим обра­зом:

@echo off
set PYTHON=
set GIT=
set VENV_DIR=%\~dp0venv
set COMMANDLINE_ARGS=--vae-in-bf16 --pin-shared-memory --cuda-malloc --cuda-stream --theme dark
set COMMANDLINE_ARGS=%COMMANDLINE_ARGS%\^
--models-dir "%CD:\~0,2%/models/"
call webui.bat

Да­лее запус­ти файл webui-user.bat и дож­дись уста­нов­ки всех пакетов. Если в про­цес­се воз­никнет ошиб­ка «python.exe: no module named pip», тебе нуж­но будет зай­ти в пап­ку, в которой у тебя уста­нов­лен Python (напоми­наю: годит­ся толь­ко вер­сия Python 3.10), и выпол­нить сле­дующую коман­ду:

python -m ensurepip

Пос­ле это­го будут ска­чаны и уста­нов­лены зависи­мос­ти (око­ло 6,5 Гбайт) и прог­рамма наконец запус­тится.

 

Обновление существующей сборки

Ес­ли у тебя уже уста­нов­лена ста­биль­ная сбор­ка main, ты можешь поп­робовать перек­лючить­ся на вет­ку dev, открыв коман­дную стро­ку в пап­ке stable-diffusion-webui-reForge\webui пос­ледова­тель­ностью команд:

git switch dev
git pull

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

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

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

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

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

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

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии