Magazín ze světa digitálního marketingu
Pozadí vlevo Pozadí vpravo

AI Inside Out #26: Tvořte úchvatné QR kódy ve Stable Diffusion

Vít Hanuš
Vít Hanuš
11. 10. 2023

Ještě než se necháme zavalit výbuchem kostičkovaného vulkánu, lehce si projdeme základy práce se Stable Diffusion. Naťukneme prostředí programu a vysvětlíme si hlavní funkce. A pak už budeme tvořit úžasné ilustrované QR kódy doslova v pár minutách.

QR kód vygenerovaný ve Stable Diffusion

QR kód vygenerovaný ve Stable Diffusion

Stabilně komplexní, i komplikovaný

Stable Diffusion osobně pokládám za jeden z nejlepších nástrojů pro tvorbu obrázků pomocí umělé inteligence. Jedná se o otevřenou platformu, kterou si můžete poměrně dost přizpůsobit podle sebe a vašich potřeb. Já sám jí hojně využívám pro generování statických i pohyblivých vizuálů.

Má to ale jeden háček! Jedná se také o jeden z nejnáročnějších AI programů. Ruku v ruce s možnostmi, které Stable Diffusion nabízí, dokáže leckoho řádně potrápit. Já sám se s tímto programem neustále učím zacházet. Postupně teprve objevuju, jak celé uživatelské rozhraní funguje a co jaký slider dělá.

Ale když zatnete zuby a vydržíte, začnete z něj postupně dostávat výsledky, které stojí opravdu za to.

Uživatelské rozhraní Stable Diffusion

Uživatelské rozhraní Stable Diffusion

Buď silné PC, nebo placený cloud

Stable Diffusion v základu funguje jako offline software zdarma, který využívá sílu vašeho PC. To ale může být pro někoho problém, protože ke generování výstupů potřebujete docela „nabušenou“ grafickou kartu.

Abyste se tedy u generování úplně neukousali nudou, doporučuji vám minimálně grafickou kartu podporující technologii RTX. Pak bude vaše tvorba plus minus pohodlně probíhat v rozumném množství i rozlišení. Můžete samozřejmě zkusit tvořit i se slabšími kartami, nicméně brzy začnete narážet na limity. Já sám to zažil s Nvidia GeForce 1060 6GB a už bych do toho nešel.

Je tu ale ještě jedna možnost! Pokud nechcete investovat do posilování svého PC, můžete si zakoupit cloudový prostor, se kterým budete tvořit v SD bez větších zádrhelů a technických omezení. Takový prostor samozřejmě něco stojí a většinou si předplácíte i určité množství času pro generování. Tuto službu například poskytuje web RunDiffusion.

Instalace s dávkou trpělivosti

Na internetu si bez problémů najdete velké množství informací a videonávodů, jak Stable Diffusion nainstalovat. Ale rovnou upozorňuji, že už v téhle fázi potřebujete pevné nervy. Abych vám to trochu ulehčil, níže najdete dva vlastnoručně vyzkoušené videonávody na instalaci. Věřím, že se jejich pomocí do prostředí SD rychle dostanete.

Videonávod k instalaci Stable Diffusion ve Windows

Videonávod k instalaci Stable Diffusion v iOS

Orientace v prostředí Stable Diffusion

Nebudu vám zde podrobně vysvětlovat práci ve Stable Diffusion. Nějaké základní věci zde ale raději zmíním. V horní liště vidíme několik záložek jako txt2img, img2img a další. S různými pluginy je možné přidat i další rozšíření, například Deforum na tvorbu videí. Nyní se ale zaměříme především na mód txt2img neboli „text do obrazu“.

V horní liště najdeme seznam funkcí Stable Diffusion

Horní lišta Stable Diffusion

Měňte svůj styl v Checkpointu

V této záložce vidíme několik ploch s různými možnostmi nastavení. Úplně nahoře je možnost výběru checkpointu.

V levém horním rohu najdeme možnost výběru Stable Diffusion Checkpointu

Volba Stable Diffusion Checkpointu

V základu zde budete mít nejspíš vybranou poslední verzi Stable Diffusion. Tyto checkpointy jsou velmi laicky řečeno přednaučené modely pro generování. Jejich změnou můžete určit styl nebo žánr generovaného obsahu. Za tu dobu, co Stable Diffusion existuje, uživatelé vytvořili nespočet checkpointů a modelů zaměřených na různé druhy výstupů. Můžete zde najít vše od realistické fotografie přes anime až po minimalistickou grafiku.

Tyto modely lze vcelku jednoduše stahovat například z knihovny Civitai. Následně je pak pouze nahrajete do složky, kde máte uložený Stable Diffusion. Přesněji sem:

stable-diffusion-webui\models\Stable-diffusion

