Régi térképek újrarajzolás – Stable Diffusion + ControlNet

SD térkép
Becsült olvasási idő 5 perc

Régi térképek, kézzel rajzolt térképek vagy AutoCAD-ben készült térképek. Mindegyik egy stilizált változata a valóságnak. De mi lenne, ha a mesterséges intelligenciával ezekből a rajzokat valósághű képekké alakítanánk?

A régi térképek újraszámolása még várat magára. De bizonyára a közeljövőben a térképészetben is megjelenik a mesterséges intelligencia.
Mi egyenlőre maradunk az újrarajzoláshoz. Ehhez most is a Stable Diffusion szöveg-alapú MI-rajzoló programot használjuk. Az eredeti vonalat megtartásához pedig a ControlNet kiegészítőt.

Ez a 20. század eleji Isztambul térkép lesz a kiindulási képünk. Forrás: Jacques Pervititch - 1934
Ez a 20. század eleji Isztambul térkép lesz a kiindulási képünk. Forrás: Jacques Pervititch – 1934

A text2img fülön kapcsoljuk be a ControlNet kiegészítőt. Majd Preprocessor-nak válasszuk a Lineart-ot.
A Model lehet Canny vagy Lineart.

Utasításoknak (prompt) én a „top view of a city”-t választottam. Még jól működik az „aerial city view” vagy a „Drone Photography” is. Használhatjuk a „satellite view” parancsot is amennyiben nagyobb városrészt szeretnénk készíteni.
Negatív prompt pedig „text, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, morbid, mutation, deformed, blurry”

A képgeneráláshoz használt modell kiválasztása már nehezebb. Sajnos kevés olyan modell van, ahol a házak és utcák felülről látszódnak. Én a Realistic Vision-t választottam, ami egészen jól rajzol élethű házakat és parkokat is. További ajánlott modellek itt találhatóak.

A forrásképet a ControlNet kisablakba illesztjük be. Ne feledjük a generált kép arányait az eredeti képhez igazítani!
És már kezdődhet is a képgenerálás!

Az én képem esetében a program megpróbálta az összes feliratot, szöveget, utcanevet és házszámot is értelmezni. Ez kicsit összezavarta. Tehát érdemes a képről előtte eltávolítani a felesleges elemeket.

Egy másik példában egy olyan kézzel rajzolt várostérképet használtam, amelyik mentes a feliratoktól (a képet a Pinteresten találtam forrás nélkül)

Egy kézzel rajzolt fantázia térkép lesz a kiindulási képünk.
Egy kézzel rajzolt fantázia térkép lesz a kiindulási képünk.

A beállítások hasonlóak az előzőhöz. De itt kísérletképpen egy térképészeti modellt használtam.

Ha nem ragaszkodunk a valósághű képekhez, akkor találunk néhány térkép modelleket is. Mellé használhatunk LoRA modelleket is. Ebből is találunk olyanokat, amelyek a térkép rajzolásban segítenek.

A kézzel rajzolt kép MI átalakítás után
A kézzel rajzolt kép MI átalakítás után

Következő projektben egy madártávlati Róma rajzot használtam.

16. századi rajz Róma városáról. Forrás: Speculum Romanae Magnificentiae
16. századi rajz Róma városáról. Forrás: Speculum Romanae Magnificentiae

A beállítások hasonlóak, de különböző modellekkel és LoRA-kkal kísérleteztem. Az egyik eredményt megmutatom. Itt is megfigyelhetjük, hogy a program megpróbálta az írott szöveget is a kép részeként értelmezni. Így pl. a tóra hajókat rajzolt.

Az újrarajzolt kép Rómáról
Az újrarajzolt kép Rómáról

A Stable Diffusion programnak nagyon sok finomhangoló beállítása van. Mellette a számtalan modell, Lora és szinte végtelen számú utasítás (prompt) is használható. Éppen ezért nagyon sokféle eredményt kaphatunk. Érdemes kísérletezni vele!

PixelRita, mit gondolsz a régi térképek újra rajzolásáról?

Loading

A Photoshop Generative Fill varázslata: Térképek digitális restaurálása

Adobe Photoshop MI térkékiegészítés
Becsült olvasási idő 5 perc

Rengeteg olyan munkám van, amikor régi térképeket vagy légi felvételeket kell összeillesztenem. A térképe, vagy képek több lapból állnak, amiket egy nagy képpé rakok össze. A kép túlságosan összetett, hogy az automatikus program csinálja ezt a feladatot. Ez még mindig emberi művelet.

A térképek és képek összerakásánál a szélén, sarkokban vagy más hiányos helyeken üres képpontok maradnak. Mindig kérdés, hogy ezekkel mi legyen. Egyszerűen nem néz ki jól a kép, ha ott van egy luk, vagy a széle fűrészfogas.

