Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

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

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

⇡#Седнете — станете, седнете — станете

Съчетанието с изменен кодек (преобразувател на текстовите подсказки в цифрови токени, с които след това работи моделът) направи невъзможно прилагането на именувани стилове, което лиши ентусиастите от мотивацията да доработят "двойката" сами. Наистина: тук трябваше паралелно да се разбира как да се настроят вече работещите техники за съставяне на подсказки под новия кодек и да се дообучи моделът да разпознава образите и темите, с които създателите не го запознаха на етапа на първичното му обучение, — а качествената разлика от "полуторката", генерираните "двойка" картини все пак не гарантираха. Да, от стандартния размер за SD 1.5 512×512 пиксела се получи качествен скок до 768×768, но към това време общността вече активно използваше апскейлери, аутпейнтери и други инструменти за увеличаване на размерите на крайното изображение, така че SD 2.0 премина по-скоро незабелязано. SDXL се върна към стандартния (разработен от OpenAI и използван, в частност, от проекта DALL-E) кодек CLIP - кодът му също е отворен, но базата данни, на която е обучен, в отличие от OpenCLIP, е проприетарна. Освен това стандартният размер на платното на "Оверсайз" нарасна до 1024×1024, а освен това се появи цял ред допълнителни подобрения, - така че ентусиастите с удоволствие се заеха с доработката му. И към момента именно SDXL (включително по-новите производни, които по-малко изискват от "железото", като SDXL Turbo и SDXL Lightning) може уверено да се счита за най-популярния AI генератор на изображения с отворен код. Въпреки това, яростни привърженици на SD 1.5 аргументирано спорят с това, като посочват, че важни инструменти като ControlNet в SDXL все още не са достойно пренесени.

И ето, от 12 юни 2024 г., с момента на "освобождаването в дивата природа" на кода на модела, позволяваща локални генерации, трябваше да настъпи времето на "отворената" версия SD 3 — по-точно казано, Stable Diffusion 3 Medium (SD3M или SD3 2B) с 2 милиарда работни параметри. Условно, напомняме, това число съответства на общия брой тегла на входовете на всички перцептрони на модела. Още по-рано, през април, Stability AI доведе до съвършенство и предложи за търговска употреба 8-милонната (по брой параметри) Stable Diffusion 3 Large, която също е SD3 8B. При SDXL 1.0, да припомним, — 3,5 млрд параметра, обаче SD3M, според разработчиците, е «най-усъвършенстваната модел за генериране на изображения от всички, които сме създали до момента». Има се предвид, че при по-ниски нужди от видео памет, в сравнение с «Оверсайза», дори в отговор на несложни подсказки тя трябва да дава изображения «с ново ниво на фотореалистичност». Сред предимствата на «тройката» бяха споменати също «безпрецедентното качество на типографията на генерираните изображения», «повишено разбиране на подсказките посредством сътрудничеството на трима кодировчици» и «готовността за ефективно дообучение дори при ограничени набори от данни».

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Очевидно е било, че общността от ентусиасти, получаваща новата дългоочаквана играчка, ще започне да я усъвършенства с същия ентусиазъм, с какъвто работеха в миналото с «полуторката» и «Оверсайз». Обаче още от самото начало нещата тръгнаха наопаки: SD3M в първите часове след публикуването на файловете на модела в Hugging Face и Civitai успя да дълбоко разочарова својата аудитория, и то два пъти. Първият път — с необяснима на пръв поглед идиосинкразия към подсказките, включващи на вид невинната фраза «лежащ на/в тревата»; вторият — с невероятно неясни формулировки в потребителското споразумение, в които дори професионалните юристи не можаха да се ориентират веднага. И въпреки че за обикновения ентусиаст на AI изкуствата последното изглежда незначително, именно законовата страна на въпроса ще се отрази по най-пряк начин на бъдещото развитие на модела — дори до точката, в която може и да не последва никакво развитие.

