Забавно е как историята на изданията на отворени модели за преобразуване на текстови подсказки в картинки, разработвани и обучавани от компанията Stability AI, прилича на поредицата от възходи и падения на последователно излизалите версии на операционната система Microsoft. След легендарно успешната XP, припомняме, се появи проблемната Vista; след това великолепната „седмица“ — а след нея безплодната Windows 8. При Stable Diffusion, след първоначално непривлекателната, но постепенно усъвършенствана от ентусиасти версия 1.5, последва откровено неуспешната SD 2.0 — неуспешна, всъщност, защото включваше нетипичния за подобни модели кодировчик OpenCLIP, от . В хода на такова подбиране бяха отстранени не само неподходящи (NSFW) визуални референции, но и картини и илюстрации, създадени от популярни художници като пресловутия Грег Рутковски (Greg Rutkowski). Именно последното окончателно ядоса ентусиастите: ако за SD 1.5 дори в оригиналния вариант, без използване на специално обучени чекпойнтове, прекрасно сработваха прости подсказки със стилове — „епична средновековна фентъзи пейзаж, в стила на Грег Рутковски“ — и резултатът беше впечатляващ, то SD 2.0 спря да „разпознава“ имената на най-широко известните илюстратори, чиито авторски права върху създадените произведения все още са валидни и които не са предоставили тези произведения за обучение на ИИ. Наложи се да се използват повече думи за описание на желаното, а с прекалено дълги подсказки моделът се справяше слабо.

Седна — стани, седна — стани
В комбинация с променен кодек (преобразувател на текстови подказки в цифрови токени, с които моделът работи след това) невъзможността да се прилагат именувани стилове просто е лишила ентусиастите от мотивация да доработят "двойката" със собствените си усилия. Наистина: тук трябваше паралелно да се справят с това, как да адаптират вече утвърдената техника за съставяне на подказки за новия кодек и да обучават модела да разпознава тези образи и теми, с които създателите не са го запознали на етапа на първичното обучение – а качествената разлика от "полуторката" генерираните от "двойката" изображения все пак не гарантираха. Да, от стандартния размер 512×512 пиксела за SD 1.5 се откри качествена стъпка до 768×768, но към онзи момент общността вече широко използваше апскейлери, аутпейнтери и други инструменти за увеличаване на размера на крайното изображение, така че SD 2.0 премина, по същество, незабелязано. SDXL (разработен от OpenAI и използван, по-специално, от проекта DALL-E) — кодът му също е отворен, но базата данни, на която е обучен, , е проприетарна. В допълнение, стандартният размер на платното на "Оверсайза" нарасна до 1024×1024, плюс се появи цял ред от допълнителни усъвършенствания, така че ентусиастите с удоволствие се заеха с доработването му. И към настоящия момент именно SDXL (както и по-новите производни, които не изискват толкова много "желязо", като и ) може уверено да се счита за най-популярния ИИ-генератор на изображения с отворен код. Въпреки това, заклети почитатели на SD 1.5 аргументирано спорят с това, посочвайки, че толкова важни инструменти, като ControlNet, в SDXL .
И ето, че от 12 юни 2024 г., в момента на "освобождаването на кода в дивата природа", позволяващ локални генерации, трябваше да настъпи времето на "отворената" версия SD 3 — ако сме по-точни, това е (SD3M или SD3 2B) с 2 млрд. работни параметри. Условно, напомняме, това число съответства на общия брой на теглата на входовете на всички перцептрони на модела. Още по-рано, през април, Stability AI доведе до съвършенство и предложи за търговска употреба 8-милионната (по брой параметри) , тя също е SD3 8B. При SDXL 1.0, напомняме, — , но SD3M, по твърдения на разработчиците, е . Имаше предвид, че с по-ниски, отколкото при «Oversize», изисквания за видео памет, дори в отговор на по-прости подсказки, тя трябваше да предоставя изображения «с ново ниво на фоторедакторска реалистичност». Сред предимствата на «тройката» също бяха посочени «безпрецедентно качество на типографията получен на генерираните изображения текст», «задълбочено разбиране на подсказките чрез обединени усилия на три кодера» и «готовност за ефективно дообучение дори на ограничени набори данни».

