Blog Uměligence

Midjourney: Jak vykouzlit konzistentní postavy ve více obrázcích

Možná to znáš. Hraješ si s generátory obrázků jako Midjourney a vytvoříš si parádní postavu. Chceš ji použít třeba pro komiks. Jenže ouha, v dalším obrázku už to prostě není ona. Jinej účes, jinej výraz, prostě jiná. Co s tím?

Přesně tohle byla dosud velká bolest AI obrazových generátorů. Modely jako Midjourney totiž generují obrázek pokaždé znovu podle zadaného textu. Nedokážou si zapamatovat konkrétní postavu a znovu ji vykreslit v nové situaci.

Přitom tohle je klíčové, když chceš vyprávět příběh. Ať už chystáš storyboard pro film, ilustrace pro román nebo třeba jen komiks. Potřebuješ, aby postavy byly konzistentní. Aby je bylo možné poznat. Představ si Spidermana, který má v každém okénku komiksu jinou masku.

Naštěstí Midjourney teď přišla s řešením! A jmenuje se Character Reference neboli cref.

Jak to funguje? Je to vlastně docela jednoduché.

  1. Nejdřív si v Midjourney vygeneruješ obrázek nějaké postavy.
  2. Pak zkopíruješ URL tohoto obrázku a vložíš ho do nového promptu za --cref
  3. A ejhle, Midjourney se pokusí vygenerovat tu samou postavu v nové situaci podle tvého zadání.

Není to úplně dokonalé, ale rozhodně to funguje. Funkce není optimalizována pro fotografie skutečných lidí, jejichž podobu důvěrně známe. Tam dojde ke zkreslení. Midjourney se snaží prostě jen zachovat rysy obličeje, typ postavy a dokonce i oblečení z původního obrázku. Navíc můžeš pomocí parametru --cw ovlivnit, jak moc se má nový obrázek podobat originálu (na škále 0–100).

A to není vše! Pomocí více tagů --cref můžeš dokonce kombinovat více postav do jednoho obrázku. Nebo to zkombinovat se Style Referencí pomocí --sref. Možnosti jsou nepřeberné.

Tak co, už se těšíš, až si v Midjourney vytvoříš svůj vlastní svět s originálními postavami, které budou putovat z obrázku do obrázku? Já rozhodně ano! Tak šup šup, jdeme na to!

Jak vyrobit fejkové video?

Jak vyrobit fejkové video, ve kterém bude třeba Biden ohlašovat konec světa nebo Honza Tuna dělat reportáž o pejskovi s kočičkou, co pekli dort?

Je to opravdu jednoduché. Můžeš k tomu použít napříkladu službu Rask AI, která slouží k předabování videí. Stačí do ní nahrát video, vybrat si jeden z 60 jazyků, do kterého se má přeložit, chvíli to chroustá a pak se stane zázrak: vidíš původní video, kde všechny postavy hovoří svým hlasem, svou jedinečnou dikcí, ale v jiném jazyce. Dokonce zachová původní hudbu nebo zvukové efekty v pozadí.

Tuhle službu použijeme trošku jiným způsobem: místo překladu do cizího jazyka zvolíme jako cílový jazyk ten původní. Využijeme tak čistě schopnost klonovat hlasy a nahrazovat ve videu původní mluvené slovo za jiné. Přeložené dialogy poté v editoru nahradíme za vlastní text a je hotovo.

Služba Rask AI umožňuje předabovat až 3 minuty videa zdarma. Bohužel v bezplatném tarifu není funkce lip-sync, tedy synchronizace rtů s tím, co osoba říká. Nemusí to vadit, pokud nové dialogy napíšeš tak, aby se „trefily do pusy“ (tedy tak, jak opravdu dabing funguje). Nebo pusa není úplně jasně vidět v záběru, a tak dále. V ostatních situacích je synchronizace obrazu se zvukem docela žádoucí.

Jestli kvůli tomu nechceš platit tarif, lze k lip-syncu využít jinou službu (ovládání je složitější). Do ní nahraješ původní video, vygenerovanou zvukovou stopu z Rask AI, zase to necháš chvíli počítat a výsledkem je video, kde se pusa hýbe podle zvukové stopy. Problém je, že rozhýbá všechny pusy v záběru, což samozřejmě není žádoucí, ale je to docela vtipné 🙂

Proč obrázkové generátory nezvládají text?