Предишните творения на Stable Diffusion с отворен код (по-точно, с отворени стойности на невронните мрежови тегла, достъпни за безплатно сваляне и последващо локално изпълнение), като SDXL, бяха придружени от един от типичните заGenerative модели CreativeML Open RAIL++-M Лиценз с характеристики като «вечна, световна, неексклузивна, безплатна, безвъзмездна, необратима лицензия за авторски права за репродукция, подготовка, публична демонстрация, публично изпълнение, сублицензиране и разпространение на допълнителни материали, както на самия модел, така и на производни от него». «Тройката» предвижда две разновидности на лицензиране: за некомерсиално ползване — с доста разхлабени формулировки като «Stability AI ви предоставя неексклузивна, световна, непередаваема, несублицензируема, отзивна, безвъзмездна и ограничена лицензия за интелектуална собственост» — и значително по-тежка търговска.

⇡#Тревата не води до добро

Съвсем скоро общество се наложи на мнението, че Stable Diffusion 3 не е Open Source. И по същество обяви бойкот на компанията-разработчик, не искайки да губи време и усилия за дообучение на явно недомислена и неправилно опростена модел — осъзнавайки, че Stability AI по всяко време може, по всяко капризно желание на своите медиамениджъри, да отзове лиценза, издаден преди това на конкретен ентусиаст, занимаващ се с такова дообучение. Лицензионният договор е формулиран така, че у изучаващите го неюристи остава впечатлението, че след отзова на разрешението за търговско ползване на SD3M, бившият получател ще бъде длъжен да изтрие всички произведени от него производни на предоставената му интелектуална собственост, включително както самите дообучени модели (LoRA, текстови инверсии, цели чекпойнти), така и техните производни (цитата: «При прекратяване на това споразумение, вие трябва да изтриете и да спрете да използвате каквито и да е софтуерни продукти или производни работи») — т.е. плодовете на труда на вече други хора, използващи тези производни модели като отправна точка за собствената си работа; при което никой и по никакъв начин не е заплатил, извършено на чист ентусиазъм.

Скоро след като потокът от възмущение достигна стратосферни височини, започнаха да се появяват съобщения вече от професионални юристи, че не всичко е толкова лошо И как отзыв с запретом на дальнейшее использование на самом деле должен касаться лишь некоторых вспомогательных продуктов с закрытым кодом, которые Stability AI передаст коммерческому пользователю (например, для ускорения и оптимизации той же дообучения SD3M), — но финальных разъяснений по этому поводу сама компания так и не предоставила. И сам факт такого гнетущего молчания на протяжении уже трёх недель (на момент написания данной статьи) с момента появления «троечки» в открытом доступе вредит репутации разработчика гораздо больше, чем трава — генерируемая его творением девушками.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Что касается пресловутой травы, которая буквально за считанные часы успела стать мемом сначала на Hugging Face, а потом и практически на всех более или менее профильных площадках в сети, то выяснилось, что присутствие в подсказке фразы вроде «a girl lying on the grass» приводит к тому, что в выдаче «троечки» появляются не только галлюцинации, но и кошмарные порождения больной — в медицинском смысле — фантазии художников и кинематографистов, специализирующихся на body horror (мы настоятельно рекомендуем, если вам дорога разум и жизнь, — держитесь подальше от подобного и даже не пытайтесь вбивать эту фразу в окно поиска по картинкам с отключённым фильтром безопасности). При этом изображения стоящих — и слегка сидящих — людей «троечка» создаёт на уверенную четвёрку с плюсом, а портреты порой и вовсе выходят безупречными; по крайней мере, не хуже, чем у базовой модели SDXL 1.0, — проблема тут именно в каком-то внутреннем табу на горизонтальное положение человеческого тела.

