Andersonův úhel
Tři výzvy, které stojí před Stable Diffusion

Uveřejnění stability.ai’s Stable Diffusion latentního modelu syntézy obrazu před několika týdny může být jednou z nejvýznamnějších technologických odhalení od DeCSS v roce 1999; je to určitě největší událost v oblasti generování obrazů pomocí umělé inteligence od roku 2017, kdy byl kód deepfakes zkopírován do GitHubu a rozvětven do DeepFaceLab a FaceSwap, jakož i software pro streamování deepfakes v reálném čase DeepFaceLive.
Jedním tahem byla frustrace uživatelů z důvodu omezení obsahu v DALL-E 2’s API syntézy obrazu byla odstraněna, protože se ukázalo, že filtr NSFW ve Stable Diffusion lze zakázat změnou jedné řádky kódu. Rychle vznikly pornografické komunity Stable Diffusion na Redditu a byly stejně rychle odstraněny, zatímco vývojáři a uživatelé se rozdělili na oficiální a NSFW komunity na Discordu a Twitter začal být zaplaven fantastickými tvůrčími díly Stable Diffusion.
V současné době přináší každý den nějaké úžasné inovace od vývojářů, kteří přijali tento systém, s pluginy a třetími stranami, které jsou rychle psány pro Krita, Photoshop, Cinema4D, Blender a mnoho dalších aplikací.
Mezitím se promptcraft – nyní profesionální umění “AI whisperingu”, které může skončit jako jedna z nejkratších kariérních možností – již komercializuje, zatímco raná monetizace Stable Diffusion probíhá na úrovni Patreon, s jistotou, že budou následovat sofistikovanější nabídky pro ty, kteří nejsou ochotni navigovat Conda-based instalace zdrojového kódu nebo preskriptivní filtry NSFW webových implementací.
Rychlost vývoje a svobodný pocit探索 uživatelů postupuje takovou závratnou rychlostí, že je obtížné vidět velmi daleko dopředu. V podstatě nevíme přesně, s čím jsme se zde zabýváme, nebo co všechny omezení nebo možnosti mohou být.
Přesto se podívejme na tři z toho, co by mohlo být nejzajímavějšími a nejobtížnějšími překážkami pro rychle vytvořenou a rychle rostoucí komunitu Stable Diffusion, aby čelila a doufala, že je překoná.
1: Optimalizace založená na dlaždicích
Představen s omezenými hardwarovými zdroji a tvrdými limity na rozlišení trénovacích obrazů, zdá se pravděpodobné, že vývojáři najdou způsoby, jak zlepšit jak kvalitu, tak rozlišení výstupu Stable Diffusion. Mnoho z těchto projektů je nastaveno tak, aby využívalo omezení systému, jako je jeho původní rozlišení pouhých 512×512 pixelů.
Jako je vždy případ u počítačového vidění a iniciativ syntézy obrazu, Stable Diffusion byl trénován na čtvercových obrazech, v tomto případě vzorkovaných na 512×512, aby zdroj obrazů mohl být regularizován a mohl se vejít do omezení GPU, které trénovaly model.
Stable Diffusion “myslí” (pokud myslí vůbec) v 512×512 termínech a určitě v čtvercových termínech. Mnoho uživatelů, kteří目前 zkoumají limity systému, uvádí, že Stable Diffusion produkuje nejvěrnější a nejméně chybné výsledky při tomto poměrně omezeném poměru stran (viz “řešení extremity” níže).
Přestože různé implementace funkcí upscaling prostřednictvím RealESRGAN (a mohou opravit špatně renderované tváře prostřednictvím GFPGAN) několik uživatelů目前 vyvíjí metody, jak rozdělit obrázky na 512x512px sekce a šít obrázky вместе, aby vytvořily větší kompozitní díla.