Myslím, že ho zvládají stejně dobře jako cokoliv jiného. To jen my jsme na text nesmírní puntičkáři. Úpěnlivě trváme na jediném správném pořadí písmen a jejich prohození netolerujeme. Ani z estetických důvodů. Trváme na jednotném stylu, velikosti a přesných proporcích. Hodnotíme přísným okem tloušťku každičkého tahu. Vyhovět nám je opravdu nesmírně těžké.

Ale když budou na obrázku čínské znaky, tohle naše puntičkářství zmizí. A pak už není problém souhlasit, že text zvládá stejně dobře jako cokoliv jiného, ne?

Podobný případ jsou lidské dlaně. Mají s nimi jakýsi handicap ;-) Důvod bude podobný: záleží na pořadí prstů, všechny musí vyrůstat z dlaně a mít správný poměr velikostí. Pro nás samozřejmost, pro generátory překvapivě oříšek. Takže díky prstům můžeme řadu vygenerovaných obrázků odhalit. A pokud na něm nejsou vidět, dá se namítnout: Ukaž ruce nebo se to nestalo!

Hands or it didn't happen!

Dokáže AI prolamovat hesla?

Nedokáže. Ale je možné, že jsi někde zaslechl opak nebo narazil na bombastické titulky o AI lámajících hesla jako párátka. Jde o senzacechtivé zprávy, navíc staré a jen znovu oprášené. Než bude umělá inteligence představovat legitimní hrozbu pro naše hesla, musí se výrazně vyvinout.

Stále tak platí, že 1) hesla musíš mít vytvořená náhodně a 2) ke každému účtu jiné. Pak se pro tebe nic nemění. Samozřejmě, že taková hesla si nejde zapamatovat. Od toho tu jsou šifrované systémové klíčenky, jako je Applí klíčenka, LastPass, 1Password apod. Naopak neukládej hesla přímo v prohlížeči, protože ten je obvykle nešifruje *). Že nic takového nepoužíváš? Že máš všude stejné heslo? No tak na nic nečekej a okamžitě mazej to změnit! Hned! Nebo taky můžeš zítra zjistit, žes přišel o přístup k mailu, Instáči, Fejsu, úplně ke všemu, vyhodí tě z práce, vykopnou z domu, život v troskách, to umí úplně zkazit léto.

*) pro mé technicky zdatné přátele, co si umí šifrování v prohlížeči pohlídat: gratuluji a netřeba o tom psát komentáře

Mají se překladatelé bát o práci?

Viktor JanišDVTV vysvětluje, jak zásadně se liší překlad od profesionála v porovnání s AI. Popisuje to ještě ve svém FB postu.

A teď k tomu, v čem nemá úplně pravdu ?

Samozřejmě platí, že současné nástroje na bázi neuronových sítí, jako je GPT nebo DeepL, překládají větu od věty bez ohledu na širší kontext. V jedné větě tak může být podmětem muž, ve druhé najednou žena. Nedokážou najít vhodné analogie pro cizí popkulturní odkazy. Nebo překládat jazykové hříčky s ohledem na to, jak budou teprve v následujícím textu využité. A tak dále.

V případě Google Translate nebo DeepL jde o dané omezení. Které samozřejmě pro technické texty nevadí. DeepL tak plní skvělou službu při překládání návodů, dokumentací, běžných blogpostů nebo novinových článků.

Obří jazykové modely, jako je GPT, ale dokáží víc. Dokáží se poprat s beletrií. Dokáží pochopit kontext, ironii, humor. Ale nedokáží to v režimu, kdy generují jedno slovo za druhým. Tedy pokud dám jako prompt „Přelož následující text ###“, bude výsledek na úrovní DeepL. Při překladu do češtiny dokonce horší.

Pokud na to ale půjdu jinak a nechám jej nejprve text vysvětlit, včetně idiomů, ironie nebo humoru, poté požádám o návrh možných alternativ v jiném jazyce a teprve poté budu chtít překládat s využitím těchto informací, výsledek bude řádově lepší.

Technice se říká chain of thought.

Příklad odjinud: když budu chtít, aby ChatGPT napsal třetí odmocninu z obrovského čísla, s tím, že má napsat jen odpověď, vrátí úplný nesmysl. Když ho nechám se vykecávat o tom, jak se taková věc počítá, vrátí výrazně přesnější výsledek (ale ne přesný, není to kalkulačka). Podobně to bude fungovat i s překládáním.

