Objavljeno: 27.6.2023 | Avtor: Matej Huš

Kako postati računalniški Dalí

Generativni modeli umetne inteligence so že dobro leto sposobni risati osupljive slike in si izmišljevati fotografije, za kar zadostujejo besedni opisi oziroma ukazi. Obstaja več orodij, njihovi rezultati pa segajo od klavrnih do profesionalnih stvaritev, odvisno od našega mojstrstva pri ubeseditvi ukazov. Medtem ko je v Silicijevi dolini iz tega nastal čisto nov poklic, si bomo mi ogledali osnove.

Ko je OpenAI v začetku leta 2021 predstavil svoj generativni model za ustvarjanje bolj ali manj realističnih slik DALL-E, so bili rezultati sila skromni. Primerjali bi jih lahko s kakšno podpovprečno animacijo iz risanega filma, pri čemer je bilo vsem jasno, da gre za računalniški izdelek. Bodimo kritični, ne kritizerski: to je bil še vedno osupljiv dosežek, če pomislimo, kako so te slike nastale. Generativni jezikovni model, ki je uporabljal transformerje (GPT), je slike risal iz besedilnih pozivov oziroma ukazov – nismo se še dogovorili, kakšen bo prevod izraza prompt. A za praktično uporabo so bili izdelki vendarle preslabi.

OpenAI ni počival, temveč je jeseni 2022 predstavil novo različico DALL-E 2, ki je bila neprimerno izboljšana. Rezultati so bili še vedno opazno umetni, a so bili za nekatere vrste rabe povsem spodobni. Za ustvarjanje novoletnih čestitk, za kakšne simbolične grafične dodatke krajšim člankom in podobno. Največjo težavo so povzročale upodobitve ljudi in živali, kjer je često obtičal v srhljivi dolini (uncanny valley). Izdelki so bili ravno toliko drugačni od resničnosti, da so delovali spačeno in groteskno. Predvsem oči so bile povsem zgrešene, potem ko se je vendarle naučil, da imamo ljudje na vsaki okončini pet prstov.

Kako pisati dobre ukaze

1. Natančno izberimo slog.

2. Opredelimo vse elemente, ki jih želimo na sliki.

3. Izberimo in opišimo barve.

4. Dodajmo informacijo o vzdušju in čustvih.

5. Dobro opišimo kompozicijo.

6. Ne pišimo predolgih ukazov.

A umetna inteligenca nebrzdano koraka dalje. Ne razvija se le DALL E 2, temveč tudi konkurenca. Stable Diffusion je odprta različica takšnega modela, Midjourney pa je komercialno najuspešnejša in najbolj dodelana inačica. Njeni izdelki so pretentali že marsikoga, najočitneje s fotografijo papeža v beli puhovki in fotografijo nekdanjega ameriškega predsednika, ki beži pred policisti. Z dobrimi ukazi so rezultati domala realistični, uporaba pa je odvisna le od domišljije ljudi.

Poklic prihodnosti

To nas pripelje do rdeče niti tega prispevka. Direktorica oddelka za umetno inteligenco pri Nvidii Sanja Fidler je v nedavnem intervjuju za Mladino dejala, da se pojavlja povsem nov poklic, ki bi ga lahko poimenovali inženirstvo ukazov (prompt engineering). Letos so se pojavili prvi oglasi za to delovno mesto, a to ni bilo sramežljivo pomakanje nog v mrzlo vodo, temveč skok na glavo. Število oglasov je eksplodiralo, nenadoma inženirje ukazov v ZDA iščejo vsa podjetja, tudi če ne razvijajo umetne inteligence. Bostonska bolnišnica išče takšnega človeka, ki sicer potrebuje magisterij iz zdravstvene nege, a tudi poznavanje umetne inteligence in osnov programiranja. Ali kot je letos januarja čivknil Andrej Karpathy, nekdanji direktor umetne inteligence pri Tesli, zdaj pa inženir v OpenAI: »Najpopularnejši programski jezik je zdaj angleščina.« Sam Altman, izvršni direktor OpenAI, je februarja letos zapisal, da oblikovanje dobrega resnično ukaza za jezikovni model zahteva zelo napredne veščine in predstavlja zgodnje programiranje v naravnem jeziku. Iskanje termina prompt engineer se je, sodeč po Google Trends, od januarja do maja letos postoterilo, daleč največ poizvedb pa prihaja iz Kitajske.