Очевидно е, че общността на ентусиастите, получавайки новата дългоочаквана играчка, ще започне да я усъвършенства с толкова голямо старание, колкото и «половинката» и «Oversize» в своето време. Обаче, от самото начало всичко тръгна наопаки: SD3M през първите часове след публикуването на файловете на модела в Hugging Face и Civitai своите последователи, и то два пъти. Първият път — с необяснима на пръв поглед идиосинкразия към подсказките, включващи привидно невинната фраза «лежа на/в трева» (lying on/in the grass); вторият — с невероятно неясни формулировки в потребителското споразумение, в които не можеха веднага да се ориентират дори професионални юристи. И макар от гледна точка на обикновения ентусиаст ИИ изкуствата последното да изглежда незначително, на по-нататъшното развитие на модела именно законният аспект ще се отрази по най-пряк начин — до степен, в която може и да не последва никаво развитие.
Предишните творения на Stable Diffusion с отворен код (точно казано, с отворени стойности на невронните мрежови тежести, достъпни за безплатно изтегляне и последващо локално изпълнение), като SDXL, бяха придружени от една от типичните за генеративните модели с такива характеристики, като «безсрочна, световна, неизключителна, безплатна, безвъзмездна, неотменима лицензия за авторско право с цел възпроизвеждане, подготовка, публична демонстрация, публично изпълнение, сублицензиране и разпространение на допълнителни материали както на самия модел, така и на производните от него». «Троечката» предвижда две разновидности лицензиране: — с доста разхлабващи формулировки като «Stability AI ви предоставя неизключителна, световна, непередаваема, неподлежаща на сублицензиране, оттегляща се, безвъзмездна и ограничена лицензия за интелектуална собственост» — и .
Тревата не води до добро
Съвсем скоро след това, обществото стигна до заключението, че . И по същество обяви бойкот на компанията-разработчик, не желаейки да губи време и усилия за дообучение на открито суровата и разпокъсана модел — с осъзнаването, че Stability AI по всяко време може да отзове лиценза, предоставен на конкретен ентусиаст, който извършва такова дообучение. Лицензионният договор е формулиран така, че у неюристите, които го изучават, да се създаде впечатление, че след отзоваването на разрешението за търговско приложение SD3M, предишният му получател е длъжен да изтрие всички създадени от него производни от лицензирана интелектуална собственост, включително както самите дообучени модели (LoRA, текстови инверсии, цели чекпойнти), така и техните производни (цитата: «При прекратяване на това споразумение, вие трябва да изтриете и да спрете да използвате всякакви софтуерни продукти или производни произведения») — т.е. плодове от труда на вече други хора, използвали тези производни модели като отправна точка за собствената си работа; и то никому и никога не платено, извършено на чист ентусиазъм.
Скоро след като валът на възмущението по този въпрос достигна стратосферни височини, започнаха да се появяват съобщения и от професионални юристи, а какво, ако отзивът за забрана на по-нататъшното използване на практика трябва да се отнася само за някои помощни продукти с затворен код, които Stability AI ще предаде на търговския потребител (да кажем, за ускоряване и оптимизиране на същото дообучение на SD3M), — но самата компания все още не е предоставила окончателни разяснения по този въпрос. И самият факт на толкова потискащо мълчание в продължение на три седмици (към момента на писането на тази статия) от момента на появата на „тройката“ в отворен достъп вреди на репутацията на разработчика значително повече, отколкото тревата — генерираните от неговото творение момичета.