Dnes existuje řada omezení: celý vstup a výstup včetně mezifází se musí vlézt do limitu tokenů. GPT bylo málo trénované na češtině. České popkulturní odkazy zná z rychlíku. A tak dále. Ale tohle se za pár let změnit může.

Mimochodem, v rozhovoru ukazují tento obrázek (který vytvořila redakce DVTV, nikoliv Viktor Janiš) demonstrující, jak jsou současné překladače slabé.

Akorát že vůbec.

Tipuju, že dali omylem přeložit text nikoliv jako blok, ale odřádkovaně. Tj. první věta „Albus Dumbledore didn't seem to realise that he had just arrived in a“, druhá věta „street where everything from his name to his boots was unwelcome.“ atd.

Garbage in, garbage out. Když to dám v DeepL přeložit jako blok, dostávám řádově lepší výsledek. Jde o nedokonalost DeepL, na kterou je potřeba si dávat pozor, snadno se na tom člověk spálí.

Jak naklonovat hlas?

Umělé inteligence pro klonování hlasů nejsou zatím tak dokonalé, jako třeba generátory obrázků. Určitě se to brzy změní, nejspíš s masivnějším příchodem videí generovaných pomocí AI. Ale prozatím nečekej zázraky.

Napodobit hlas někoho jiného totiž neznamená jen napodobit jeho specifickou barvu, ale i způsob řeči, parazitní slovíčka, dýchání a já nevím co ještě. Až uměligence vystřihne Leoše Suchařípu, tak smeknu. Ale letos ještě bude mít Petr Jablonský co jíst.

Jak se dá, byť nedokonale, klonovat hlas? Tuhle službu nabízí řada aplikací. Dokonce i samotné iPhony s iOS 17. V Nastavení > Zpřístupnění > Osobní hlas si spustíš klonování hlasu. Musíš přečíst 150 frází, na kterých se pak iPhone bude celou noc učit.

Na podobném principu fungují i různé webové aplikace. Nutnost číst připravené věty je spíš pojistkou, aby nebylo možné klonovat cizí hlas bez vědomí majitele, pro samotný trénink není obsah vět podstatný.

Existují tedy i metody, jak naklonovat hlas pouze z nahrávky, kde osoba mluví o čemkoliv. Třeba tohle jsem vyrobil z inauguračního projevu prezidenta Petra Pavla:

Jak takový hlas naklonovat vysvětluje video tutoriál na YouTube. Není to úplně easy, ale jistě brzy vzniknou lepší a snadněji přístupné nástroje.

ChatGPT očima Stephena Wolframa

Jak funguje ChatGPT uvnitř popsal v podrobném článku (dnes dokonce knize) Stephen Wolfram, tvůrce úžasných matematických projektů. Baví mě, že jeho povídání je zhusta protkáno podobnými větami: ?

  • Proč se sčítají tyto dvě hodnoty? Nemyslím si, že by v tom byla nějaká zvláštní věda. Jde jen o to, že se zkoušely různé věci, a tohle je jedna z těch, které se zdají být funkční.
  • Každá z hlav pracuje nezávisle na různých částech hodnot ve vkládaném vektoru. A ano, neznáme žádný konkrétní důvod, proč je dobré takto vstup rozdělit nebo co jednotlivé části znamenají; je to prostě jedna z těch věcí, které se ukázaly jako funkční.
  • Je těžké pochopit, co tato vrstva dělá.
  • Co určuje tuto strukturu? Nakonec je to pravděpodobně nějaké „neuronové síťové kódování“ vlastností lidského jazyka. Jaké vlastnosti to mohou být, však zatím není známo.
  • Nakonec je však pozoruhodné, že všechny tyto operace – jakkoli jsou jednotlivě jednoduché – dokážou dohromady odvést tak dobrou „lidskou“ práci při generování textu.
  • Je třeba znovu zdůraznit, že (alespoň pokud víme) neexistuje žádný konečný teoretický důvod, proč by něco takového mělo fungovat.
  • Tohle musíme považovat za potenciálně překvapivý vědecký objev: že v neuronové síti, jako je ChatGPT, je nějakým způsobem možné zachytit podstatu toho, co lidský mozek dokáže při generování jazyka.
  • Některé texty byly při tréninku podány několikrát, některé pouze jednou. Nějakým způsobem však z textu, který vidělo, „dostalo, co potřebovalo“.
  • Zjišťujeme, že ano, je to tam složité a nerozumíme tomu, ale nakonec to produkuje rozpoznatelný lidský jazyk.