Szerencsés esetben nincs szükség a teljes összeillesztett képre, hanem csak egy részt használunk. Még nagyobb szerencse esetén ezt ki is lehet úgy vágni, hogy nem marad üres hely.

Ha viszont nincs szerencsénk, akkor valamit tenni kell a lukakkal!

  • Legjobban az néz ki, ha fekete színnel töltjük fel. Ez eléggé egyértelmű: az a rész hiányzik, nincs ott. De összhangban még mindig jól mutat.
  • Ha fehéren hagyjuk, akkor az nyomtatási szempontból ideális. Miért pazaroljuk a festéket olyasmire, ahol valójában nincsen semmi. Csak ez nem néz ki jól!
  • Köztes lehetőség pedig, hogy a térkép alapszínével töltjük ki. Ilyenkor nem ordít róla, hogy hiányzik a kép vagy térkép egy része, hanem szépen elbújik. De nem is használunk annyi festéket feleslegesen, mintha fekete lenne az egész (de attól még igen, információt nem tartalmazó területeket miatt mázolgatunk)

És most lett egy negyedik lehetőség is!

Az Adobe Photoshop programba megjelent a Generative Fill funkció. Ez egy olyan modul, ami a kijelölt területre fog rajzolni. Mégpedig a mesterséges intelligenciával azt rajzolja, amit kérünk. Például egy macskát az út közepére.

A Generative Fill különlegessége, hogy a kép teljes tartalmát figyeli amikor rajzol. Ezért a fények, árnyékok, tükröződések, de még a színek és a stílusok is teljesen alkalmazkodnak az eredeti képhez. Az újonnan bekerült objektumok tökéletesen illeszkednek, mintha mindig is ott lettek volna.

A Generative Fill másik különlegesség az, hogyha a mesterséges intelligenciának nem adunk semmilyen utasítást, akkor radír módban működik. Vagyis a kijelölt területet kitölti a kép többi részének tartalma alapján. Például ha fűben egy macska van, az MI fűszálakat fog rajzolni az állat helyére. Nem pedig egy üres luk marad utána.

Adobe Photoshop Generative Fill
Adobe Photoshop Generative Fill

Kíváncsi voltam, hogyan működik egy az eszköz egy térképen. Vajon hogyan tudja a lukakat elfedni? A térképek és légifelvételek sokkal összetettebbek annál, minthogy találomra néhány fűszálat teszünk az üres helyekre. Nem lehetnek az utcák össze-vissza, nem lehetnek a házak egymáson.

Kijelöltem a térkép lukas területét, és elindítottam az Adobe Photoshop Generative Fill eszközét. Az eredmény minden várakozásomat felülmúlta!

Az eredeti "lukas" térkép (balra), és a Photoshop MI által kitöltött terület.
Az eredeti „lukas” térkép (balra), és a Photoshop MI által kitöltött terület.

Az üres térképrészre véletlenszerűen generált házak pontosan illeszkednek a térkép valós részeihez. Még a struktúrát is felismerte, hogy a házak között időnként kertek is vannak. Megpróbálta még a házak számozását is felírni, de pixeles szöveg generálás még nehezen megy a mesterséges intelligenciás rajzoló programoknak. Ha távolról nézzük, akkor már nem feltűnő.

Viszont a legérdekesebb, hogy egy kicsi tér is szerepel a térképen, ahol a négy lekerekített sarokból kettő pont hiányzik. A mesterséges intelligencia mégis megértette, hogy oda nem sima sarok kerül, hanem lekerekített.

Alább berakok egy nagyobb térképrészletet is. Ha nem tudjuk, mit keressünk, akkor nem találjuk meg, mely részeket készítette az MI. Minden tökéletesen illeszkedik. Az utcák egyenesek, a házak mérete és alakja a megszokott, stb…
Persze van egy kis minőségi különbség, de ezt tudjuk be annak, hogy még a technika nagyon korai változatánál járunk.

Az Adobe Photoshop Generative Fill eszközzel "megszerelt" térkép
Az Adobe Photoshop Generative Fill eszközzel „megszerelt” térkép

Természetesen mindez most csak játék a technikával, egy próba. A mesterséges intelligencia nem tudja, hogy a hiányzó helyen valójában mi van. A kép többi részéből kalkulálja össze a képpontokat, amivel a lukakat kitölti.
Az így készült térkép nem lesz valódi!
Az MI által generált házak és utcák a valóságban nincsenek ott! Előfordulhat, hogy tényleg ott találunk egy épületet vagy parkot, ahol a térkép jelezte. De erre inkább ne számítsunk!
Ezt a funkciót csak mint látványos grafika lehet használni. Tényleges térképészetre nem!

PixelRita, te mit gondolsz erről a funkcióról? Te mire használnád? Mik a lehetőségek és a veszélyei?

Loading