Що се отнася до прословутата трева, която буквално за кратко време стана мем , а след това и практически на всички по-или по-малко профилни платформи в мрежата, се оказа, че присъствието на подсказка с фраза като „a girl lying on the grass“ води до появата в резултатите на „тройката“ не просто на халюцинации, но и на ужасни създания с болна — в медицинския смисъл — фантазия на художници и режисьори, специализирани в body horror (призоваваме, ако разсъдъкът и животът ви са скъпи, — дръжте се далеч от подобно и дори не се опитвайте да въведете тази фраза в търсачката за изображения с изключен защитен филтър). При това изображенията на стоящи — и в малко по-малка степен на седящи — хора се получават „тройката“ с уверена четворка с плюс, а портретите понякога са просто безупречни; поне не по-лоши от основния модел SDXL 1.0, — проблемът тук е именно в някакво вътрешно табу на хоризонталното положение на човешкото тяло.
Съдейки по коментара на Емад Мостака (Emad Mostaque), основателя и бившия (до март 2024 г.) ръководител на Stability AI, който напусна компанията, за да , грубото насилие над SD3M точно преди откритие на теглата ѝ за ограничено некомерческо използване (API на по-големия модел SD3 8B за онлайн генерация, припомняме, , но теглата ѝ остават скрити) стана следствие на стремежа на настоящето ръководство към безопасност — , формулирани още през март тази година като . Именно в рамките на тази политика с приложението на генеративния модел SD3M на потребителите не е разрешено да "извършват, популяризират, улесняват, поощряват, планират, подстрекават или допринасят за по-нататъшно насилие, тероризъм или създаване на съдържание, което предизвиква ненавист и дискриминира или заплашва защитена група хора (независимо дали по признаци на пол, етническа принадлежност, сексуална идентичност или ориентация, религия и др.)", така че нямате шанс за изображения на панди, борещи се с голи дракони! Само котки с смешни шапки, кучета в сладки якета, бутилки с непознато съдържание и пресни бисквити направо от фурната!
Говорейки технически, вероятно изпразването на модела е било свързано с това, че от тренировъчния набор данни просто са били отстранени изображения с лежащи хора и други картинки, които по някакъв начин предполагали непристойно тълкуване, — и затова сега "тройката" просто "не разбира" значението на думата "лежа". Или обновената архитектура SD3 е позволила достатъчно уверено да се идентифицират теглата на перцептроните, активиращи се по време на генерирането на "недопустими" изображения, — и тези тегла са били целенасочено нулирани преди пускането, в резултат на което се е получило "временно халюциниране". Вероятно, : кодиращото устройство правилно превежда текста в токени, но в "обезопасеното" латентно пространство тези токени вече не сочат към нищо конкретно, и затова резултиращите пиксели се разполагат на картинката по същество произволно.

Като се има предвид наличието на API на пълноценния, но затворен модел SD3 8B вече в продължение на няколко месеца и горещите уверения на медиамениджърите на Stability AI, че "компактифицирания" 2B , ентусиастите по ИИ рисуването посрещнаха пускането на теглата на SD3M на 12 юни с горещи емоции: . В момента все още е възможно да я получите, макар и по малко по-завъртян начин, отколкото е обичайно за чекпойнтите SDXL и SD 1.5. Собствено, обичайният път е обращение към сайта Civitai, от който повечето модели се изтеглят без регистрация, но от 17 юни и до момента на предаване на настоящата статия за верстка, страницата на този сайт, посветена на "тройката", . А причината е една: търговската лицензия за SD3M е написана толкова неясно, че дори юристите на Civitai взеха пауза, за да я проучат по-внимателно. И ако някой ентусиаст обучи на своя ПК LoRA за "тройката" и я публикува в Civitai, а Stability AI изведнъж реши, че резултатът е неподходящ и отзове лицензията от виновника, — как тогава да постъпи сайтът-хостинг? Той не просто разполага чекпойнти, помощни циклограми и модели, но също така предоставя на посетителите възможност за облачна генерация на изображения, обучение на същите LoRA, текстови инверсии и др. Общо взето, докато се решава въпросът, файловете на самия модел и трите преобразователя заедно с него могат да бъдат получени само .
Да започваме
Истината е, че има нюанс: за да получите достъп до линковете за изтегляне, е необходимо да се регистрирате на сайта и след това да потвърдите приемането на споменатото по-рано драконово лицензионно споразумение — обаче, тази процедура е безплатна и напълно достъпна от Русия. Предлагат се общо четири варианта на самите модели (models) и четири — на преобразователите на текстова подсказка в токени (encoders), плюс три стандартни циклограми за изпълнение в работната среда ComfyUI, :
модели:
- sd3_medium.safetensors
- sd3_medium_incl_clips.safetensors
- sd3_medium_incl_clips_t5xxlfp8.safetensors
- sd3_medium_incl_clips_t5xxlfp16.safetensors
кодировачи:
- clip_g.safetensors
- clip_l.safetensors
- t5xxl_fp8_e4m3fn.safetensors
- t5xxl_fp16.safetensors
циклограми:
- sd3_medium_example_workflow_basic.json
- sd3_medium_example_workflow_multi_prompt.json
- sd3_medium_example_workflow_upscaling.json
В настоящата „Мастърска“ ограничаваме до базовия модел sd3_medium.safetensors (4.2 ГБ), три кодировчика — clip_g.safetensors (1.3 ГБ), clip_l.safetensors (234 МБ) и t5xxl_fp8_e4m3fn.safetensors (4.7 ГБ), както и циклограма sd3_medium_example_workflow_multi_prompt.json. Факт е, че на нашата тестова машина е инсталирана, припомняме, видео карта GeForce GTX 1070 с 8 ГБ видео памет, а в този обем не могат да се вместят по-големи модели с всички интегрирани преобразователи наведнъж. При чекпойтовете на базата на SD 1.5 и SDXL кодировците по подразбиране са вградени в основния файл, но в този случай тези преобразователи не са два, а три, заедно общо над 6 ГБ, — в съчетание с самия модел вече се получава над 10 ГБ; а ако вземете 16-битовата версия на кодировчика T5XXL, ще е необходима още по-впечатляваща видео карта. В случая, когато първо в видео паметта се зареждат преобразователите на текст в токени, а след това вече работещият с тези токени модел, чудесно би могло да се мине и с графичен адаптер с 6 ГБ. От тази гледна точка модулната „тройка“ безспорно печели спрямо типичния SDXL чекпойнт на 5-7 ГБ.
SD3M представлява модел на базата на мултимодални дифузионни трансформатори () — и следователно принципно се различава от по-ранните разработки на Stability AI (и не само от нея), които се основават на „Мастърската“ не е място за задълбочено проучване на разликата между тези подходи към ИИ-генерация на изображения; можем да споменем само, че , възможността му да работи с по-голям брой токени (което от своя страна позволява на оператора да формулира доста пространни текстови подсказки, а на системата — да им следва достатъчно точно), както и по-добро качество на получените в края на краищата изображения. Пълноразмерният SD3 8B е способен да генерира изображения на платно с 4 Мпикс (2048×2048 пиксела), а също така в такива аспекти, като възпроизвеждане на текст в изображението, точност на съответствието на получената картина с текстовата подсказка и обща визуална естетика. Преобразуването на текста в вектор на токени тук се извършва веднага от три кодировчика ( и един T5-XXL — „T5“, между другото, от ) — и, всъщност, те не са задължени да работят с един и същ жокер.

