Stable Diffusion (Doslv. Stabilná Difúzia) je model hĺbkového strojového učenia, prevádzajúci text na obraz, ktorý bol na trh uvedený v roku 2022 na základe technológie tzv. difúzie. Je popredným produktom spoločnosti Stability AI.
Primárne je určená na generovanie podrobných obrázkov na základe textových popisov, možno ju však použiť aj na iné úlohy, ako je napríklad inpainting, outpainting a prekresľovanie obrázkov na základe textovej výzvy, text prompt. Na jeho vývoji sa podieľali výskumníci z CompVis Group na Ludwig Maximilian Univerzity v Mníchove a Runway s výpočtovým príspevkom od Stability AI a tréningovými dátami od neziskových organizácií.
Stabilná difúzia (Stable Diffusion) je model latentnej difúzie, druh hlbokej generatívnej neurónovej siete umelej inteligencie. Navrhnutá bola s verejne dostupným zdrojovým kódom. Umožňuje tak komunite vývojárov prístup ku jej kódu a jej ďalšie vylepšovanie. Je schopná fungovať na väčšine spotrebiteľského hardvéru vybaveného bežnou GPU s najmenej 4 GB VRAM.
Odklon od predchádzajúcich proprietárnych generatívnych modelov prevodu textu na obrázok, ako sú DALL-E a Midjourney, ktoré sú dostupné iba prostredníctvom cloudových služieb, je v jej použiteľnosti lokálne.
Vývoj Stable Diffusion vznikla z projektu s názvom Latent Diffusion (dosl. Latentná difúzia), ktorý vyvinula skupina nemeckí výskumníci z Ludwig Maximilian University v Mníchove a Heidelberg University. Štyria z pôvodných piatich autorov (Robin Rombach, Andreas Blattmann, Patrick Esser a Dominik Lorenz) sa neskôr pripojili k Stability AI a vydali ďalšie verzie Stable Diffusion.
Technická licencia na model bola vydaná skupinou CompVis na Ludwig Maximilian University v Mníchove. Vývoj viedli Patrick Esser zo spoločnosti Runway a Robin Rombach z CompVis, ktorí predtým vynašli architektúru modelu latentnej difúzie (latent diffusion) používanú právé Stable Diffusion. Stability AI uznáva podporu EleutherAI a LAION, nemeckej neziskovej organizácie, ktoré zostavili kľúčovú sadu dát, na trénovanie Stable Diffusion.
Technológia vpravo|náhľad| Schéma architektúry latentnej difúzie, ktorú používa Stable Diffusion vpravo|náhľad|300x300bod| Proces odšumovania, ktorý používa Stable Diffusion. Model generuje obrázky postupným opakovaným odšumovaním náhodného šumu, kým sa nedosiahne nakonfigurovaný počet krokov, vedený textovým kódovačom CLIP vopred natrénovaným na koncepty spolu s mechanizmom pozornosti, výsledkom čoho je požadovaný obrázok zobrazujúci reprezentáciu natrénovaného konceptu.
Architektúra Modely zo série Stable Diffusion pred verziou SD 3 používali typ difúzneho modelu (DM) nazývaný latentný difúzny model (LDM), ktorý vyvinula skupina CompVis (Computer Vision & Learning) na LMU v Mníchove. Difúzne modely boli prvýkrát predstavené v roku 2015. Sú trénované s cieľom postupne odstraňovať aplikácie Gaussovho šumu z tréningových obrázkov. Tento proces možno predstaviť ako sekvenciu autoenkodérov na odšumenie. Stable Diffusion pozostáva z troch hlavných častí: variabilného autoenkodéra (VAE), U-Netu a voliteľného textového enkodéra. Enkodér VAE komprimuje obrázok z pixelového priestoru do latentného priestoru s menšími dimenziami, kde sa zachytáva podstatný sémantický význam obrázka. Počas procesu difúzie sa na túto latentnú reprezentáciu iteratívne pridáva Gaussov šum. U-Net blok, postavený na ResNet chrbticovej architektúre, postupne odstraňuje šum z latentnej reprezentácie počas spätnej difúzie, čím obnovuje obraz. Nakoniec dekodér VAE generuje výsledný obrázok, keď túto latentnú reprezentáciu prevedie späť do pixelového priestoru.
Proces odšumovania môže byť flexibilne podmienený reťazcom textu, obrázkom alebo iným spôsobom. Zakódované údaje pre odšumovanie sú vystavené U-Nets sieti prostredníctvom mechanizmu krížovej pozornosti . Na úpravu textu sa používa fixný, vopred pripravený textový kódovač CLIP ViT-L/14 na transformáciu textových výziev do vloženého priestoru. Výskumníci poukazujú na zvýšenú výpočtovú efektivitu pre trénovanie a generovanie ako výhodu LDM.
Názov difúzia čerpá inšpiráciu z termodynamickej difúzie. V roku 2015 vzniklo dôležité prepojenie medzi týmto čisto fyzikálnym odborom a hlbokým strojovým učením.
S 860 miliónmi parametrov v U-Net a 123 miliónmi v textovom enkodéri je Stable Diffusion považovaný za relatívne nenáročný model podľa štandardov roku 2022. Na rozdiel od iných difúznych modelov dokáže bežať na bežných GPU pre spotrebiteľov, a dokonca aj na samotnom CPU, ak sa používa verzia Stable Diffusion založená na OpenVINO.
SD XL XL verzia používa rovnakú LDM architektúru ako predchádzajúce verzie, ale vo väčšom rozsahu: väčšej základnej štruktúry UNet, väčším kontextom krížovej pozornosti, jedným textovým kódovačom navyše a je trénovaná na viacerých pomeroch strán (nie len na obrázkoch so štvorcovým pomerom stránk ako predchádzajúce verzie).
SD XL Refiner, vydaný v rovnakom čase, má rovnakú architektúru ako verzia SD XL, ale bol strojovo naučený na pridávanie jemných detailov do už existujúcich obrázkov pomocou textovo podmieneného img2img (modelu obrázok-na-obrázok).
SD 3.0
Verzia 3.0 úplne mení základnú štruktúru siete. Namiesto UNet používa Rectified Flow Transformer, ktorý implementuje metódu rectified flow v spojení s Transformerom.
Architektúra Transformer používaná vo verzii SD 3.0 obsahuje tri „dráhy“ pre pôvodné textové kódovanie, transformované kódovanie, transformované textové a obrazu kódovanie (v latentnom priestore). Transformované textové kódovanie a obrazové kódovanie sa miešajú počas každého bloku Transformeru.
Architektúra je nazvaná "multimodal diffusion transformer (MMDiT), pričom "multimodál" znamená, že vo svojich operáciách mieša textové a obrazové kódovanie. To sa líši od predchádzajúcich verzií DiT, kde textové kódovanie ovplyvňovalo obrazové kódovanie, ale nie naopak.
Tréningové dáta Stable Diffusion bola trénovaná na pároch obrázkov a popisov pochádzajúcich z LAION-5B, verejne dostupného súboru údajov zloženého z dát Common Crawl zozbieraných z internetu. Tento súbor údajov obsahuje 5 miliárd párov obrázkov a textov, klasifikovaných na základe jazyka a filtrovaných do samostatných súborov údajov podľa rozlíšenia, pravdepodobnosti, že obsahujú vodoznak a predpovedaného „estetického“ skóre (napr. subjektívna vizuálna kvalita). Súbor údajov vytvorila nemecká nezisková organizácia LAION, ktorá je financovaná spoločnosťou Stability AI.
Model Stable Diffusion bol trénovaný na troch podskupinách LAION-5B: laion2B-en, laion-high-resolution a laion-aesthetics v2 5+. Analýza tréningových dát od tretej strany odhalila, že z menšej vzorky 12 miliónov obrázkov pochádzajúcich z pôvodného súboru údajov, pochádzalo približne 47% obrázkov pochádzalo zo 100 rôznych domén, pričom Pinterest tvoril 8,5% tejto vzorky. Nasledovali webové stránky ako WordPress, Blogspot, Flickr, DeviantArt a Wikimedia Commons. Vyšetrovanie realizované Bayerischer Rundfunk ukázalo, že súbory údajov LAION, hostované na Hugging Face, obsahujú veľké množstvo súkromných a citlivých údajov.
Tréningové postupy Model bol pôvodne trénovaný na podskupinách laion2B-en a laion-high-resolution, pričom posledné kolá tréningu boli vykonané na LAION-Aesthetics v2 5+, podskupine obsahujúcej 600 miliónov obrázkov s popismi. Tieto obrázky boli vybrané na základe predikcie LAION-Aesthetics Predictor V2, ktorá odhadovala, že ľudia by im priemere dali hodnotenie aspoň 5 z 10, keď by boli požiadaní, aby ohodnotili, ako sa im páčia. Podskupina LAION-Aesthetics v2 5+ taktiež vylúčila obrázky s nízkym rozlíšením a obrázky, ktoré nástroj LAION-5B-WatermarkDetection identifikoval s pravdepodobnosťou vyššou ako 80 %, že obsahujú vodoznak. Počas záverečných kôl tréningu bolo navyše z textového podmieňovania vypustených 10 % dát, aby sa zlepšilo Classifier-Free Diffusion Guidance.
Model bol trénovaný pomocou 256 grafických kariet Nvidia A100 na Amazon Web Services pre celkovo 150000 hodín GPU za cenu 600000 USD.
Obmedzenia Stable Diffusion problémy s degradáciou a nepresnosťami v určitých situáciách. Počiatočné verzie modelu boli trénované na dátovej sade pozostávajúcej z obrázkov s rozlíšením 512×512, čo znamená, že kvalita generovaných obrázkov viditeľne klesá, keď používateľské nastavenia odchýlia od „očakávaného“ rozlíšenia 512×512. Aktualizácia na verziu 2.0 neskôr zaviedla možnosť natívne generovať obrázky s rozlíšením 768×768. Ďalšou výzvou je generovanie ľudských končatín, čo je spôsobené nízkou kvalitou údajov o končatinách v databáze LAION. Model nie je dostatočne trénovaný na pochopenie ľudských končatín a tvárí kvôli nedostatku reprezentatívnych prvkov v databáze, a pokusy vygenerovať obrázky tohto typu môžu pre model pôsobiť mätúco. Verzia Stable Diffusion XL (SDXL) 1.0, ktorá bola vydaná v júli 2023, priniesla natívne rozlíšenie 1024×1024 a vylepšené generovanie končatín a textu.
Dostupnosť pre individuálnych vývojárov môže tiež byť problémom. Na prispôsobenie modelu pre nové použitia, ktoré nie sú zahrnuté v pôvodnej dátovej sade, ako napríklad generovanie anime postáv („waifu diffusion“), sú potrebné nové dáta a dodatočné trénovanie. Jemne doladené adaptácie Stable Diffusion, vytvorené prostredníctvom ďalšieho pretrénovania, boli použité na rôzne účely, od medicínskeho zobrazovania po algoritmicky generovanú hudbu.
Tento proces jemného doladenia je však citlivý na kvalitu nových dát; obrázky s nízkym rozlíšením alebo s iným rozlíšením než pôvodné dáta môžu nielenže zlyhať pri učení novej úlohy, ale dokonca zhoršiť celkový výkon modelu. Dokonca aj pri použití vysokokvalitných obrázkov je pre jednotlivcov náročné prevádzkovať modely na bežnej spotrebiteľskej elektronike. Napríklad tréningový proces pre waifu-diffusion vyžaduje minimálne 30 GB VRAM, čo presahuje kapacitu bežných spotrebiteľských grafických kariet, ako je napríklad séria Nvidia GeForce 30, ktorá má len približne 12 GB VRAM.
Tvorcovia Stable Diffusion si uvedomujú potenciál algoritmickej zaujatosti, keďže model bol primárne trénovaný na obrázkoch s anglickými popismi. V dôsledku toho generované obrázky často posilňujú spoločenské predsudky a odrážajú západnú perspektívu, pričom samotní tvorcovia priznávajú, že modelu chýbajú dáta z iných komunít a kultúr. Model poskytuje presnejšie výsledky pri zadaniach v angličtine v porovnaní s inými jazykmi, pričom západná alebo biela kultúra často predstavuje predvolenú reprezentáciu.
Koncové ladenie Na riešenie obmedzení počiatočného tréningu modelu môžu koncoví používatelia zvoliť dodatočný tréning na doladenie výstupov generovania tak, aby lepšie zodpovedali konkrétnym prípadom použitia, čo sa tiež označuje ako personalizácia. Existujú tri metódy, ktorými je možné aplikovať používateľsky prístupné doladenie na modelový checkpoint Stable Diffusion:
„Embedding“ (vloženie) môže byť natrénované z kolekcie používateľom poskytnutých obrázkov, čo modelu umožňuje generovať vizuálne podobné obrázky vždy, keď sa názov vloženia použije v generačnom príkaze. Embeddingy sú založené na koncepte „textual inversion“ (textová inverzia), ktorý vyvinuli výskumníci z Telavivskej univerzity v roku 2022 s podporou spoločnosti Nvidia. Tento koncept spája vektorové reprezentácie špecifických tokenov, ktoré používa textový enkóder modelu, s novými pseudo-slovami. Embeddingy môžu byť použité na zníženie zaujatostí v pôvodnom modeli alebo na napodobňovanie vizuálnych štýlov.