Veliki jezikovni modeli, najsi jih uporabljamo za ustvarjanje slik ali celo videoposnetkov ali pa »zgolj« za besedilo, so švicarski nož na steroidih. Njihove sposobnosti so mnogotere in raznolike, kaj vse in kako dobro to zmorejo, pogosto preseneti tudi njihove avtorje. Že pri preizkušanju in ocenjevanju naletimo na težave, ko se stežka domislimo vseh mogočih načinov uporabe. Podobne težave imajo tudi uporabniki, ki lahko najboljše iz jezikovnih modelov izvlečejo le, če jih to znajo primerno vprašati. Ukazi namreč niso omejeni na kratke enovrstičnice, temveč lahko obsegajo več dolgih opisov, tudi cele strani besedila. S tem se močno približamo strahu številnih posameznikov: v prazno polje morajo vpisati koherenten, premišljen kos besedila.

Kakor smo se morali naučiti guglati, tako je treba znati ravnati tudi z jezikovnimi modeli. Resda govorijo naravno angleščino, a to ne pomeni, da za uporabo ne potrebujemo nobenega znanja, vaje in izkušenj. S čim se torej ukvarjajo ti inženirji ukazov? Njihovo delo obsega najrazličnejša opravila, odvisno od namena. Kjer se razvijajo veliki jezikovni modeli, inženirji sodelujejo tako pri urjenju kakor pri zagotavljanju kakovosti. Domisliti se morajo najrazličnejših testov, ki potisnejo umetno inteligenco do roba. Na uporabniški strani pa inženirji ukazov poskušajo ubesediti zahteve tako, da bo rezultat najboljši mogoč. To ni trivialno ter zahteva precej poznavanja delovanja konkretnega jezikovnega modela in zakonitosti umetne inteligence nasploh.

Osnovni napotki

Seveda vas kratek prispevek o pisanju ukazov za ustvarjanje čim boljših slik ne bo usposobil za dobro plačano službo inženirja ukazov v Silicijevi dolini, kjer letne ponudbe presegajo 300 tisoč dolarjev, a vseeno ne škodi poznati osnove dobrega ukazovanja. Če bi morali napotke strniti v eni rečenici, je to Več je več. Ali nekoliko izdatneje: Za dober rezultat je treba želje ubesediti čim eksaktneje in čim obširneje. Poglejmo podrobneje.

DALL-E 2 je od lanskega septembra na voljo vsakomur na naslovu https://labs.openai.com/, potrebna pa je registracija z delujočim elektronskim naslovom. Na voljo imamo 15 poskusov na mesec, neizkoriščeni pa se ne prenašajo v naslednji mesec. Prvi mesec je OpenAI nekoliko radodarnejši in novim računom dodeli 50 poskusov.

Uporaba je varljivo preprosta. Na prvo stran moramo v iskalno polje vpisati ukaz, pa bo DALL-E 2 ob kliku na gumb Generate ustvaril štiri podobe. Ne škodi, če si najprej ogledamo nekaj že predpripravljenih primerov, da dobimo občutek, kaj je sploh mogoče in kako obširni opisi so minimalni potrebni.

Za čim boljše rezultate pa se velja držati naslednjih korakov, še preden kliknemo Generate. Najprej si moramo zamisliti, kaj želimo. Čeprav se to sliši samoumevno in logično, bo vsak grafični oblikovalec znal povedati, da stranke večinoma ne vedo, kaj hočejo. Pri uporabi DALL-E 2 je podobno. Dobro moramo premisliti, kakšen končni rezultat bi bil primeren. Šele ko bomo to natančno vedeli, bomo lahko začeli oblikovati ukaze in jih glede na rezultate prilagajati.