Při tvorbě QR kódů se mě nejvíce osvědčily checkpointy ReV Animated a GhostMix. Ale sami zkoušejte různé modely a sami uvidíte, které vám dávají nejlepší výsledky.

Zadávejte pozitivní i negativní prompty

V horní části obrazovky jsou také textová pole pro vkládání pozitivních a negativních promptů. Díky těmto textovým polím určujete, co na obraze má být, ale také to, co tam nechcete.

V levé části od tlačítka Generate najdeme prostor pro zapsání pozitivních a negativních promptů

Prostor pro zapsání textových promptů

Dám vám 3 osobní rady k textovému zadávání:

  1. Nepište textové prompty jako souvislý text, ale spíše jako bodový seznam.
  2. Klidně pište delší seznamy slov, narozdíl od Midjourney neurčuje Stable Diffusion důležitost vašich promptů.
  3. Do negativních promptů můžete použít například seznam – ugly, disfigured, low quality, blurry. Fungujte to!

Nastavte sampling method podle sebe

V dalším poli určujeme dvě zásadní věci. Zaprvé metodu samplování, tedy techniku, kterou se váš obraz bude generovat. A zadruhé určíte, kolik takových kroků má jedno generování zabrat. Čím více kroků, tím více detailů získáte. Každý krok ale samozřejmě přidává další čas.

Poté si můžete nastavit také šířku a výšku obrazu nebo množství generovaných obrazů. Batch count určuje počet sad a batch size množství obrazů v jedné sadě.

Zobrazení prostoru pro určení samplovací metody, velikosti a množství vygenerovaných obrazů

Prostor pro určení samplovací metody, velikosti obrazu a množství vygenerovaných obrazů

Samplovací metoda je pro mě stále trochu tajemství. I zde musíte testovat, která metoda vám bude vizuálně nejvíce vyhovovat. Mně se osvědčila úvodní metoda Euler A a pak také DPM++ 2M Karras. Přišly mi nejlepší v kvalitě obrazu i rychlosti generování.

Mrkněte sami na tabulku s výsledky jednotlivých metod:

Test samplovacích metod, společně s výsledky

Test samplovacích metod

S funkcí ControlNet až ke QR kódům

Pod oknem se samplovací metodou a rozměry obrazu najdete šikovné pole ControlNet s možností přidání souboru. Tato funkce nás bude zajímat právě pro účely tvorby ilustrovaných QR kódů.

Zobrazení tlačítka pro tvorbu a úpravu Control Netů

Prostor pro úpravu a tvorbu Control Netů

Rozbalené okno pro tvorbu a úpravu Control Netů

Okno Control Netu

Do pole ControlNet můžete vložit svůj vlastní obrázek a na základě preprocessorů a na ně navázaných modelů můžete vlastnosti daného obrázku přenést do vašich AI výstupů. Tyto preprocessory lze stáhnout na webu Huggingface, kde byste už měli mít vytvořený účet pro práci v SD.

Vložíte je pak do této složky:

stable-diffusion-webui/extensions/sd-webui-controlnet/models

Pro tvorbu QR kódů potřebujete dva modely, Tile a Brightness. Ve zkratce jeden z nich ovlivňuje stálost tvaru QR kódu a druhý poměr světlých a tmavých odstínů. Pokud nyní do pole ControlNet nahrajete obrázek, jeho vlastnost se promítne na výsledném generovaném obrázku podle ControlNet modelu, který zvolíte.

V jeden moment můžete mít nastavené až 3 různé ControlNet modely. Každý model ControlNettři slidery, které se jmenují Control Weight, Starting Control Step a Ending Control Step.

Ukázka volby Preprocessoru, jeho přidruženého modelu a jejich doplňující nastavení hodnot

Ukázka volby Preprocessoru, jeho přidruženého modelu a jejich doplňující nastavení hodnot

Krátce vám tyto funkce vysvětlím:

Control Weight: Určuje sílu propisu daného obrázku do výsledného vygenerovaného výstupu. Čím větší číslo, tím více se upřednostní obrázek v poli ControlNet.

Starting Control Step: Určuje, od kdy se má začít do generovaného výstupu obrázek v poli ControlNet propisovat. Čím větší číslo, tím míň vlastností obrázku se propíše.

Ending Control Step: Určuje, do kdy se má do generovaného výstupu obrázek v poli ControlNet propisovat. Čím větší číslo, tím víc vlastností obrázku se propíše.

ALE POZOR! U každé funkce ControlNet, který využíváte musí být zakliklé tlačítko Enable a musí svítit zeleně jako na tomto obrázku:

Zapnutý Control Net s již vloženým obrázkem QR kódu

Zapnutý Control Net s již vloženým obrázkem QR kódu

Tak a teď víte to nejdůležitější k tvorbě QR kódů!

Jdeme tvořit úchvatné QR kódy