Но достатъчно за уводите: да преминем към темата на "Мастерклас", — генерирането на изображения на база модела SD3M. За целта ще използваме, както вече споменахме, работната среда ComfyUI, която можете да изтеглите . Нека подчертаем, че този вариант е само за изпълнение на графични адаптери NVIDIA или директно на ЦП AMD или Intel (което разбира се, ще бъде значително по-бавно): собствениците на видеокарти AMD rocm и pytorch, които могат да се инсталират чрез мениджъра за пакети pip.
След инсталирането на работната среда, трябва да поставите свалените по-рано файлове .safetensors: моделите — в директорията ComfyUImodelscheckpoints, а трансформаторите на текст в токени — в ComfyUImodelsclip. И — можем да започнем!
Време е да ускорим
Заслужава да се спомене, че AUTOMATIC1111, добре известна на читателите на предишните "Мастеркласове" по тема ИИ-рисуване работна среда, към края на юни също , обаче в ComfyUI поддръжката на новия модел все още остава най-пълна. Не е изненадващо — преди съвсем наскоро авторът на "пастата" монстра, известен на общността от ентусиасти под никнейма ComfyAnonimous, или просто Comfy, , където работеше, по-специално, над вътрешнокорпоративна работна среда, която използват самите разработчици. Както ще видим малко по-късно, най-новата версия на ComfyUI наистина свидетелства за наличието у автора й на определени инсайдерски сведения относно това как е организиран и функционира този противоречив модел, — инсайдерски сведения, с които създателите на други работни среди за локално изпълнение на Stable Diffusion 3 Medium по очевидни причини не могат да се похвалят.