V drugem koraku moramo želeno kompozicijo čim bolje opisati. Opis cat on a bicycle se sliši zabavno, a rezultati bodo klavrni. Povedali smo mnogo premalo. Ni jasno, kako je videti mačka (pasma, barva, dlaka, velikost), kaj pomeni na kolesu (poganja pedale, se vozi na košari, spi na prtljažniku parkiranega kolesa), kakšno je kolo (mestno, dirkalno ali gorsko, barva, velikost), kje se kolo vozi (po cesti, gorah, je v garaži, na trajektu). Vse to so podatki, ki jih moramo opisati, če želimo dobre rezultate.

Umetna inteligenca ne ustvarja le fotografij ali generičnih podob, temveč posnetke najrazličnejših slogov. Realistične fotografije, obledele črno-bele slike, ilustracija s svinčnikom, imitacije olja na platnu, Picassov slog in celo Minecraft. Omejitev je le naša domišljija, zato moramo izrecno pojasniti, kakšen slog želimo. K temu sodi tudi opis »vzdušja« (mood). Definiramo lahko, ali bodo fotografije svetlejše ali temnejše, ali bodo delovale živahno ali turobno, v kakšnih tonih naj bodo itd. Določiti moramo tudi, kakšno ozadje oziroma postavitev želimo. Brez te informacije bo DALL-E 2 pogosto uporabil kar belo ozadje, kar je včasih povsem zadovoljivo, vedno pa ni.

Čeprav so jezikovni modeli izurjeni na velikanskih količinah besedila, je za generiranje slik vendarle koristneje uporabljati preprostejše besede, a več njih, kakor pa izumetničen in specifičen jezik. Lahko se zgodi, da DALL-E 2 ne bo vedel, kaj je envelope (vsi zunanji zidovi, strehe, odprtine in vse ostalo, kar ločuje zunanjost hiše od notranjosti). Če bo specifičen izraz prepoznal, bodo rezultati odlični, sicer pa uborni. Treba je poskusiti.

Ko smo z izdelkom načelno zadovoljni, ga lahko izboljšamo. To pomeni, da mu lahko povečamo ločljivost, spremenimo velikost, ga razširimo z dodatnimi vsebinami ali zgolj spremenimo obstoječe. Zelo uporabna funkcija je Outpainting, ki v DALL-E 2 zmore prav to. Fotografijo oziroma posnetek lahko dopolni, na primer sliki narave doda več neba, podaljša stavbo ali kako drugače eksperimentira.

Skok v DALL-E

Poglejmo praktični primer. Napisali smo cat on a bicycle in rezultat je bil sicer povsem zadovoljive kakovosti, a povsem nepredvidljiv (SLIKA dalle1). Dobili smo fotografije štirih mačk, ki so v košari, na sedežu ali krmilu kolesa. Kolesa so bila različne, mačke tudi raznovrstnih pasem.

Dalle1

Z nekoliko bolj natančnim opisom korat cat riding a mountain bike smo dobili že bolj določene rezultate, saj je bila mačka v vseh primerih iste pasme, kolesa pa gorska (SLIKA dalle2).

Dalle2

Še vedno pa je bilo ozadje zelo različno in tudi mačke so bile na kolesih v zelo različnih položajih. Celostavčni opis A korat cat in a leather jacket with a top-gun sunglasse is riding a blue mountain bike downhill in the Arizon desert full of cactuses je dal že točno take slike, kot bi jih pričakovali iz opisa (SLIKA dalle3). Podaljšek istega stavka z drawn as an upbeat lively photograph in the 1950s black and white technique pa je poskrbel, da fotografija res videti starinska (SLIKA dalle4). Na koncu smo dodali še opis when the sun is shining and there is Monument Valley in the background in na vseh fotografijah je bil v ozadju znameniti osamelec z ameriškega zahoda (SLIKA dalle5).

Dalle3

