У локаль­ных веб‑интерфей­сов к 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.12 (да, это ста­рая вер­сия Python; нет, 3.13 ста­вить не сто­ит, часть рас­ширений не заведет­ся) и Git, а так­же убе­дись, что они добав­лены в перемен­ную PATH. Python мож­но взять с офи­циаль­ного сай­та.

Са­мым пра­виль­ным спо­собом уста­нов­ки 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, пока не запус­кай про­дукт! Для начала отре­дак­тируй файл environment.bat и вклю­чи venv:

set SKIP_VENV=0

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

В фай­ле webui\webui-user.bat мож­но ука­зать еще и ряд перемен­ных, спо­соб­ных уве­личить про­изво­дитель­ность, изме­нить пути к моделям и вклю­чить тем­ную тему интерфей­са. Перечис­лю основные — они ука­зыва­ются в стро­ку, ее мож­но прос­то вста­вить в файл 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=
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 -m ensurepip

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

 

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

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

git switch dev
git pull

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

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

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

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


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

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

    Подписаться

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