Инсталирането на ComfyUI в портативна версия под Windows е изключително лесно: след изтеглянето на съответния ZIP архив достатъчно е да го разархивирате в удобен каталог; за предпочитане, разбира се, на логически дял, базиран на SSD, а не на HDD, — обменът между устройството и паметта, с оглед на предстоящите цикли на зареждане и изпразване на моделите, дори за генериране на една единствена картинка (средата първо трябва да зареди в видеопаметта преобразувателите на текст в токени, след това да освободи видеопаметта и да зареди собствения SD3M) се очаква да е по-масивен, колкото по-малко видеопамет разполага този компютър. Между другото, преносимата инсталация е добра и със своята пълна независимост: нищо — с изключение на обема на свободното пространство на логическия диск — не пречи да разположите локално неограничен брой копия на ComfyUI, за да експериментирате с различни разширения, без страх от повреда на вече наложената и отлично работеща система.

Убедете се, че файлът с основния модел SD3M без вградени текстови кодировчици (файл stableDiffusion3SD3_sd3Medium.safetensors, 4,2 ГБ) е поставен в подкаталога checkpoints (в нашия тестов инсталационен случай, пълният път е C:Fun-n-GamesComfyUI-SD3ComfyUImodelscheckpoints), а трите модела на кодировчици (файловете stableDiffusion3SD3_textEncoderClipG.safetensors, stableDiffusion3SD3_textEncoderClipL.safetensors и stableDiffusion3SD3_textEncoderT5E4m3fn.safetensors; 1,3 ГБ, 234 МБ и 4,7 ГБ съответно) — в подкаталога clip (C:Fun-n-GamesComfyUI-SD3ComfyUImodelsclip), можете да стартирате работната среда с двоен клик по файла run_nvidia_gpu.bat в основната папка (в нашия случай C:Fun-n-GamesComfyUI-SD3). След стартиране на сървъра, в появилото се прозорче на командния ред на Windows, браузърът по подразбиране автоматично (както е зададено в настройките на BAT-файла) ще отвори нов таб, в който по адрес 127.0.0.1/8188 ще бъде достъпен уеб-интерфейсът. (нека бъде само в първоначалното приближение) «пастак».

По принцип, ако разполагате с по-съвременна видеокарта NVIDIA (от поколение RTX, а не GTX, дори и с 6 ГБ видео RAM), можете веднага да заредите в работната среда основната циклограма, създадена от самия ComfyAnonimous, за която вече споменахме - файл comfy_example_workflows_sd3_medium_example_workflow_multi_prompt.json с множество прозорци за въвеждане на подсказки, по един за всеки от трите кодировача, - и да работите с нея. Все пак, първо ще трябва да приведете четирите имена на файловете с модели (в нодовете за зареждане) в съответствие с наличните. Авторът на основната циклограма очевидно е работил на своето работно място (в Stability AI, както вече споменахме) с локално достъпни файлове, които са имали малко по-различни имена, така че, ако натиснете бутона „Queue Prompt“ в спартанския интерфейс на ComfyUI веднага след зареждането на циклограмата, работната среда ще издаде съобщение за грешка.
Трехполе за ИИ-генерация
Въпреки това, е лесно да се поправи: много по-отчайващо е, че нашата устаряла GTX 1070 обработва SD3M чудовищно бавно - генерирането на изображение отнема 27-30 секунди за всяка итерация и, ако вземем предвид, че параметърът „Steps“ в основната циклограма е зададен на „28“, времето отива необосновано много. Затова ще направим малка оптимизация - ще използваме Python модула venv (), който е предназначен, по-специално, да ускори работата на генеративните ИИ модели. В комплекта на портативната версия на ComfyUI не е включен, , които в крайна сметка се свеждат до разгръщането на пълна Python среда на локалния компютър - и активирането на необходимия модул от тази среда.