Vidimo, da se s čedalje podrobnejšim opisom izdelki približujejo našim željam. Če bi želeli še natančnejše izdelke, bi se morali še bolj potruditi. Pri dolgih opisih se včasih posamezne podrobnosti izgubijo, denimo usnjena jakna je na koncu često umanjkala in tudi opisa po klancu navzdol (downhill) DALL-E 2 ni upošteval zelo dosledno – fotografij iz Monument Valleyja, kjer bi se ljudje vozili strmo navzdol, pač ni veliko. Mestoma se kolo spremeni v motocikel, ker je izraz bike dvoumen, DALL-E 2 pa besed mountain bike ni vedno prepoznal kot stalne besedne zveze. Učinek predolgih ukazov je ravno nasproten. Posamezne nepravilnosti se pojavijo tudi pri obraznih potezah, kjer pogled od blizu pokaže, da to nikakor ne morejo biti fotografije. Majhne napake so očitne.

Dalle4

Dalle5

Midjourney

K DALL-E 2 se bomo še vrnili, a pokukajmo najprej v komercialno storitev Midjourney, ki jo je pripravil istoimenski laboratorij iz San Francisca. Javnosti je na voljo od lanskega julija, trenutno pa je delujoča različica 5.1. Sprva je bil Midjourney na voljo tudi v brezplačni preizkusni različici, a so jo konec marca ukinili in odtlej moramo za uporabo plačati. Uraden razlog so bile zlorabe, a nezanemarljivo dejstvo je tudi računska potratnost. Infrastruktura, na kateri Midjourney teče, stane. Plačljive inačice so na voljo za 10, 30 in 60 dolarjev mesečno, razlikujejo pa se po količini hitrega procesorskega (GPU) časa, ki ga dobimo v paketu.