Tento 1024×576 render, rozlišení běžně nemožné v jednom Stable Diffusion renderu, byl vytvořen kopírováním a vkládáním souboru attention.py z DoggettX fork Stable Diffusion (verze, která implementuje tile-based upscaling) do jiného fork. Source: https://old.reddit.com/r/StableDiffusion/comments/x6yeam/1024x576_with_6gb_nice/
Přestože některé iniciativy tohoto druhu používají původní kód nebo jiné knihovny, txt2imghd port GOBIG (režim v ProgRockDiffusion) je nastaven tak, aby poskytl tuto funkčnost hlavní větvi brzy. Zatímco txt2imghd je dedikovaný port GOBIG, jiné úsilí od komunitních vývojářů zahrnuje různé implementace GOBIG.

Abstraktní obraz v původním 512x512px renderu (vlevo a druhý zleva); upscaled pomocí ESGRAN, který je nyní více nebo méně nativní napříč všemi distribucemi Stable Diffusion; a dán ‘zvláštní pozornost’ prostřednictvím implementace GOBIG, produkuje detaily, které, alespoň v rámci hranic obrazové sekce, vypadají lépe upscaled. Source: https://old.reddit.com/r/StableDiffusion/comments/x72460/stable_diffusion_gobig_txt2imghd_easy_mode_colab/
Typ abstraktního příkladu uvedeného výše má mnoho “malých království” detailů, které se hodí pro tento solipsistický přístup k upscalingu, ale které mohou vyžadovat více náročné kódové řešení, aby produkovaly nekonzistentní, soudržné upscaling, které nebudou vypadat, jako by byly sestaveny z mnoha částí. Nejméně, v případě lidských tváří, kde jsme neobvykle citliví na aberace nebo “jarring” artefakty. Proto tváře mohou nakonec potřebovat speciální řešení.
Stable Diffusion目前 nemá žádný mechanismus pro zaměřování pozornosti na tvář během renderu stejným způsobem, jakým lidé prioritizují faciální informace. Přestože někteří vývojáři v Discord komunitách zvažují metody, jak implementovat tento typ “vylepšené pozornosti”, je目前 mnohem jednodušší ručně (a nakonec automaticky) vylepšit tvář po počátečním renderu.
Lidská tvář má vnitřní a kompletní semantickou logiku, která nebude nalezena v “dlaždici” spodní části (například) budovy, a proto je目前 možné velmi účinně “zoomovat” a re-renderovat “sketchy” tvář v Stable Diffusion výstupu.

Vlevo, Stable Diffusion’s počáteční pokus s promptem ‘Full-length color photo of Christina Hendricks entering a crowded place, wearing a raincoat; Canon50, eye contact, high detail, high facial detail’. Vpravo, vylepšená tvář získaná tím, že se rozostřená a sketchy tvář z prvního renderu vrátila do plné pozornosti Stable Diffusion pomocí Img2Img (viz animované obrázky níže).
V případě, že data jsou k dispozici, řešení založená na dlaždicích v Stable Diffusion by mohly jít dále než zaměřování se na tvář; mohly by potenciálně umožnit ještě přesnější a detailnější tváře rozložením obličejových rysů a zaměřením celých dostupných zdrojů GPU na jednotlivé rysy, před reassemblí – proces, který je目前 ruční.
To není omezeno na tváře, ale je omezeno na části objektů, které jsou alespoň tak předvídatelně umístěny v širším kontextu hostitelského objektu, a které se shodují s vysokou úrovní vložených dat, které lze rozumně očekávat v hyperscale datasetu.
Skutečné omezení je množství dostupných referenčních dat v datasetu, protože nakonec hluboce iterované detaily budou zcela “hallucinované” (tj. fiktivní) a méně autentické.
Taková vysoká úroveň granulárních zvětšení funguje v případě Jennifer Connelly, protože je dobře reprezentována v LAION-aesthetics (primární podmnožina LAION 5B, kterou Stable Diffusion používá); a obecně v LAION; ve mnoha dalších případech by přesnost trpěla nedostatkem dat, vyžadujícím buď jemné ladění (další trénování, viz “Customizace” níže) nebo Textual Inversion (viz níže).
Dlaždice jsou silným a relativně levným způsobem, jak Stable Diffusion může produkovat hi-res výstup, ale algoritmické dlaždicové upscaling tohoto druhu, pokud postrádá nějaký širší, vyšší mechanismus pozornosti, může nedosáhnout očekávaných standardů napříč různými typy obsahu.
2: Řešení problémů s lidskými končetinami
Stable Diffusion nedosahuje svého jména, když zobrazuje složitost lidských končetin. Ruce se mohou náhodně množit, prsty se mohou shlukovat, třetí nohy se mohou objevit bez varování, a existující končetiny mohou zmizet bez stopy. Ve své obraně sdílí Stable Diffusion tento problém se svými stabilními protějšky a většinu certainly s DALL-E 2.