Нека да се надяваме, че читателите, следящи нашите „Мастърски“, вече разполагат с активна работна инсталация на AUTOMATIC1111 на машините си. В този случай всичко е много по-просто: модулът venv вече е разположен, и всичко, което трябва да направите за активирането му при стартиране на работната среда ComfyUI, е . Първо трябва да завършите работата на сървъра, като превключите на неговия прозорец и натиснете «Ctrl» + «C», след което въведете «y» за потвърждение; след това — копирайте BAT файла run_nvidia_gpu.bat в нов, с име, да речем, run_with_venv.bat. Изходният файл за стартиране е много лаконичен — той просто извиква портативно инсталираната версия на Python с параметър —windows-standalone-build:
.python_embededpython.exe -s ComfyUImain.py —windows-standalone-build
pause
Този параметър сам по себе си не е твърде еднозначен — той подсказва за определени оптимизации, които вероятно са предназначени за по-нови графични адаптери NVIDIA и следователно могат да затруднят живота на тези, които все още остават верни на своите заслужени GTX. По тази причина ще отстраним —windows-standalone-build от командния ред, а заедно с него ще се откажем и от друга модерна оптимизация — активния по подразбиране «умен мениджър на паметта», smart memory, който , без да я освобождава. Това наистина ускорява рисуването на ИИ картинки, но едновременно с това превръща нашия морално остарял компютър в еднофункционална система — нито може да се занимавате с уеб сърфиране, нито да играете, нито дори да работите с документи и имейл на компютъра паралелно с активността на работната среда. И така, за тези, които нямат отделен компютър за ИИ изкуства, оптималният вариант е такъв BAT файл за стартиране на ComfyUI (не само с цел генериране на картинки с SD3M, между другото — за SDXL също е подходящ):
@echo off
call cd C:Fun-n-GamesGitstable-diffusion-webuivenvScripts
echo %cd%
call activate.bat
echo venv activated
call cd C:Fun-n-GamesComfyUI-SD3
echo %cd%
call .python_embededpython.exe -s ComfyUImain.py —disable-smart-memory
pause
Тук се предполага, че портативната инсталация на ComfyUI е проведена в директория C:Fun-n-GamesComfyUI-SD3, а AUTOMATIC1111 е била инсталирана предварително в C:Fun-n-GamesGitstable-diffusion-webui. Многочислените «echo» са необходимост просто за визуален контрол на това, че смяната на директориите преминава нормално и нужните команди се изпълняват — след като всичко бъде отладено, те могат да бъдат премахнати от BAT файла.

Отново стартираме работната среда, този път с двоен клик върху run_with_venv.bat. Тъй като преди това просто затворихме сървъра и не пипахме уеб интерфейса, в съответната таб се очаква все още да е налична същата опорна циклограма ComfyUI с коригирани имена на моделите. Нека да обърнем внимание на дясната й част: там е поставена нодата „Preview Image“, която не запазва готовото изображение на диска, а само го демонстрира. Ако стартираме циклограмата всеки път за генериране на строго едно изображение, оценяваме го визуално, правим промени в параметрите и стартираме отново — това е напълно работещ вариант: харесаната картинка винаги може да се запази ръчно с десен клик върху нея. Но ако извършваме множество генерации последователно в работната среда, е по-добре резултатите да се натрупват автоматично в постоянна памет (в каталога ComfyUIoutput по подразбиране).

Така че е по-добре веднага да сменим нодата „Preview Image“ с „Save Image“. За целта кликваме два пъти с левия бутон на мишката на произволно свободно място в циклограмата — ще се отвори прозорец за избор на ноди с търсачка. В тази лента започваме да пишем „Save…“ — и почти веднага ще видим търсеното заглавие. Следва единствено да кликнем върху него и да свържем входа на появилата се нода с изхода „IMAGE“ на нодата „VAE Decode“, където първоначално беше свързана „Preview Image“. Самата „Preview Image“ може да бъде премахната — просто я маркираме, докосвайки заглавието, и натискаме клавиша „Del“ на клавиатурата.

И ето, сега е моментът да стартираме опорната циклограма, създадена от ComfyAnonimous (с нашите скромни корекции) за изпълнение. Получава се следното:

Доста впечатляващо изображение, с настроение дори, — и не бихте казали, че е създадено с помощта на същия модел, чийто инструкции напълно подценяват рисуването на лежащи на тревата хора. Въпреки това системата работи доста бързо — около 5-6 секунди на итерация за изображение с площ от 1 Мпикс на GTX 1070 може да се счита за достойно постижение. За сравнение: същият компютър в същата ComfyUI с същия BAT файл генерира SDXL изображения на подобни размери, като отделя около 6-7 секунди за всяка итерация, така че „тройката“ може да бъде призната за по-малко изискваща към хардуера на компютъра, на който се извършва ИИ-генерация.

Сега ще коригираме размерите на платното. Наблизо до нодата „EmptySD3LatentImage“, която ги задава, се намира „празна“ (в смисъл, не свързана от никоя страна) референтна нода „Note“, където има важно напомняне: общата площ на изображението в случай на SD3M трябва да бъде около 1 Мпикс, на базата на което следва да подберем размерите на страните на правоъгълното платно. Нека зададем размерите 1344×768 — точно около 1,03 Мпикс.
Обърнете внимание: по-горе се намира нодата „Seed“, където е зададена самата примеска, в случая „945512652412924“, и е посочено, че след генерацията тя не трябва да се променя (параметър „fixed“).