Судя по комментарию Эмада Мостака (Emad Mostaque), основателя и бывшего (до марта 2024 года) главы Stability AI, который покинул компанию, чтобы «заниматься децентрализованными проектами в области искусственного интеллекта», грубое насилие над SD3M произошло перед открытием её весов для ограниченного некоммерческого использования (API более крупной модели SD3 8B для онлайн-генерации, напомним, доступно через партнёрские сайты ещё с апреля, но её веса до сих пор остаются скрытыми) стало следствием стремления нынешнего руководства к безопасности — «в связи с нормативными обязательствами», сформулированными ещё в марте текущего года как Acceptable Use Policy. В рамките на тази политика, основана на генеративния модел SD3M, на потребителите не е разрешено да "извършват, популяризират, подпомагат, улесняват, насърчават, планират, подбуждат или поощряват по-нататъшно насилие, тероризъм или създаване на съдържание, което предизвиква омраза и дискриминира или заплашва защитена група хора (независимо дали на основа на пол, етническа принадлежност, сексуална идентичност или ориентация, религия и др.)", — така че никакви изображения на панди, борещи се с яростни дракони! Само котета в смешни шапки, кучета в сладки якета, бутилки с неизвестно съдържание и пресни бисквити направо от фурната!

Технически погледнато, може би изчистването на модела се състояло в това, че от тренировъчния набор данни просто са били изключени изображения с лежащи хора и други картинки, които по някакъв начин подтичавали недостойно тълкуване, — и затова сега „тройката“ просто „не разбира“ значението на думата „лежа“. Или обновената архитектура SD3 е успяла достатъчно уверено да идентифицира теглата на перцептроните, които активират по време на генерирането на "несигурни" изображения, — и тези тегла бяха целенасочено нулирани преди излизането, в резултат на което се получи „принудително халюциниране“. Може би, това вече може да се сравни с лоботомия: кодировчикът коректно превежда текста на токени, но в „защитеното“ латентно пространство тези токени вече не сочат към нещо конкретно, — и затова получените пиксели се разпределят на картинката по същество на произволен принцип.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Въз основа на наличността на API на пълноценен, но затворен модел SD3 8B вече от няколко месеца и горещите уверения на медиамениджърите на Stability AI, че "компактифицираният" 2B ще бъде почти също толкова качествен по отношение на възприемането на текст и генерирането на изображения, ентусиастите на ИИ-рисуването приеха публикуването на теглата на SD3M на 12 юни с голям ентусиазъм: в първите 24 часа моделът бе изтеглен 2.7 милиона пъти. В момента все още можете да я получите, въпреки че по-обиколния начин, отколкото е обичайно за чекпойнтовете SDXL и SD 1.5. Всъщност, обичайният начин е да се обърнете към сайта Civitai, от който повечето модели се свалят без регистрация, но от 17 юни и до момента, в който предадохме настоящата статия за оформление, страницата, посветена на „тройката“, на този сайт е временно блокирана. Причината е една: търговската лицензия за SD3M е написана с толкова неясен език, че дори юристите на Civitai взеха пауза за по-внимателно проучване. Защото, ако някой ентусиаст обучи LoRA за „тройката“ на своя компютър и я качи в Civitai, а Stability AI изведнъж реши, че резултатът е неподходящ, и отзове лиценцията на виновния, — как да постъпи хостинг сайтът? Той не само разполага чекпойнти, помощни циклопрограми и модели, а също така предоставя на посетителите възможност за облачна генерация на изображения и обучение на същите тези LoRA, текстови инверсии и др. В общи линии, докато процесът тече, файловете на самия модел и трите преобразувателя на текст в токени, които идват с него, могат да бъдат взети само от собствената страница на Stability AI в портала Hugging Face.

⇡#Да започваме