Nejprve si připravíme pracovní plochu a nastavíme veškeré parametry:

  1. Nastavte si správný checkpoint, já například nyní používám checkpoint GhostMix.
  2. Sampling method doporučuji DPM++ 2M Karras nebo Euler A. Uvidíte, která vám sedne více.
  3. Sampling steps nastavte na 23.
  4. Šířku a výšku doporučuji kolem 768x768px s ohledem na výkon vašeho počítače.
  5. Zapněte si dva ControlNet pojmenované ControlNet Unit 0 a ControlNet Unit 1.
  6. U ControlNet Unit 0 nastavte preprocessor na inpaint_global_harmonious, model na control_verze modelu_tile a nastavte Control Weight na 0.35. Ostatní parametry neměňte.
  7. U ControlNet Unit 1 nastavte preprocessor na inpaint_global_harmonious, model na control_verze modelu_brightness a nastavte Control Weight na 0.5, Starting Control Step na 0.35 a Ending Control Step na 0.7.
  8. Do obou ControlNet vložte váš QR kód.
  9. Vyplňte textové prompty.
  10. Klikněte na tlačítko Generate a sledujte, jak se váš QR kód mění v krásnou ilustraci.

Vaše obrazovky by měly při správném nastavení vypadat takto:

Vzorová obrazovka správně vyplněného Tile Control Netu

Vzorová obrazovka správně vyplněného Tile Control Netu

Vzorová obrazovka správně vyplněného Brightness Control Netu

Vzorová obrazovka správně vyplněného Brightness Control Netu

Díky takto nastaveným polím ControlNet se daný QR kód promítne do výsledného díla. Uchvátí vás hra světel a stínů, které ovšem nijak nezakryjí čitelnost kódu na většině zařízení. Takže teď už zbývá jen upustit uzdu své fantazii a testovat a testovat.

Tak jak jste byli úspěšní?

Hotový QR kód propojený s mořskou hladinou

Hotový QR kód propojený s mořskou hladinou

Hotový QR kód propojený s pohořím

Hotový QR kód propojený s pohořím

Hotový QR kód propojený s lesem

Hotový QR kód propojený s lesem

Hotový QR kód propojený s lidskou postavou

Hotový QR kód propojený s lidskou postavou

Nenechte se odradit problémy

Samozřejmě i tato metoda tvorby má své limity a úskalí. Projdu s vámi pár problémů, na které byste mohli narazit:

  1. Stable Diffusion není dokonalý a bohužel nezvládne vytvořit čitelné kódy z tvarově složitějších QR kódů. Využijte v tomto případě nějaký zkracovač URL.
  2. Pokud vám Stable Diffusion nic nevygeneruje, zkontrolujte chybovou hlášku pod oknem, kde se vám měl objevit výsledný obraz. Z toho lze většinou vyčíst, co se pokazilo. Většina problémů, se kterými jsem se potýkal vycházela z toho, že jsem chtěl příliš vysoké rozlišení nebo velké množství obrázků naráz. Změňte tyto hodnoty a generujte znovu.
  3. Po delší době generování se mi začaly chybové hlášky objevovat častěji i při rozlišení, které můj počítač běžně zvládal. V tomto případě zkuste Stable Diffusion restartovat.
  4. Pokud je váš kód nečitelný, zkuste tyto změny:
    1. Změňte prompt. S některými tématy si Stable Diffusion neumí dobře poradit. Dobře fungují prostředí, jako pole, louky nebo moře. Zároveň jsou lepší prostředí a tématiky, kde se přirozeně může nacházet velký rozdíl v barvách, jako třeba zasněžená vesnice nebo koupelnové kachličky.
    2. Zvyšte Control Weight u ControlNet, který ovládá model Brightness. Nezvyšujte tento parametr ale příliš, jinak se vám nebude vykreslovat žádná ilustrace. Mně v některých případech pomohlo maximálně zvýšení na 0,45.
    3. Testujte malé změny v parametrech ControlNet, třeba na něco nového přijdete. Je to bohužel často o experimentování, takže posunout Ending Control Step nebo Starting Control Step u modelu ovládající Brightness může také do jisté míry pomoci.
  5. Obecně mohou mít telefony problém se čtením z malé vzdálenosti. Proto někdy zkuste telefon od obrázku oddálit a čitelnost kódu by se měla zlepšit.

Stable Diffusion potřebuje váš čas

Stable Diffusion je neuvěřitelný nástroj! Je ovšem tak komplexní, že se nedá pochopit do detailu za den, týden, možná ani za měsíc. Vyžaduje spoustu experimentování, testování a pátrání po úchvatném výsledku. Tak už neztrácejte čas a utíkejte ho vyzkoušet!

Přeji hodně kjúár štěstí!

Sdílejte článek

Související články