Ще изпълним същата циклома с предишната примеска, но вече за правоъгълно платно. Веднага става ясно, че времето за изпълнение е по-малко, въпреки че скоростта на рисуване остана същата — по-малко от 6 секунди на итерация. И това е логично: тъй като текстовите подсказки не се промениха, няма нужда да се зареждат отново кодировач(и) за тях. Изображението на изхода, разбира се, е малко различно от първото, квадратното, но не принципно — общата композиция, както се очакваше, е запазена.

Сега да обърнем внимание на нодовете „CLIPTextEncodeSD3“ и „CLIP Text Encode (Negative Prompt)“. Първата се отличава с това, че съдържа три входни полета; ако изключим текста от тях, ще се видят бележки, за какви кодировачи са предназначени — отгоре надолу това са CLIP G, CLIP L и T5XXL. Преди това подобни ноди в ComfyUI по разбираеми причини не е имало. Основната циклома съдържа дублиращи се кратки подсказки за първите две текстови полета (за преобразователите CLIP G и CLIP L) и значително по-пространна за третото — T5XXL. Разбира се, че съдържанието на тези полета може да се променя в широки граници, а самото изучаване на това, в каква степен промяната на текста в тях влияе на крайното изображение, представлява нетривиална, но изключително вълнуваща задача. Въпреки това, по причини, които ще станат ясни малко по-късно, засега няма да се занимаваме с нея подробно.
Но в нодата «CLIP Text Encode (Negative Prompt)» няма нищо особено, — но оценете колко сложен е пътят от нея до съответния вход «conditioning» на основната нода «KSampler»! Този път се разделя на две клона, като единият от тях (горният в случая) указва, че от 10% от стъпките на генериране и до нейното приключване системата изобщо няма да взема предвид негативната подсказка (преминаването през нодата «ConditioningZeroOut» означава именно нулиране на условията). Докато вторият клон пропуска негативната подсказка (също условно с половин тегло) в по-нататъшната обработка без изменения — но само през първите 10% от общия брой стъпки на генериране.
Мъгливо далеч
Още веднъж: първите 10%, т.е. 3 от 28 определени в този случай, стъпки на генериране негативната подсказка се предава в нодата «KSampler», ангажирана с формирането на изображението в латентното пространство (в пространството на пикселите, т.е. в осезаема снимка за човека, резултатът от нейното издаване се предава на следващата нода, «VAE Decoder»), по нормален начин: горният клон (с нулирането на условията) не е активен, работи само долният. Останалите 90% стъпки (25 от 28 в нашия случай) негативната подсказка не работи изобщо: активен е точно горният клон на предаване на условията — с тяхното нулиране, — а движението по долния е блокирано от граничния параметър на срабатыването на съответната нода «ConditioningSetTimestepRange». Сега е ясно защо редица анализатори твърдят, че , — ефектът от тях (ако разглеждаме именно тази, опорна, цикломограма и предполагаме, че на сайтовете с онлайн генериране по модела SD3 Medium действат аналогични правила) е минимален.

И все пак, той съществува: ако просто вземете и свържете директно изхода на нодата «CLIP Text Encode (Negative Prompt)» с отговорния вход на «KSampler» (или маркирате всички междинни ноди с условия на този път като «пропуснати», «Bypass», което ще доведе до същия ефект), качеството на финалната снимка ще се влоши значително. Това, между другото, може да се разглежда като косвено доказателство за «непрепечеността» на SD3M, тъй като регулирането на силата и значението на негативната подсказка, строго казано, трябваше да е в сила на разработчиците още преди да публикуват теглата на модела. Две решения хитро зададени условия за прилагане на негативна подсказка — своеобразна заплата, и в този смисъл на завишените очаквания, създадени от маркетинговия отдел на Stability AI относно нея, изглеждат напълно основателни.
Липсата дори на кратко официално ръководство за работа със SD3M доведе до това, че в интернет вече се разпространяват слухове, че тази модел . Което, разбира се, не е така, но така или иначе, тези подсказки трябва да се прилагат точно по различен начин, . По-специално, ентусиастите сериозно твърдят, че добавянето на подробни описания на възможно най-много непристойности в негативното поле (да-да, стария добър «nsfw, nude» не е достатъчно — ще трябва наистина да се напрегне въображението) на дори прословутата девойка, лежаща на тревата. Дали е така или не — няма да можем да разбера без задълбочена проверка (пък и не е факт, че дори етикетът «18+» в заглавката на нашия сайт ще ни предпази от искове от яростни защитници на морала, ако сме готови да публикуваме съставен от ентусиастите «чудо-подсказка» — без значение, че е на английски). Тази забавна ситуация напомня на казус с , благодарение на които — точно защото съдържаха доста подробни описания на това какво и как не трябва да правят добропорядъчните християни — до нас достигнаха поне откъслечни писмени свидетелства за вярванията и обичаите на дохристиянска Русия.

Сега, надявам се, стана по-ясно защо задълбочаването в изучаването на SD3M на този етап не изглежда като особено разумно губене на усилия и време. Има наистина много за обсъждане и изследване: както силно препоръчителните параметри за генериране в модула „KSampler“ (CFG — 4,5-5,0; брой стъпки — около 28; двойката sampler/scheduler — изключително dpmpp_2m/sgm_uniform, иначе качеството на изхода значително спада); така и значителният разход на субективно качество на генерациите при строго едни и същи стартови параметри, но с различни заготовки; и освободенето от прословутото „проклятие на лежането в/на тревата“ (за което вече ); и самото изясняване на това, на какви точно параметри за генериране влияе всеки от трите преобразувателя на текста в токени — и как, оперирайки с тях, да получаваме истински шедьоври на Изобразителното Изкуство (ако такова с „тройка“ е изобщо възможно, разбира се).
Тем повече, че уволнението на Еммад Мостак през март и ComfyAnonimous през юни, , — не са единствените неприятности, сполетели Stability AI. Както съобщава Reuters, позовавайки се на The Information, този британски стартъп тъкмо е , който стана Прем Аккараджу (Prem Akkaraju), назначен от известна глобална група ИТ-инвеститори — а те, от своя страна, са готови да вложат в компанията значителна сума в брой (). Положението на самата Stability AI като бизнес структура днес откровено е нестабилно; много разочаровани — и в такава ситуация е трудно да се очаква от компанията обмислена работа дори по толкова очевидни грешки.

Неразумната лицензионна политика, уви, непрекъснато задържа обществото от самостоятелното усъвършенстване на SD3M, както стана с SD 1.5 и SDXL. Поне производните чекпоинти и инструменти като LoRA за последните две модела ще останат достъпни за локално изпълнение, дори когато (и ако) Stability AI приключи своето съществуване като търговска структура. Веднага след катастрофалния провал на „тройката“ в специализирани форуми в мрежата често се чуваха гласове в подкрепа на създаването на неправителствен проект за разработване на генеративен модел за преобразуване на текст в образи на основата на краудфандинг, — и в момента това движение започва да се оформя под името . За готовността активно да се присъединят към него вече заявиха Invoke (една от платформите за онлайн ИИ-генерация, насочена към професионални студия), Comfy Org (екип, занимаващ се с поддръжка и развитие на ComfyUI), Civitai (не се нуждае от представяне) и екипът, който стои зад LAION (базата с анотирани изображения, именно на която основно се тренират такива модели).
Така че в обозримото бъдеще новите издания на „Мастерската“ най-вероятно ще се насочат към работа с тези модели, за които обществото вече е успяло да създаде широк набор от подобрения и допълнителни инструменти, — на „полуторката“ и „Оверсайз“. Може би времето на триумфа на SD3M още предстои, — но днес е трудно дори да се предположи, кога точно. А за сега заинтересованите могат да изтеглят архив с генерирането на SD3M, представени в тази статия (циклограми са интегрирани направо в PNG файловете; достатъчно е да се плъзне картинката на работното поле на ComfyUI от „Този компютър“ в Windows, за да се възпроизведе целият ред и параметри на генерирането) . Може би някой от нашите читатели ще успее по-рано от редовните потребители на Reddit и Hugging Face да открие оптималния начин за разпределение на текста в трите полета на подсказката, например?

Материали по темата:
.
.
.
.
.
Източник: 3dnews.ru
