{"id":601,"date":"2026-03-09T15:21:50","date_gmt":"2026-03-09T15:21:50","guid":{"rendered":"https:\/\/liipetti.net\/retkia\/?p=601"},"modified":"2026-03-17T18:38:11","modified_gmt":"2026-03-17T18:38:11","slug":"kuvallisen-tekoalyn-toinen-tie","status":"publish","type":"post","link":"https:\/\/liipetti.net\/retkia\/kuvallisen-tekoalyn-toinen-tie\/","title":{"rendered":"Kuvallisen teko\u00e4lyn toinen tie"},"content":{"rendered":"\n<p>Kun kuvallinen teko\u00e4ly muuttui 2022, kyse ei ollut niink\u00e4\u00e4n tekstimuotoisen ohjauksen yleistymisest\u00e4, vaan siit\u00e4 ett\u00e4 siirryttiin monoliittisiin malleihin, joiden kyvyt saattoivat olla paljon aiempia laajemmat&#8230; olihan ne koulutettu aiempaan verrattuna valtavalla koulutusaineistolla. Samalla kuitenkin esimerkiksi tekstiohjaus integroitiin jo koulutusvaiheessa osaksi mallia, jonka toiminnallisuutta ei voinut ulkopuolelta s\u00e4\u00e4t\u00e4\u00e4 niinkuin alalla oli aiemmin tehty.<br><br>Ensimm\u00e4iset tekstiohjatut kuvasynteesit nimitt\u00e4in toimivat n\u00e4in. Meill\u00e4 on kuvageneraattori, joka on koulutettu rajallisella kuva-aineistolla, jonka pohjalta se pystyy tuottamaan kuvia ja kuvaa voidaan ohjata ulkopuolelta sen syntyess\u00e4. Kuvageneraattorin ei tarvitse osata tehd\u00e4 valmiita kuvia, koska lopullinen kuva syntyy ulkopuolelta tulevan ohjauksen avulla.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"403\" src=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/kuva2teksti-fi-1024x403.png\" alt=\"\" class=\"wp-image-603\" style=\"width:608px;height:239px\" srcset=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/kuva2teksti-fi-1024x403.png 1024w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/kuva2teksti-fi-300x118.png 300w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/kuva2teksti-fi-768x302.png 768w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/kuva2teksti-fi-1536x604.png 1536w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/kuva2teksti-fi-2048x806.png 2048w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/kuva2teksti-fi-250x98.png 250w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/kuva2teksti-fi-150x59.png 150w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Kun Joel Simon artikkelissaan &#8221;<a href=\"https:\/\/www.joelsimon.net\/beyond-slop\">Beyond Slop<\/a>&#8221;  kirjoittaa &#8221;<em>In the original CLIP+VQGAN work, you could optimize toward any loss you wanted, not just text similarity. Loss functions aren&#8217;t bounded by datasets the way latent spaces are. They&#8217;re a different kind of creative material entirely.<\/em>&#8221; h\u00e4n puhuu juuri t\u00e4st\u00e4. Kun kuvan synty\u00e4 ohjataan ulkopuolelta, meill\u00e4 on t\u00e4ysi vapaus kehitell\u00e4 vaikka millaisia keinoja vaikuttaa kuvan syntyyn. Se mit\u00e4 kuvaa tekev\u00e4 malli itsess\u00e4\u00e4n osaa, mill\u00e4 kuvilla se on koulutettu, on vain visuaalista aineistoa josta ohjauksen avulla voidaan edet\u00e4 johonkin aivan muuhun. Kuvageneraattorin olemus ei kuitenkaan ole samantekev\u00e4, k\u00e4yt\u00e4nn\u00f6ss\u00e4 huomaa hyvin \u00e4kki\u00e4 ett\u00e4 lopputulos on erofunktion (vertailija) ja kuvageneraattorin yhteistoiminnan tulos. Ratkaisevaa on ett\u00e4 ne toimivat hyvin yhteen. <\/p>\n\n\n\n<p>Ensimm\u00e4inen teko\u00e4lypohjainen kuvanty\u00f6st\u00f6tekniikka, tyylimuunnos, jota l\u00e4hdin kokeilemaan 2015, toimii samalla tavoin. Nyt vain syntyv\u00e4\u00e4 kuvaa verrataan kahteen kuvaan, joista toisesta halutaan ottaa kuvan sis\u00e4lt\u00f6 ja toisesta tekstuurin ja v\u00e4rin k\u00e4ytt\u00f6. Tyylimuunnoksessa ei edes tarvittu erityist\u00e4 kuvageneraattoria, vaan ohjattiin pikselikuvaa ihan sellaisenaan.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"728\" src=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-1024x728.png\" alt=\"\" class=\"wp-image-606\" style=\"width:454px;height:323px\" srcset=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-1024x728.png 1024w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-300x213.png 300w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-768x546.png 768w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-1536x1092.png 1536w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-2048x1456.png 2048w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-211x150.png 211w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-150x107.png 150w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/tyylimuunnos-282x201.png 282w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Sanotaan se viel\u00e4 ihan selv\u00e4sti. Teko\u00e4lyj\u00e4ttien kouluttamat mallit voivat olla kuinka upeita hyv\u00e4ns\u00e4, mutta ne ovat juuri vain sit\u00e4 mihin ne on tehty. Stable Diffusion oli ensimm\u00e4isi\u00e4 jotka meniv\u00e4t t\u00e4lle linjalle&#8230; kuvaa tekev\u00e4 malli sis\u00e4lsi tekstiohjauksen, eik\u00e4 sit\u00e4 voinut oikein k\u00e4ytt\u00e4\u00e4 kuvapromptilla ohjattuna. Siihen tarvittiin toinen, kokonaan uusi eri aineistolla (kuvat vs kuvapromptit) koulutettu malli. Ulkopuolinen ohjaus oli periaatteessa mahdollista, mutta mallien raskauden ja muistitarpeen takia k\u00e4yt\u00e4nn\u00f6ss\u00e4 vaikeata. <br><br>Kumpi tie kenellekin sopii on aivan kiinni omista tarpeista. Itse en ole l\u00e4htenyt seuraamaan kuvallisen teko\u00e4lyn valtavirtaa Stable Diffusionin j\u00e4lkeen, vaan enemm\u00e4nkin palannut aiempaan toimintatapaan. Seurannut kyll\u00e4 tekniikan kehityst\u00e4 silloin kun jotakin sopivaa uutta on ilmaantunut. Kehitellyt uusia, parempia ty\u00f6kaluja. Diffuusio on selv\u00e4sti parempi kuvangenerointimenetelm\u00e4 kuin esim. GAN, ja jo vuosia olen kehitellyt omaa kevytt\u00e4 diffuusiotekniikkaani. Keskeisen\u00e4 ideana on, ett\u00e4 diffuusiomallit ovat kevyit\u00e4, ja ne koulutetaan nopeasti pienehk\u00f6ll\u00e4 kuvasetill\u00e4. Kullakin mallilla on silloin oma luonteensa, oma rajallinen ilmaisunsa. Malleja voi nopeimmillaan kouluttaa puolessa tunnissa, eik\u00e4 t\u00e4ss\u00e4 ole kyse aiemmin koulutetun mallin hienos\u00e4\u00e4d\u00f6st\u00e4 vaan kokonaan tyhj\u00e4st\u00e4 koulutetusta uudesta mallista. T\u00e4ll\u00f6in malli voi jo itsess\u00e4\u00e4n toimia tietynlaisena tyylin\u00e4 tai siveltimen\u00e4&#8230;toisaalta on my\u00f6s mahdollista kouluttaa joustavampia, monik\u00e4ytt\u00f6isi\u00e4 malleja.<\/p>\n\n\n\n<p>Alla ylinn\u00e4 k\u00e4yt\u00f6ss\u00e4 satelliittikuvilla koulutettu malli, sen alapuolella pienill\u00e4 mustilla renkailla koulutettu malli.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1006\" height=\"906\" src=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-01-03-kello-18.16.54.png\" alt=\"\" class=\"wp-image-611\" style=\"width:603px;height:542px\" srcset=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-01-03-kello-18.16.54.png 1006w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-01-03-kello-18.16.54-300x270.png 300w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-01-03-kello-18.16.54-768x692.png 768w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-01-03-kello-18.16.54-167x150.png 167w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-01-03-kello-18.16.54-150x135.png 150w\" sizes=\"auto, (max-width: 1006px) 100vw, 1006px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1022\" height=\"915\" src=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2025-12-02-kello-10.56.25.png\" alt=\"\" class=\"wp-image-612\" style=\"width:599px;height:536px\" srcset=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2025-12-02-kello-10.56.25.png 1022w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2025-12-02-kello-10.56.25-300x269.png 300w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2025-12-02-kello-10.56.25-768x688.png 768w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2025-12-02-kello-10.56.25-168x150.png 168w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2025-12-02-kello-10.56.25-150x134.png 150w\" sizes=\"auto, (max-width: 1022px) 100vw, 1022px\" \/><\/figure>\n\n\n\n<p>T\u00e4llaisen tekniikan kanssa ty\u00f6skentelyss\u00e4 on hienoa, kun voi kerran toisensa j\u00e4lkeen kehitell\u00e4 uusia ideoita ja toteuttaa ne. Itse\u00e4ni kiinnostaa nimenomaan kuvallisen l\u00e4ht\u00f6aineiston kanssa ty\u00f6skentely&#8230; suurin osa kehitt\u00e4mist\u00e4ni ty\u00f6kaluista on tavallaan kuvamiksereit\u00e4, jossa kahden tai useamman l\u00e4ht\u00f6kuvan pohjalta luodaan uutta kuvaa. Jo se 2015 tyylimuunnos oli t\u00e4llainen tekniikka. Hyvin samantapainen on my\u00f6s MRF-kuvamiksaus, jollaista alkujaan k\u00e4ytin jo 2016.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"794\" src=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-16.58.45-1024x794.png\" alt=\"\" class=\"wp-image-617\" style=\"width:602px;height:467px\" srcset=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-16.58.45-1024x794.png 1024w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-16.58.45-300x233.png 300w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-16.58.45-768x595.png 768w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-16.58.45-194x150.png 194w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-16.58.45-150x116.png 150w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-16.58.45.png 1290w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" src=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-13.32.04-1024x801.png\" alt=\"\" class=\"wp-image-615\" style=\"width:603px;height:472px\" srcset=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-13.32.04-1024x801.png 1024w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-13.32.04-300x235.png 300w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-13.32.04-768x600.png 768w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-13.32.04-192x150.png 192w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-13.32.04-150x117.png 150w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-02-14-kello-13.32.04.png 1306w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Koska tekniikat ovat modulaarisia ja toteutus itse kehitt\u00e4m\u00e4ni, voin uusien ideoiden my\u00f6t\u00e4 yhdistell\u00e4 ja kehitell\u00e4 niit\u00e4 eteenp\u00e4in. <\/p>\n\n\n\n<p>Katsotaan vertailun vuoksi miten Stable Diffusion -pohjainen kuvamikseri k\u00e4ytt\u00e4ytyy. Koska SD on koulutettu tekstiohjauksella, sit\u00e4 ei kovin hyvin voi suoraan ohjata kuvapromptilla, mutta IP-adapterin kanssa sit\u00e4 voi kokeilla.<br>Kyll\u00e4h\u00e4n se toimii ja tulokset voivat n\u00e4ytt\u00e4\u00e4 hienoiltakin, mutta enimm\u00e4kseen omasta kuvallisesta ilmaisusta kiinnostuneelle j\u00e4\u00e4 olo, ett\u00e4 mist\u00e4 tuo tuli, en min\u00e4 sit\u00e4 tehnyt. Hyppy l\u00e4ht\u00f6materiaaleista lopputulokseen on liian suuri. <br>Kytk\u00f6s ei ole suoraan visuaalinen kuten ylemp\u00e4n\u00e4 esittelemiss\u00e4ni menetelmiss\u00e4, vaan kuvaprompti tulkitaan k\u00e4sitteiksi, joiden mukaan uusi kuva luodaan. Usein k\u00e4y niinkin, ett\u00e4 malli n\u00e4kee v\u00e4hemm\u00e4n esitt\u00e4v\u00e4ss\u00e4 kuvassa jotakin aivan muuta kuin mit\u00e4 ihminen siin\u00e4 n\u00e4kee.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"737\" src=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-03-06-kello-15.11.16-1024x737.png\" alt=\"\" class=\"wp-image-619\" style=\"width:629px;height:452px\" srcset=\"https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-03-06-kello-15.11.16-1024x737.png 1024w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-03-06-kello-15.11.16-300x216.png 300w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-03-06-kello-15.11.16-768x553.png 768w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-03-06-kello-15.11.16-209x150.png 209w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-03-06-kello-15.11.16-150x108.png 150w, https:\/\/liipetti.net\/retkia\/wp-content\/uploads\/2026\/03\/Nayttokuva-2026-03-06-kello-15.11.16.png 1390w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Kirjoitus on toinen osa sarjassa &#8221;Teko\u00e4lytaide aivan toisin&#8221;. Ensimm\u00e4inen osa <a href=\"https:\/\/liipetti.net\/retkia\/tekoalytaide-ennen-tekoalya\/\">Teko\u00e4lytaide ennen teko\u00e4ly\u00e4<\/a> .<\/p>\n\n\n\n<p>Kirjoituksessa mainittu oma diffuusiototeutus l\u00f6ytyy t\u00e4\u00e4lt\u00e4 <a href=\"https:\/\/github.com\/htoyryla\/xurdif\">https:\/\/github.com\/htoyryla\/xurdif<\/a><br>ja tyylimuunnoksen moderni oma toteutus t\u00e4\u00e4lt\u00e4 <a href=\"https:\/\/github.com\/htoyryla\/stylemixer\">https:\/\/github.com\/htoyryla\/stylemixer<\/a> .<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kun kuvallinen teko\u00e4ly muuttui 2022, kyse ei ollut niink\u00e4\u00e4n tekstimuotoisen ohjauksen yleistymisest\u00e4, vaan siit\u00e4 ett\u00e4 siirryttiin monoliittisiin malleihin, joiden kyvyt saattoivat olla paljon aiempia laajemmat&#8230; olihan ne koulutettu aiempaan verrattuna valtavalla koulutusaineistolla. Samalla kuitenkin esimerkiksi tekstiohjaus integroitiin jo koulutusvaiheessa osaksi mallia, jonka toiminnallisuutta ei voinut ulkopuolelta s\u00e4\u00e4t\u00e4\u00e4 niinkuin alalla oli\u2026<\/p>\n<p class=\"continue-reading-button\"> <a class=\"continue-reading-link\" href=\"https:\/\/liipetti.net\/retkia\/kuvallisen-tekoalyn-toinen-tie\/\">Continue reading<i class=\"crycon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3,2,9],"tags":[],"class_list":["post-601","post","type-post","status-publish","format-standard","hentry","category-kuvankasittely","category-kuvataide","category-neuroverkot","category-tekoaly"],"_links":{"self":[{"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/posts\/601","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/comments?post=601"}],"version-history":[{"count":13,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/posts\/601\/revisions"}],"predecessor-version":[{"id":628,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/posts\/601\/revisions\/628"}],"wp:attachment":[{"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/media?parent=601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/categories?post=601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/tags?post=601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}