Neditované výsledky z DALL-E 2 a Stable Diffusion (1.4) na konci srpna 2022, oba ukazující problémy s končetinami. Prompt je ‘Žena objímající muže’
Stable Diffusion fanoušci, kteří doufají, že budoucí checkpoint 1.5 (více intenzivně trénovaná verze modelu s vylepšenými parametry) vyřeší problém s končetinami, budou pravděpodobně zklamáni. Nový model, který bude vydán za asi dva týdny, je目前 premierován na komerčním portálu stability.ai DreamStudio, který používá 1.5 jako výchozí, a kde uživatelé mohou porovnat nový výstup s renderováním z jejich místních nebo jiných 1.4 systémů:

Source: Místní 1.4 prepack a https://beta.dreamstudio.ai/

Source: Místní 1.4 prepack a https://beta.dreamstudio.ai/

Source: Místní 1.4 prepack a https://beta.dreamstudio.ai/
Jako je často případ, kvalita dat by mohla být primárním přispívajícím faktorem.
Otevřené zdrojové databáze, které pohánějí systémy syntézy obrazu, jako je Stable Diffusion a DALL-E 2, jsou schopny poskytnout mnoho štítků pro jednotlivé lidi a interakce mezi lidmi. Tyto štítky se trénují symbioticky s jejich přidruženými obrázky nebo segmenty obrázků.

Uživatelé Stable Diffusion mohou prozkoumat koncepty trénované do modelu dotazováním datasetu LAION-aesthetics, podmnožiny většího datasetu LAION 5B, který pohání systém. Obrázky jsou seřazeny ne podle abecedních štítků, ale podle ‘aesthetického skóre’. Source: https://rom1504.github.io/clip-retrieval/
dobrá hierarchie individuálních štítků a tříd, které přispívají k zobrazení lidské paže, by mohla být něco jako tělo>paže>ruka>prsty>[podrobnosti prstů + palec]>[segmenty prstů]>Nehty.

Granulární semantická segmentace částí ruky. I tato neobvykle detailní dekonstrukce ponechává každý ‘prst’ jako samostatnou entitu, aniž by zohledňovala tři sekce prstu a dvě sekce palce. Source: https://athitsos.utasites.cloud/publications/rezaei_petra2021.pdf
Ve skutečnosti jsou zdrojové obrázky nepravděpodobně konzistentně anotovány napříč celým datasetem, a nesupervizované algoritmy štítkování pravděpodobně zastaví na vyšší úrovni – například – ‘ruka’, a ponechají vnitřní pixely (které technicky obsahují ‘prst’ informace) jako nelabeled hmotu pixelů, ze kterých budou funkce odvozovány, a které se mohou projevit v pozdějších renderováních jako jarring prvek.

Jak by to mělo být (horní pravá, pokud ne horní řez), a jak to tends to be (dolní pravá), kvůli omezeným zdrojům pro štítkování, nebo architektonickému využití takových štítků, pokud existují v datasetu.
Protože, pokud latentní difuzní model dosáhne renderování paže, je téměř jistě bude mít alespoň pokus o renderování ruky na konci té paže, protože paže>ruka je minimální požadovaná hierarchie, poměrně vysoko v tom, co architektura ví o ‘lidské anatomii’.
Po tom, ‘prsty’ mohou být nejmenší seskupení, i když existují 14 dalších podčástí prstů a palce, které je třeba zohlednit při zobrazování lidských rukou.
Pokud tato teorie platí, neexistuje žádný skutečný lék, kvůli široce rozšířenému nedostatku rozpočtu na manuální anotaci, a nedostatku dostatečně účinných algoritmů, které by mohly automatizovat štítkování, zatímco produkují nízké chybové sazby. Ve skutečnosti se model může目前 spoléhat na lidskou anatomickou konzistenci, aby zakryl nedostatky datasetu, na kterém byl trénován.
Jedním z možných důvodů, proč nelze spoléhat se na to, nedávno navržen na Stable Diffusion Discord, je, že model by se mohl stát zmateným ohledně správného počtu prstů, které by měl mít (realistická) lidská ruka, protože LAION-derived databáze, která pohání, obsahuje kreslené postavy, které mohou mít méně prstů (což je samo o sobě zkratka).

Dva z potenciálních viníků v ‘chybějícího prstu’ syndromu v Stable Diffusion a podobných modelech. Dole, příklady kreslených rukou z datasetu LAION-aesthetics, který pohání Stable Diffusion. Source: https://www.youtube.com/watch?v=0QZFQ3gbd6I
Pokud je to pravda, pak jediným zjevným řešením je re-trénovat model, vyloučením nerealistického lidského obsahu, zajišťujícím, že skutečné případy omezení (tj. amputace) jsou vhodně označeny jako výjimky. Z hlediska kurace dat by to byla bastante výzva, zejména pro komunitní úsilí s omezenými zdroji.
Druhým přístupem by bylo aplikovat filtry, které vylučují takový obsah (tj. ‘ruka se třemi/pěti prsty’) z manifestace v době renderování, podobně jako filtroval GPT-3 a DALL-E 2, aby jejich výstup mohl být regulován, aniž by bylo nutné re-trénovat zdrojové modely.

Pro Stable Diffusion, semantická distinkce mezi prsty a dokonce končetinami se může stát strašně rozostřenou, připomínající hororové filmy z 80. let od Davida Cronenberga. Source: https://old.reddit.com/r/StableDiffusion/comments/x6htf6/a_study_of_stable_diffusions_strange_relationship/
Mohlo by se argumentovat, že existují dvě zbývající cesty vpřed: házení více dat na problém a aplikování třetích stran interpretativních systémů, které mohou zasáhnout, když jsou fyzické chyby tohoto druhu prezentovány koncovému uživateli (alespoň by to dalo OpenAI metodu pro poskytování refundací za ‘body horror’ renderování, pokud by společnost byla motivována k tomu).
3: Customizace
Jednou z nejzajímavějších možností pro budoucnost Stable Diffusion je perspektiva uživatelů nebo organizací, které vyvíjejí revidované systémy; modifikace, které umožňují integrovat obsah mimo předtrénovaný LAION sféru do systému – ideálně bez nekontrolovatelných nákladů na trénování celého modelu znovu, nebo rizika spojeného s trénováním velkého množství nových obrazů do existujícího, zralého a schopného modelu.
Podobně: pokud se dva méně nadaní studenti připojí k pokročilé třídě třiceti studentů, buď se přizpůsobí a dorovnají, nebo selžou jako outsidéři; v každém případě se pravděpodobně nebude měnit průměrný výkon třídy. Pokud se však patnáct méně nadaných studentů připojí, je pravděpodobné, že se křivka hodnocení pro celou třídu zhorší.
Podobně, synergická a poměrně jemná síť vztahů, která se vyvíjí během trénování modelu, může být kompromitována, v některých případech efektivně zničena, nadměrnými novými daty, snižujícími kvalitu výstupu modelu napříč celou deskou.
Případ pro to je primárně tehdy, když váš zájem spočívá v kompletním převzetí konceptuálního pochopení modelu vztahů a věcí a jeho přizpůsobení pro exkluzivní produkci obsahu, který je podobný dodatečnému materiálu, který jste přidali.
Takže trénování 500 000 snímků Simpsonů do existujícího Stable Diffusion checkpointu by mohlo nakonec získat lepší Simpsonův simulátor, než by původní sestavení mohlo nabídnout, předpokládajíc, že dostatečně široké semantické vztahy přežijí proces (tj. Homer Simpson jí hot dog, který může vyžadovat materiál o hot dogech, který nebyl ve vašem dodatečném materiálu, ale již existoval v checkpointu), a předpokládajíc, že nechcete náhle přejít z Simpsonů obsahu na vytváření úžasného krajinného snímku od Grega Rutkowského – protože váš post-trénovaný model měl svou pozornost masivně odvedenou, a nebude tak dobrý v tom, co dělal dříve.
Jedním z nejvýznamnějších příkladů je waifu-diffusion, který úspěšně post-trénoval 56 000 anime obrazů do dokončeného a trénovaného Stable Diffusion checkpointu. Je to těžká perspektiva pro hobbyistu, protože model vyžaduje ohromující minimum 30 GB VRAM, daleko za tím, co je pravděpodobně k dispozici na spotřebitelské úrovni v budoucích 40XX sériích NVIDIA.