Истината е, че има нюанс: за да получите достъп до входящите връзки, трябва да се впишете в сайта и след това да потвърдите приемането на споменатото по-рано драконовско лицензионно споразумение — обаче, тази процедура е безплатна и напълно достъпна от Русия. На разположение са общо четири варианта на модели (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 ГБ видеоRAM, а в този обем не могат да се поместят по-големи модели с всички интегрирани преобразуватели наведнъж. При чекпойнтове на базата на SD 1.5 и SDXL кодировачите по подразбиране са вградени в основния файл, но в този случай тези преобразуватели, даже не два, а три, в съвкупност на 6 ГБ с лека, — заедно с модела вече излиза над 10 ГБ; а ако вземем 16-битната версия на кодировача T5XXL, ще се наложи още по-изключителна видеокарта. В варианта обаче, когато първо в видеопаметта се зареждат преобразувателите на текст в токени, а след това работещият с тези токени модел, прекрасно ще се справи дори с графичен адаптер от 6 ГБ. От тази гледна точка модулната «тройка» несъмнено печели от типичния SDXL чекпойнт на 5-7 ГБ.

SD3M представлява модел на базата на мултимодални дифузионни трансформатори (Multimodal Diffusion Transformer, MMDiT) — и по този начин принципно се различава от по-ранните разработки на Stability AI (и не само нейни), които разчитат на архитектура U-Net, предложена още през 2015 г. «Мастерская» — не е място за дълбочинно изучаване на разликата между тези подходи към AI-генерацията на изображения; да кажем само, че MMDiT осигурява повишена производителност на модела, неговата способност да работи с повече токени (което, от своя страна, позволява на оператора да формулира доста пространни текстови подсказки, а на системата — достатъчно точно да ги следва), а също така и по-добро качество на получените в крайна сметка изображения. Пълноразмерният SD3 8B е способен да генерира изображения на платно с 4 Мпикс (2048×2048 пиксела), а също така предполага DALL-E 3, Midjourney v6 и Ideogram v1 в такива сметки, като възпроизвеждане на текст в изображението, точност на съответствието на получената картинка с текстовата подсказка и обща визуална естетика. Преобразуването на текст в векторни токени се извършва тук веднага от три кодировчика (две модели CLIP и един T5-XXL — «T5», между другото, от Text-To-Text Transfer Transformer) — и, общо взето, те не са задължени да работят с една и съща подсказка.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Но достатъчно с предварителните думи: нека се заемем с темата на „Мастерската“ — генерирането на изображения на базата на модела SD3M. За целта ще използваме, както вече беше споменато, работната среда ComfyUI, която можете да изтеглите от директния линк в GitHub. Подчертаваме, че този вариант е само за изпълнение на графични адаптери NVIDIA или директно на CPU AMD или Intel (което, разбира се, ще бъде значително по-бавно): на притежателите на видеокарти AMD се предлага решение под формата на пакети rocm и pytorch, които могат да се инсталират чрез мениджъра за пакети pip.

След завършване на инсталацията на работната среда, трябва да поставите изтеглените по-рано файлове .safetensors: моделите — в каталога ComfyUImodelscheckpoints, а преобразувателите на текст в токени — в ComfyUImodelsclip. И — можете да започнете!

⇡#Време е да се ускорим

Заслужава да се спомене, че AUTOMATIC1111, добре позната на читателите от предишните „Мастерски“ на тема ИИ-рисуване, в края на юни също получи възможност да изпълнява SD3M, но в ComfyUI поддръжката на новия модел все още остава най-пълна. Не е изненада — тъй като до съвсем наскоро авторът на „макаронния монстър“, известен на общността от ентусиасти под никнейма ComfyAnonimous или просто Comfy, беше служител на Stability AI, където работеше, наред с други неща, върху вътрешната работна среда, използвана от самите разработчици. Както ще видим малко по-късно, новата версия на ComfyUI наистина свидетелства за наличието на определени вътрешни сведения у нейния автор относно начина, по който е структурирана и работи тази противоречива модел, — сведения, с които създателите на други работни среди за локално изпълнение на Stable Diffusion 3 Medium по разбираеми причини не могат да се похвалят.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

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

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Убедете се, че файлът с основния модел 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 ще бъде достъпен уеб интерфейс. опитомения от нас по-рано (нека е само в първоначален вариант) „пастовият монстър“.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Ако разполагате с по-модерна графична карта NVIDIA (от поколение RTX, а не GTX, дори и с 6 ГБ видео RAM), можете веднага да заредите работния поток, създаден от ComfyAnonimous, за който говорихме по-рано — файла comfy_example_workflows_sd3_medium_example_workflow_multi_prompt.json с множество прозорци за въвеждане на подсказки, по един за всеки от трите кодиращи модула — и да работите с него. Въпреки това, първо ще трябва да съответствате имената на четирите модела (в нодовете за зареждане) с наличните. Авторът на работния поток очевидно е действал на своето работно място (в Stability AI, както вече споменахме) с файлове, които са се наричали малко по-различно, така че ако натиснете бутона „Queue Prompt“ в спартанския интерфейс на ComfyUI веднага след зареждането на потока, работната среда ще извести за грешка.

⇡#Три семена за AI-генерация

Все пак, това не е особено трудно да се коригира: много по-притеснително е, че нашата остаряла GTX 1070 обработва SD3M ужасно бавно — генерирането на изображение отнема около 27-30 секунди на итерация, като имате предвид, че параметърът „Steps“ в работния поток е зададен на „28“, времето за обработка е неоправдано много. Затова ще направим малка оптимизация — ще използваме Python модула venv (виртуални среди), предназначен, междудругото, да ускори работата на генеративните AI модели. В комплект с портативната версия на ComfyUI той не е включен, но има много начини за инсталирането му, които в крайна сметка се свеждат до разгръщането на пълноценно Python обкръжение на локалния компютър — и активирането на необходимия модул от това обкръжение.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Надяваме се читателите на нашите „Мастерски“ вече да притежават активна работна инсталация на 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

ехо %

call activate.bat

echo venv activated

call cd C:Fun-n-GamesComfyUI-SD3

ехо %

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 файла.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

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

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

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

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

И ето сега — най-накрая е време да стартираме основната диаграма, създадена от ComfyAnonymous (с нашите скромни корекции) за изпълнение. Излиза следното:

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

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

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

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

Обърнете внимание: по-горе се намира нода „Seed“, където е зададена самата семка, в този случай „945512652412924“, и е уточнено, че след генерирането тя не трябва да се променя (параметър „fixed“).

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

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

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Сега нека обърнем внимание на нодите „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“. Сега е ясно, защо редица наблюдатели твърдят, че негативните подсказки за SD3M в принцип не могат да се използват, — ефектът от тях (ако разгледаме точно този, основен, цикъл и предполагаме, че на сайтовете с онлайн генерация по модела SD3 Medium действат аналогични правила) е минимален.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

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

Липсата на кратко официално ръководство за работа с SD3M доведе до това, че в мрежата вече циркулират слухове, че тази модел всъщност не е обучен за прилагане на негативни подсказки. Което, разбира се, не е така, но във всеки случай тези подсказки трябва да се прилагат по съвсем различен начин, отколкото е обичайно за операторите на SD 1.5 и SDXL. В частност, ентусиастите наистина настояват, че добавянето към негативното поле на детайлни описания на колкото се може повече неприличия (да-да, стари добри «nsfw, nude» не са достатъчни — ще трябва сериозно да се напрегне въображението) води до забележимо подобрение на външния вид дори на проклетата девойка, лежаща на тревата. Дали е така или не — няма как да се установи без внимателна проверка (при това не е сигурно, че дори обозначението «18+» в заглавието на нашия сайт ще ни предпази от искове от страна на яростни защитници на морала, ако се осмелим да публикуваме сглобената от ентусиастите «чудо-подсказка» — въпреки че е на английски). Тази забавна ситуация напомня на казус с ранносредновековни наставления против езичеството, благодарение на които — именно защото съдържаха доста детайлни описания на това какво и как не трябва да правят добропорядъчните християни — до нас достигнаха поне фрагментарни писмени свидетелства за вярванията и обичаите на дохристиянска Русия.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Сега, надяваме се, стана по-ясно по каква причина задълбочаването в изучаването на SD3M на този етап изглежда не толкова разумно разхищаване на усилия и време. Има наистина какво да се обсъди и проучи: и доста строги препоръчани параметри за генерация в възела "KSampler" (CFG — 4,5-5,0; брой стъпки — около 28; двойката sampler/scheduler — изключително dpmpp_2m/sgm_uniform, в противен случай качеството на изхода значително пада); и крайно значителен вариативен аспект на субективното качество на генерации при строго едни и същи начални параметри, но с различни промени; и избавление от прочутото "клетва на легналостта в/на тревата" (за което вече са предложени доста нестандартни решения); и, всъщност, установяване на какви именно параметри на генерация влияят трите преобразувателя от текст в токени — и как, работейки с тях, да се постигнат наистина велики шедьоври на ИИзобразителното ИИскусство (ако това с "тройката" изобщо е възможно).

Тем повече, че уволнението на Емада Мостака през март и ComfyAnonimous през юни, както и не само тях, — не са единствените неприятности, сполетели Stability AI. Както съобщава Reuters, позовавайки се на The Information, този британски стартъп буквално само преди момент (в момента на написване на настоящата статия) отново е сменил главния изпълнителен директор , който стана Прем Аккараджу (Prem Akkaraju), назначен от известна глобална група ИТ-инвеститори — а тя, от своя страна, е готова да вложи в компанията значителна сума в брой (става въпрос за 80 млн долара САЩ). Положението на самата Stability AI като бизнес структура днес е открито нестабилно; много разочаровани ентусиасти предричат бърз край — и в такава ситуация е трудно да се очаква от компанията внимателна работа дори по толкова очевидни грешки.

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Неразумната лицензна политика за съжаление възпрепятства обществото да доведе SD3M до желаното състояние, както се случи с SD 1.5 и SDXL. Поне производните чекпойнти и инструменти като LoRA за последните два модела ще останат достъпни за локално изпълнение, дори когато (и ако) Stability AI завърши своя път като търговска структура. Веднага след оглушителния провал на „тройката“, в профилните форуми в мрежата започнаха все по-често да се чуват гласове в подкрепа на създаването на некомерсиален проект за разработка на генеративен модел за преобразуване на текст в образи на база краудфъндинг, — и до момента това движение започва да се оформя под името Open Model Initiative. За готовността активно да се присъединят към него вече заявиха Invoke (една от платформите за онлайн генериране на ИИ, насочена към професионални студия), Comfy Org (екип, който се занимава с поддръжката и развитието на ComfyUI), Civitai (която не се нуждае от представяне) и екипът зад LAION (базата с анотирани изображения, на която предимно се обучават подобни модели).

Така че в обозримо бъдеще новите издания на „Майсторската“ вероятно ще се ориентират към работа с тези модели, за които обществото вече е успяло да създаде широк набор от подобрения и допълнителни инструменти, — на „полуторка“ и „Оверсайз“. Възможно е тържеството на SD3M все още да настъпи, — но днес е трудно дори да се предположи кога точно. А засега заинтересованите могат да изтеглят архив с показаните в тази статия генерации на SD3M (циклотограмите са интегрирани директно в PNG файловете; достатъчно е да плъзнете изображението на работното поле на ComfyUI от „Файловия мениджър“ на Windows, за да възпроизведете целия ред и параметри на генерирането) тук.. Може би някой от нашите читатели ще успее по-рано от редовните потребители на Reddit и Hugging Face да открие оптималния начин за разпределение на текста в трите полета за насоки, например?

Нова статия: Практикум по ИИ-рисуване, част девета: SD3M — „тройката“ на тройка

Материали по темата:

Stability AI смени ръководството и привлече 80 млн. долара инвестиции.

Представен е ИИ-генератор на изображения Stable Diffusion Medium, на който му е необходима видеокарта с 5 ГБ памет.

Stability AI се потопи в дългове и сега търси купувач.

ИИ-стартапът Stability AI ще съкрати 10 % от персонала си поради засилена конкуренция.

Обявена е Stable Diffusion 3.0 — ИИ за рисуване смени архитектурата и научи да пише.

Източник: 3dnews.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster