Pokud vás alespoň trochu zajímá dění v oblasti informačních technologií, potažmo ještě v oblasti umělé inteligence, nemohli jste si nevšimnout, kolik pozornosti se v poslední době věnovalo generátorům obrázků – generátorům využívajícím umělou inteligenci. A není divu – právě na nich se totiž velmi názorně a poutavě ukazuje pokrok modelů hlubokého učení.
Co se dozvíte v článku
- Stable Diffusion na počítači
- NMKD: Slibný začátek
- Modely: Grafické karty Nvidia ve výhodě
- Adaptivní model pro grafické karty AMD
- Generování obrázků na základě výzvy
- Chcete co možná nejlepší obrázky? Pak musíte vědět, jak napsat popis obrázku
- Automatic 1111: Umělá inteligence přes internetový prohlížeč
- Stable Diffusion: Licenční podmínky
Začalo to ostatně už v roce 2015 u firmy Google, která široké veřejnosti prostřednictvím aplikace Deep Dream zpřístupnila chaoticky působící obrázky náhodně generované pomocí neuronových sítí. Vývoj pak pokračoval dál, a to až k téměř fotorealistickým obrázkům generátorů Dall-E 2 od Open AI, Midjourney od Midjian nebo DreamStudio od Stable Diffusion.
Takové generátory jsou v současnosti k dispozici nejen v cloudu, ale i ve verzi pro váš vlastní počítač, ale ovšem pouze za předpokladu, že má dostatečný výkon. V tomto článku najdete generátory obrázků, které využívají zdarma dostupnou aplikaci Stable Diffusion, kterou na LMU v Mnichově vyvíjí výzkumná skupina CompVis s několika externími partnery a ve spolupráci s firmou Stability AI.
Samotná umělá inteligence i tréninková data jsou k dispozici pod poměrně volnou licencí: Stable Diffusion je totiž trénována na zdarma dostupné databázi s 5,85 miliony obrázků, kterou představila v roce 2022 nezisková nadace LAION (Large-Scale Artificial Intelligence Open Network). Zmiňovaná databáze je vedena pod licencí Creative Commons a sama o sobě neobsahuje žádné obrázky, ale obsahuje popisy a odkazy na veřejně přístupné obrazové materiály na webu.
Stable Diffusion na počítači
Součástí Stable Diffusion je stejně jako u řešení Dall-E a Midjourney nástroj pro převod textu na obrázky, tzv. parser. Tento parser zpracovává prostřednictvím umělé inteligence zadaný vstup a vytváří z popisů obrázků nové motivy, které více či méně odpovídají zadání. Stable Diffusion používá pro nově generované obrázky materiál ze svých tréninkových modelů.
V tomto článku vám představíme dvě aplikace – NMKD Stable Diffusion GUI a Automatic 1111 pro Stable Diffusion ve verzi pro operační systém Windows. Každý z těchto dvou nástrojů má své silné a slabé stránky, nicméně jedno mají společné – vyžadují výkonný hardware: v počítači, který má být používán pro generativní umělou inteligenci by určitě měla být nějaká novější grafická karta (Nvidia nebo AMD) s 8 GB VRAM a minimálně 16 GB operační paměti RAM. Jedná se tedy o počítačovou sestavu odpovídající dobře vybavenému hernímu počítači. Oba nástroje můžete samozřejmě zkusit použít i se slabším počítačem, ale pak se budete muset smířit s tím, že na výsledek budete čekat mnohem déle.
NMKD: Slibný začátek
Tým, který stojí za projektem Stable Diffusion, zveřejnil zdrojový kód svého softwaru pro generování obrázků s umělou inteligencí již v roce 2022, a to zpočátku v podobě betaverze určené pro užší okruh výzkumných pracovníků, aby mohl v mezičase v klidu formulovat podobu zdarma dostupného licencování. Díky licenci Open-RAIL je řešení Stable Diffusion už od srpna 2022 k dispozici všem potenciálním zájemcům.
Dostupný zdrojový kód napsaný v jazyce Python poměrně rychle inspiroval nezávislé vývojáře k vydání verze, kterou je možné instalovat na místním počítači a která nevyžaduje přístup ke cloudu. Hlavní motivací k tomuto kroku byla snaha o větší svobodu při generování obrázků i samotných motivů. Řešení Stable Diffusion ve verzi nainstalované na místním počítači totiž nabízí pro experimentování daleko více možností, zejména pro trpělivé uživatele.
Obrázky vytvořené pomocí řešení Stable Diffusion je možné používat zdarma, a to pro naprostou většinu způsobů užití jak pro soukromé, tak komerční účely. Několik omezení je podrobně rozebráno v rámečku na konci tohoto článku.
Podmínkou využívání řešení Stable Diffusion je nainstalovaná podpora programovacího jazyka Python a přítomnost několika nainstalovaných modulů pro jazyk Python. Uživatelé Linuxu mají situaci v tomto ohledu daleko jednodušší, protože pravděpodobně všechny komponenty již k dispozici mají, popřípadě si je velmi jednoduše doinstalují. Naopak v 64bitovém operačním systému Windows není instalace modulů Python, Stable Diffusion a modelů umělé inteligence bohužel bez problémů. Naštěstí právě zdarma dostupný nástroj NMKD Stable Diffusion GUI celou operaci značně usnadňuje.
Za stažení výše zmíněného nástroje požaduje jeho autor dobrovolný příspěvek. Na výběr máte ze dvou instalačních balíčků – jeden se 3 GB modelových dat a druhý bez nich (o velikosti 1 GB). Oba balíčky jsou k dispozici v podobě archivu ve formátu 7z, který dosahuje vysoké úrovně komprese. Pro rozbalení archivu tak budete potřebovat program, který dokáže s tímto typem archivu pracovat, například program 7-Zip. Počítejte s tím, že po rozbalení (do libovolné složky) zabere řešení NMKD Stable Diffusion GUI na úložišti 7,6 GB místa.
Modely: Grafické karty Nvidia ve výhodě
Pokud máte v počítači grafickou kartu Nvidia s alespoň 4 GB VRAM a pokud máte nainstalovánu nejnovější verzi ovladačů Nvidia pro vaši kartu (prostřednictvím balíčku ovladačů Nvidia Geforce Experience), pak se můžete do práce pustit třeba hned. Řešení Stable Diffusion je totiž stejně jako mnoho dalších aplikací umělé inteligence optimalizováno pro rozhraní Nvidia CUDA, které provádí výpočty s plovoucí desetinnou čárkou na shaderech grafické karty.
Po spuštění souboru StableDiffusionGui.EXE, který se nachází ve složce, do níž jste rozbalili archiv ve formátu 7z, o němž jsme se zmiňovali výše, se spustí grafické rozhraní programu Stable Diffusion komunikující v angličtině. Po uvítací obrazovce se dostanete na hlavní stránku programu s nastavením. Úplně dole pak program zobrazuje obsah souboru záznamu (log soubor), z něhož se dá zjistit, zda byla grafická karta Nvidia správně detekována a zda může používat rozhraní CUDA.
Mimochodem – je velmi pravděpodobné, že autor tohoto řešení mezitím vydal novou verzi NMKD s často poměrně velkým množstvím vylepšení. Aktualizace můžete instalovat prostřednictvím panelu nabídek, který se nachází vpravo nahoře, a to klepnutím na ikonku monitoru se šipkou a výběrem položky Install Updates.
Adaptivní model pro grafické karty AMD
Pokud máte ve svém počítači grafickou kartu od firmy AMD (s 6GB VRAM a více), budou začátky s řešením NMKD poněkud krkolomné. Důvod je prostý: pro bezproblémový chod je třeba oproti majitelům grafické karty Nvidia třeba předem provést několik kroků. Používaný model totiž není pro grafické karty AMD vhodný, protože u firmy AMD rozhraní CUDA prostě chybí. Je sice možné tento model překonvertovat tak, aby byl použitelný i pro grafické karty od firmy AMD, nicméně tato varianta bohužel vykazovala v našich testech chyby.
Daleko lepším řešením je stažení hotového modelu přímo od autora řešení NMKD. I v tomto případ se se jedná o soubor archivu ve formátu 7z a velikosti 3,5 GB. Tento archiv obsahuje složku stable_diffusion_onnx, kterou je však tentokrát nutno rozbalit jako celek, a to do podsložky „Models\Checkpoints“ v programové složce NMKD, aby nástroj model našel.
Proto vpravo nahoře klepněte na symbol ozubeného kolečka a poté na stránce nastavení klepněte na první pole nazvané Image Generation Implementation. Zde vyberte možnost Stable Diffusion (ONNX – DirectML – For AMDGPUs). Pod ním se vedle pole Stable Diffusion Model nachází tlačítko Refresh List. Když na něj klepnete, budete moci klepnout na položku stable_diffusion_onnx. Následně se můžete vrátit do hlavního okna pro generování obrázků.
Generování obrázků na základě výzvy
Co se týče zobrazených funkcí a parametrů, je rozhraní řešení NMKD relativně přehledné. Pro generování obrázků AI se používá v části Prompt Settings velké vstupní pole, do něhož zadáte popis obrázku, který má AI vzít jako motiv a který se má objevit ve výsledném obrázku.
Pod tímto velkým polem se nachází menší pole, které obsahuje údaje o tom, jaké styly, detaily motivu nebo barvy se ve výsledném obrázku naopak objevit nemají.
Pod výše uvedeným menším polem se nachází funkce Textual Inversion Embedding, která zadaný popis podpoří vzorovými obrázky, čímž je možné AI nasměrovat požadovaným směrem.
Velmi důležitým parametrem, který ovšem má velmi silný vliv na výslednou dobu generování obrázku, je posuvník Generation Steps, který zvyšuje jemnost detailů v obrázku.
Dalším parametrem pak je parametr Prompt Guidance CFG Scale, který udává, jak přesně se má AI držet popisu obrázku. Čím je tento popis přesnější a detailnější, tím vyšší může tato hodnota být.
Největší vliv na dobu generování obrázku má jednoznačně hodnota rozlišení, kterou najdete pod položkou Resolution. Například grafická karta typu Nvidia Geforce RTX 4070 vygeneruje obrázek o velikosti 512 × 512 pixelů za několik sekund, pokud však zvýšíte úroveň rozlišení, můžete se klidně dostat na minuty až hodiny, což už chce opravdu hodně trpělivosti.
Chcete co možná nejlepší obrázky? Pak musíte vědět, jak napsat popis obrázku
Když začnete s vlastním testování ať grafického rozhraní NMKD Stable Diffusion GUI, nebo Automatic 1111, záhy pochopíte, co je skutečně důležité: je to pečlivý a ne příliš stručný popis obrázku, který chcete vygenerovat.
Pokud má výsledný obrázek splnit vaše očekávání, je třeba jeho popis napsat co možná nejpřesněji a nejvýstižněji, a to nejlépe v angličtině, protože pak je možné pro řešení Stable Diffusion použít větší soubor modelových dat.
Dalším tipem, který vám pomůže dostat se k takovému obrázku, jaký si představujete, je definování stylu, v jakém má být obrázek generován. Pokud má být obrázek podobný fotografii, můžete použít například výraz photorealistic (fotorealistický). Pokud chcete obrázek ve stylu renesance, můžete použít jméno malíře – v tomto případě například painting, in the style of Boticelli, kdy se AI pokusí vygenerovat obraz ve stylu renesančního malíře Boticelliho.
Automatic 1111: Umělá inteligence přes internetový prohlížeč
Kromě NMKD mohou uživatelé operačního systému Windows pro řešení Stable Diffusion používat jako uživatelské rozhraní i program Automatic 1111. Tento program je k dispozici i ve variantě s komfortním instalátorem, který nainstaluje jazyk Python a všechny moduly současně. Po spuštění souboru EXE nejprve dojde k rozbalení vlastních instalačních souborů do zadané složky. Až poté je možné poklepáním na ikonku A1111 (WebUI) spustit vlastní instalaci, která probíhá v podobě skriptu v otevřeném okně příkazového řádku. Zde se rovněž instalační skript dotáže, zda má stáhnout model. Pokud se má stahovat i model, bude doba instalace delší, protože je třeba stáhnout celých 3,5 GB dat.
Zde ovšem jakákoliv podobnost s NMKD končí, protože Automatic 1111 je generátor obrázků AI pro pokročilé uživatele. Používá rozhraní internetového prohlížeče, a to i v případě, že jej máte nainstalován na místním počítači. Jednoznačnou výhodou pak je, že tento front-end pro Stable Diffusion můžete ovládat i z jiných počítačů v síti LAN, například z pohovky s notebookem nebo tabletem v ruce.
Klepnutím na odkaz A1111 (ve webovém rozhraní) se nejprve zobrazí nabídka dalších možností. Pokud má grafická karta méně než 8 GB VRAM, můžete využít možnost Low VRAM, která umožňuje snížit paměťové nároky. Na počítači, kde spustíte řešení Automatic 1111, pak stačí v internetovém prohlížeči otevřít internetovou adresu http://0.0.0.0:7860. Z jiného počítače se pak použije internetová adresa http://[IP adresa]:7860, kde řetězec „[IP adresa]“ odpovídá IPv4 adrese počítače v síti (tu si můžete zobrazit na příkazovém řádku příkazem ipconfig). Jen pro připomenutí: příkazový řádek v operačním systému Windows spustíte tak, že do políčka pro vyhledávání v tomto operačním systému zadáte příkaz cmd.
Je tady ovšem ještě jedna komplikace: musíte ve firewallu, resp. v programu Firewall v programu Windows Defender s pokročilým zabezpečením otevřít port 7860 pro příchozí spojení. Postupujte tak, že nejprve spusťte aplikaci Nastavení, kde přejděte do sekce Soukromí a zabezpečení > Zabezpečení Windows. Zde klepněte na položku Firewall a ochrana sítě > Upřesnit nastavení > Příchozí pravidla > Nové pravidlo.
I řešení Automatic 1111 je zpočátku připraveno fungovat pouze s grafickými kartami firmy Nvidia. Ti ostatní, kteří mají ve svých počítačích grafickou kartu od firmy AMD, musí provést ještě jeden krok navíc: po ukončení všech instancí řešení Automatic 1111 je třeba otevřít nové okno příkazového řádku a zadat následující příkaz:
git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml && cd stablediffusion-webui-directml && git submodule init && git submodule update
Dále je třeba v textovém editoru upravit dávkový soubor webuiuser.bat, který se nachází v podsložce stable-diffusion-webui-directml. Konkrétně je třeba do řádku „set COMMANDLINE_ARGS=“ přidat následující řetězec:
--opt-sub-quad-attention --lowvram --disable-nan-check --skip-torch-cuda-test
Po spuštění dávkového souboru webui-user.bat se objeví webové rozhraní a dojde k instalaci všech potřebných dodatečných modulů.
Stable Diffusion: Licenční podmínky
Obrázky vygenerované programem Stable Diffusion je možné s ohledem na licenci využívat skutečně mnoha způsoby. Je tomu tak proto, že tréninková data, která stojí za projektem Stable Diffusion, a samotný software umělé inteligence povolují využívání výstupů nejen pro soukromé účely, ale i pro účely čistě komerční, ovšem v rámci licence „Creative ML Open RAIL-M“.
Nejedná se však o tradiční svobodnou licenci ve smyslu softwaru Open Source, protože nějaká omezení zde skutečně jsou. Dle textu licence není dovoleno takové používání, které by vedlo k porušování místních zákonů. Není povolena ani produkce lživých údajů s cílem poškodit někoho jiného. Stejně tak není dovoleno vytvářet obsah, který by někoho diskriminoval nebo urážel. Mezi zakázané způsoby použití obrázků vytvořených programy s pomocí Stable Diffusion v tomto článku patří také poradenství v oblasti medicíny nebo práva.
![Autor: Computerworld](https://i.iinfo.cz/images/532/it-produkt-male-logo-1.jpg)
Získejte pro svůj produkt či službu ocenění IT produkt roku! Soutěž „IT produkt roku“ vyhlašuje redakce Computerworldu s cílem vyzdvihnout výrobky disponující vlastnostmi, které je významně odlišují od konkurenčních produktů stejné kategorie. Může přitom jít jak o celkově inovativní pojetí produktu, tak o jednotlivé funkční zdokonalení, výrazně zjednodušené ovládání nebo třeba o výjimečně příznivou cenu.
Soutěž probíhá ve třech samostatných kolech v kalendářním roce a každý postupující produkt či služba do jednoho ze tří finálových kol získává právo na titul IT produkt roku.
Máte-li zájem účastnit se soutěže IT produkt roku, neváhejte. Kontaktujte nás prosím na itprodukt@iinfo.cz.
O přihlášku a více informací si můžete napsat nebo zavolat na telefonech 776 204 420 nebo 604 266 707 či 725 326 893, případně na také na adrese itprodukt@iinfo.cz.