Trénování vlastního obsahu do Stable Diffusion prostřednictvím waifu-diffusion: model trval dva týdny post-trénování, aby dosáhl této úrovně ilustrace. Šest obrazů vlevo ukazuje pokrok modelu, jak postupovalo trénování, v vytváření subjekt-coherentního výstupu na základě nových trénovacích dat. Source: https://gigazine.net/gsc_news/en/20220121-how-waifu-labs-create/
Veliké úsilí by mohlo být vynaloženo na takové ‘forky’ Stable Diffusion checkpointů, pouze aby byly zmařeny technickým dluhem. Vývojáři na oficiálním Discordu již uvedli, že pozdější checkpointy nemusí být nutně zpětně kompatibilní, ani s prompt logikou, která fungovala s předchozí verzí, protože jejich primárním zájmem je získat nejlepší model možný, spíše než podporovat legacy aplikace a procesy.
Proto společnost nebo jedinec, který se rozhodne odvětvit checkpoint do komerčního produktu, efektivní nemá žádnou cestu zpět; jejich verze modelu je v tomto okamžiku ‘hard fork’, a nebude moci čerpat výhody z pozdějších vydání stability.ai – což je bastante závazek.
Current, a větší naděje pro customizaci Stable Diffusion je Textual Inversion, kde uživatel trénuje malé množství CLIP-aligned obrazů.

Spolupráce mezi Tel Aviv University a NVIDIA, textual inversion umožňuje trénovat diskrétní a nové entity, bez ničení schopností zdrojového modelu. Source: https://textual-inversion.github.io/
Primární zjevné omezení textual inversion je, že je doporučeno velmi nízké množství obrazů – tolik, kolik pět. To efektivní produkuje omezenou entitu, která může být více užitečná pro úkoly stylu přenosu než pro vkládání fotorealistických objektů.
Přestože experimenty目前 probíhají v rámci různých Stable Diffusion Discord, které používají mnohem více trénovacích obrazů, zůstává být vidět, jak produktivní tato metoda může být. Opět, technika vyžaduje大量 VRAM, času a trpělivosti.
Z důvodu těchto limitujících faktorů můžeme čekat, až uvidíme některé z více sofistikovaných textual inversion experimentů od Stable Diffusion nadšenců – a zda nebo ne tento přístup může ‘vložit vás do obrazu’ způsobem, který vypadá lépe než Photoshop cut-and-paste, zatímco zachovává úžasné funkčnosti oficiálních checkpointů.
Poprvé zveřejněno 6. září 2022.