Uporaba Midjourneyja je nekoliko nenavadna. Za ustvarjanje se moramo pridružiti uradnemu kanalu na Discordu (https://discord.com/invite/midjourney), kjer v eno izmed sob (#newbies) vpišemo ukaz /image »opis želenega prizora na fotografiji«. Čez nekaj sekund ali minut bo bot odgovoril s štirimi slikami, ki najbolje ponazarjajo vpisani ukaz.

Preizkušanja smo se lotili z enakimi ukazi kakor DALL-E 2. Rezultati Midjourneyja so, to je treba odkrito priznati, boljši.

Opazimo, da ima z izrazom mountain bike enake težave kot DALL-E 2, saj pri daljših opisih hitro pozabi, da gre za gorsko kolo, in nariše motocikel. Neustreznost smo zato poskušali popraviti, tako da smo v šestem poskusu raje zapisali mountain bicycle. Dodali smo stavek The entire mountain bicycle is drawn and the cat pedalling it. Rezultat je bil katastrofalen, saj je Midjourney pozabil vse napotke iz prejšnjih stavkov in nam postregel domala z risanko. (SLIKA midjourney6) Pri ustvarjanju ukazov je treba poskušati, čemur bi lahko rekli tudi neeksaktna znanost … Ali pa morda umetnost?

Generatorji ukazov

Ker je ustvarjanje ukazov veščina, se je na internetu hitro pojavila kopica generatorjev ukazov, ki nam pomagajo ubesediti želje. Ena vrsta teh generatorjev analizira naloženo sliko in iz nje izvleče besedni opis, ki ga lahko uporabimo kot ukaz za Midjourney. Če v Google vtipkamo image-to-prompt, bomo našli na desetine bolj ali manj uporabnih orodij. Nekaj boljših je zbranih na strani https://replicate.com/collections/image-to-text, med katerimi prednjačita Salesforceov BLIP (Bootstrapping Language-Image Pre-training) in Img2Prompt podjetja Methexis. Če na internetu najdemo zanimivo podobo, jo lahko naložimo vanje in dobili bomo precej uporaben opis. Tega lahko potem uporabimo v Midjourneyju ali DALL-E 2, če želimo ustvarjati podobne slike. Opis ene izmed fotografij mačk, ustvarjenih v prejšnjem poglavju, se je glasil a black cat sitting on top of a bicycle. Manj obširno od začetnega ukaza, a še vedno uporabno.

V Midjourneyju poleg osnovnega ukaza /image obstajajo še kompleksnejši ukazi za naprednejše stvaritve. Eden izmed njih se imenuje /describe ter počne ravno to: ustvari štiri mogoče ukaze iz fotografije, ki jo naložimo. Opis te iste mačke, ustvarjene z Midjourneyjem, je bil cat sitting on a bike in the desert, in the style of western-style portraits, black and gray, hyperrealist, iconic civil rights imagery, hasselblad 1600f, anthropomorphic animals, photo-realistic. Nekatere ključne besede so uporabne (cat sitting on a bike in the desert), druge manj (iconic civil rights imagery).

To nas pripelje tudi do drugih napotkov, ki jih lahko damo Midjourneyju. Poleg opisa vsebine so pomemben del ukaza tudi parametri. To so razmerje med širino in višino (--aspect), negativni ukaz za odsotnost posameznih elementov (--no), variabilnost rezultatov (--chaos), želeni čas izrisovanja glede na kakovost (--quality), seme za ustvarjanje podobnih slik (--seed) in še nekaj drugih. Z vsemi temi parametri lahko vplivamo na končni izdelek, ki se tako bolj približa željam.

Podobe iz resničnosti

Dasiravno so podobe, ki jih ustvarjata DALL-E 2 in Midjourney, videti realistično, so na njih vendarle generične stvaritve. Mačka bi lahko bila katerakoli, kolo nima nobenih prepoznanih lastnosti, tudi čudovita mladenka in resen mladenič nista človeka, ki bi obstajala. A spomnimo se papeža v beli puhovki in posnetkov nekdanjega ameriškega predsednika, ki beži pred policisti. Če je umetna inteligenca med učenjem naletela na posnetke resničnih oseb in krajev, jih lahko poustvari. V našem primeru je vedela, kaj je Monument Valley.

Eden najbolj znanih živečih Slovencev je Luka Dončić, a Midjourney ni še nikoli slišal zanj. Aktualni ameriški predsednik Joe Biden je dovolj slaven, da lahko vpišemo le Joe Biden in the cockpit of a fighter jet with top-gun glasses (SLIKA JOE), pa bo rezultat brez kakršnegakoli dodatnega izboljševanja soliden. Po drugi strani se Luka Dončić spremeni v generičnega košarkarja, ki ni niti malo podoben našemu superzvezdniku. A tudi to ne predstavlja nepremostljive težave.

V Midjourneyju je lahko del ukaza tudi slika. Če najdemo na internetu sliko Luke Dončića, po možnosti avtorsko nezaščiteno, lahko njen naslov http vključimo v ukaz. Če zapišemo https://s.mj.run/-adZ1AI5SRc https://s.mj.run/hZSuqnIFSpo Luka Dončić is riding a horse in full cowboy outfit with a hat, on a street in downtown Manhattan causing a traffic jam with cars piling up, bo rezultat že zelo podoben Luki Dončiću. Končni učinek je odvisen od tega, kakšno fotografijo košarkarja smo uporabili v ukazu in katere ključne besede ter malce tudi od sreče. (SLIKA luka)

Nadaljnja obdelava

Pri iskanju želene slike je prvi korak rafiniranje ukazov, s čimer se približujemo cilju. Opazili bomo, da pot ni linearna, saj pri generiranju slik umetna inteligenca uporabi tudi naključno seme (seed), ki predstavlja začetni šum in je razlog, da tudi enaki ukazi vsakokrat vrnejo različne izdelke. Ko ustvarimo posnetek, ki nam je dovolj všeč za nadaljnjo obdelavo, pa zgolj igranje z ukazi in vsakokratno generiranje od začetka nimata več smisla. Tedaj želimo popraviti točno to sliko, ki jo že imamo. DALL-E 2 omogoča dva načina. Pri vsaki ustvarjeni sliki imamo na voljo možnost Generate variations, kjer kot vhodni parameter uporabi prvo sliko in pripravi dokaj podobne variacije.

Zanimivejša možnost pa je urejanje (Edit), ki obstaja v dveh možnosti: outpainting in inpainting. Sliko lahko razširimo tako, da okvir generiranja premaknemo na prazen prostor, nato pa dopišemo ukaz. DALL-E 2 bo prazen prostor napolnil v vsebino, ki je v skladu z obstoječo sliko (pomaga, da se del prekriva), pri čemer bo upošteval novi ali dopolnjeni ukaz. Rezultati so sorazmerno dobri in se uporabljajo, ko, recimo, želimo spremeniti razmerje med širino in višino. Če želimo kvadratno sliko dopolniti v pravokotno obliko, bo postopek, ki se imenuje outpainting, ravno pravšen.

Druga različica pa je popravljanje sestavnih delov v sliki. V okviru urejanja slike je na voljo radirka, s katero lahko izbrišemo določen del slike, potem pa bo DALL-E 2 dopolnil ta del glede na ukaz, ki ga opišemo. Če imamo na kolesu mačku, pa bi želeli tja posaditi psa, enostavno izbrišemo mačko in vpišemo ukaz. Na krmilu se bo pojavil pes. To se imenuje inpainting.

Tovrstno igranje je mogoče bodisi s slikami, ki jih je ustvaril DALL-E 2, bodisi z lastnimi slikami, ki jih naložimo sami. V tem primeru lahko seveda orodja kombiniramo in v DALL-E 2 naložimo izdelek Midjourneyja.

Prvotno sliko iz Midjourneyja smo v DALL-E 2 najprej dopolnili z dodatnimi vsebinami (outpainting), nato pa del izbrisali in spremenili (inpainting).

Ko Midjourney obdela ukaz, vrne štiri slike. Pod njimi pa so gumbi U1, U2, U3, U4, V1, V2, V3, V4. Prvi štirje ustrezni inačici izboljšajo ločljivost (upscale), drugi štirje pa vzamejo posamezno sliko kot začetni približek in prikažejo različice (variations). Na koncu lahko sliko še dokončno izboljšamo (remaster) in izdelek je nared. Včasih deluje prav realistično! (SLIKA matjaz).

Poskusite sami!

Pri igranju z ukazi za umetno inteligenco obstajajo smernice, a strogih pravil ni. Vsakokrat bo rezultat nekoliko drugačen, vse pa se lahko spremeni, ko izide nova različica. Tudi zato Midjourney omogoča uporabo stikal, ki uporabijo starejše inačice algoritma, če imamo kaj pripravljeno neposredno zanje.

Za najboljše rezultate potrebujemo dober pregled, katere funkcionalnosti posamezno orodje podpira, nekaj prakse in predvsem veliko časa. Rezultati bodo namreč tako dobri, kolikor časa bomo vložili vanje. Možnosti so neomejene.

Zmagovalec, ki ga ni bilo

Da so izdelki umetne inteligence lahko tudi za strokovno okno nerazločljivi od človeških, priča letošnji natečaj Sony World Photography Awards. Na njem je v eni od kategorij zmagal berlinski fotograf Boris Eldagsen s fotografijo Električar (The Electrician), na kateri sta ženski. Fotografija je nastala v zgodnji dobi fotografije.

A ko je Eldagsen izvedel, da je zmagal, je nemudoma zavrnil nagrado in razkril, da je vse skupaj fikcija. Fotografijo je pripravila umetna inteligenca in je del zbirke Psevdomnezija: Lažni spomini, ki jo je pripravljal dobro leto dni. V njej posnema fotografijo iz 40. let preteklega stoletja, a z izdelki umetne inteligence. To ni trivialno opravilo – za vsak izdelek je potreboval od 20 do 40 poskusov in popravkov, a čisto vsi posnetki so nastali z orodji umetne inteligence. Kljub temu so pretentali tudi strokovno žirijo.

Eldagsen je ob zavrnitvi nagrade dejal, da je želel s tem opozoriti na slona v sobi, s katerim se bodo morali spopasti. Umetna inteligenca za ustvarjanje slik ni nujno slaba, saj predstavlja orodje. Dogovoriti pa se bomo morali, kako ga odgovorno uporabljati in kje je njegovo mesto. Verjetno bi se tudi prvi slikarji zgražali, da danes ljudje tekmujejo s – fotografijami.

Zmagovalka na natečaju Sony World Photography Awards 2023 v kategoriji kreativnih fotografij.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji