SUPIR képnagyító (fényképjavító)

Becsült olvasási idő 8 perc.

Bevezető

A digitális képalkotás kezdete óta igény van a képek nagyítására. A valóságban megszoktuk, hogy ha valami távol van, akkor közelebbről is meg tudjuk nézni. Távcsővel, nagyítóval, majd mikroszkóppal bármit fel tudunk nagyítani, hogy a részleteket jobban megvizsgáljuk.

A digitális képek viszont képpontokból állnak. Ezek a kép készítése alatt keletkeznek. Azok a dolgok, amik ilyenkor nem kerülnek rá a képre, azok később nem nyerhetőek vissza.
Ha pl. a kép háttéreben messze egy olyan ember van, aki csak néhány képpontból áll, annak nem látszik az orra, füle és a további személyes jellegzetessége. A valóságban közelebb tudunk menni, és megnézni, hogy ki is ez az ember. A digitális képet viszont hiába nagyítjuk, az elveszett részleteket nem kapjuk vissza.

A hagyományos digitális technikáknál amikor nagyítunk, akkor a környező képpontok alapján számol a program, és új képpontokat alkot.
Ha egy ilyen képre ránézünk, felmerül a kérdés: tudjuk, hogy ember van a képen. Tudjuk, hogy ott van az orra, a szeme, a szája, és minden. Nem lehetne valahogy egy mesterséges intelligenciát alkotni, ami ebből a két információból (a képpontok apró eltéréséből, és hogy tudjuk, mi van a képen) valahogy összerakja az eredeti képet?

Digitális nagyítás és a mesterséges intelligencia nagyítása
Digitális nagyítás és a mesterséges intelligencia (SUPIR) nagyítása

A mesterséges intelligencia a tréningezés során megtanulja, hogy mely dolgok miből állnak, és minek hol kell lennie. Majd a képet elemzi, és a saját adatbázisa alapján újra tudja rajzolja.

Fontos tudni viszont, hogy ha a kép alacsony felbontása miatt elemek és részletek vesztek el, azt a mesterséges intelligencia sem fogja tudni az eredeti formában visszaállítani. Hanem a mesterséges intelligencia a képpontok alapján megpróbálja kitalálni, hogy mi lehetett ott, majd az adatbázisa alapján fog rajzolni.
Azaz ha a képen egy ember túlságosan kevés képpontból áll és ezért nem látszik az orra, akkor még a mesterséges intelligencia sem fogja tudni a valódi orrát megrajzolni. Hanem a tréningezés során megtanult orrtípusok közül fog egy olyat rajzolni, ami leginkább hasonlít a képen lévő foltra.

Egy mesterséges intelligencia nagyító program minősége tehát attól függ, hogy mennyire tudja az eredeti kép tartalmát értelmezni, majd milyen képeken lett tréningezve.

SUPIR

A SUPIR (Scaling Up to Excellence: Practicing Model Scaling for Photo-Realistic Image Restoration In the Wild – A Kiválóság fokozása: A modellskálázás gyakorlása a fotórealisztikus képrestauráláshoz a természetben)

A SUPIR programot kifejezetten az elveszett képpontok helyettesítésére lett fejlesztve. A többi programmal ellentében a SUPIR már nagyon kevés információból is nagyon jó eredményeket alkot.

Itt egy igazi archív felvétel (igazi archív kávéfolttal), ami 1946-ban készült (a törökországi İş Bank Ankarában). A képen lévő egyik erkélyt és ablakot szeretnénk részletesebben vizsgálni.

Eredeti régi fénykép (Ankara İş Bankası - 1946)
Eredeti régi fénykép (Ankara İş Bankası – 1946)

Ez a rész a hagyományos nagyítás esetében csak homályos foltok halmaza lesz. Alig látszanak az ablakok, erkélyek részletei.

Viszont amint megkérjük a SUPIR programot, hogy ő nagyítsa fel a képet, az eredmény lenyűgöző!

Bal oldalt a hagyományos nagyítás, jobb oldalt a mesterséges intelligencia nagyítása látható.

Kisebb hibákkal persze számolni kell. Nem minden részletet értelmezett a program úgy, ahogyan az a valóságban van. Így mindenképpen alaposan tanulmányozni kell a felnagyított képet, hogy mikben tér el az eredetitől.

Leginkább a régi fényképek esetében kell a program tévedésével számolni. Olyankor ugyanis a kép tele van az öregedés jeleivel: töredezett, foltos, szemcsés, kopott, stb… Ezeket a program mind fontos elemnek próbálja értelmezni. És ott is próbál képi elemeket keresni, ahol nem volt.

Ez leginkább az emberi arcoknál lehet zavaró, vagy olyan helyeken, ahol tényleg minden aprólékos részlet fontos.

Képjavítás

A SUPIR nemcsak nagyításra, hanem rossz minőségű képek javítására is nagyon jól használható.

Az alábbi képet Dörre Tivadar készítette 1890 környékén a Budapesti Operaházról. A Wikipédia oldalán találtam rá, ahol a rossz minőség miatt a részletek teljesen elvesztek.

Budapesti Operaház - Dörre Tivadar (1890), vízfestmény
Budapesti Operaház – Dörre Tivadar (1890), vízfestmény

Vajon ebből a képből, mit tud a SUPIR összehozni? Íme az eredmény!

Budapesti Operaház, vízfesték. Balra a rossz minőségű, jobbra az MI-javított verzió.

A kép éles lett, és a program nagyon szépen megrajzolta a részleteket is. Bár sok helyen túlságosan lelkesen.

De e miatt nem kell aggódnunk. A csúszkák finom hangolásával, és az utasítás (prompt) pontosabb megfogalmazásával rengeteget lehet a képen javítani.

Használat

A gép

A SUPIR program használata ingyenes. Találunk egy kipróbálható verziót ezen az oldalon.

Beépíthetjük a Stable Diffusion programba a ComfyUI alá. Erről Pintér Zsolt készített egy nagyon jó videót.

Számolni kell vele, hogy a SUPIR nagyon erőforrás igényes. Amint egy kicsit is nagyobb képünk van, máris ajánlott az erős videókártya (legalább 24 GB VRAM) és memóriából is jó, ha legalább 50 GB-unk van.

Ha nem rendelkezünk egy ilyen óriás géppel, akkor érdemes inkább kifejezetten grafikai munkára előkészített szervert bérelni. A Runpod szolgáltónál nagyon kedvező áron választhatunk ilyen szervert. Ráadásul már kész SUPIR rendszert is találunk.
Szükség esetén néhány kattintással beállíthatunk egy képnagyító rendszert. Majd használat után egyszerűen törölhetjük. Minderről részletesen ebben a bejegyzésben olvashatunk.

A program

A SUPIR program több lépcsőben működik. Itt a Runpod szerveres változatát mutatjuk meg. De a többi SUPIR változat is hasonlóan működik.

SUPIR beállítások
SUPIR beállítások

1. lépés: előfeldolgozás

Miután feltöltöttünk egy képet az Input ablakba, a Stage 1t kell futtatni (ez némelyik SUPIR programban automatikusan lefut). Ez átalakítja a képet olyan formába, amivel élek és körvonalak határozottabbak lesznek. Ez fog segíteni abban, hogy a rajzolt kép minél jobban hasonlítson az eredetire.

A Runpod szerveren futó SUPIR esetében az előfeldolgozott képet mi is feltölthetjük. Tehát külső programos is használhatunk az előkészítésre, így jobban kontrollálhatjuk, hogy mely vonalak a fontosak.

2. lépés: utasítás

A mesterséges intelligencia esetében nagyon fontos, hogy minél jobban értse a kép tartalmát. Nem mindegy, hogy a képen lévő homályos négyzet egy asztal vagy egy ház, mert a mesterséges intelligencia annak akarja majd rajzolni.
A munkáját az utasítással (prompt) tudjuk segíteni. Ide angolul leírjuk, mi is van valójában a képen.

Csakhogy a SUPIR készítői tudták, hogy ez a leírás mennyire nehéz. Főleg azoknak, akik nem beszélnek jól angolul.
Így beraktak a programba egy LlaVA (Large Language and Vision Assistant – Nagyméretű nyelvi és látássegítő asszisztens) modult.

PixelRita mi az a LlaVA?

Tehát az LlaVA segít nekünk abban, hogy minél jobb utasítást készítsünk. A LlaVA gombra kattintva hamarosan elkészül az utasítás.

Ezt még mindig tudjuk módosítani azzal, hogy a szöveget átírjuk. De sokat segíthet a pontosabb leírásban, ha mi is elmondjuk, hogy mi van a képen, hol készült, mikor és mit szeretnénk látni.
Erre a SUPIR programon belül nincs lehetőségünk. De elmehetünk egy szabad LlaVA oldalra, vagy a ChatGPT GPT-jét is használhatjuk. Mindkettő esetében a feltöltött képről addig beszélgethetünk az MI-vel, míg a számunkra kedvező promptot megírja.

3. lépés – képgenerálás

A SUPIR készítői a legtöbb beállítást előre elkészítették. Így csak ritkán kell ezekkel foglalkozni. Az Upscale csúszkán kiválasztjuk, hogy mekkora nagyítást szeretnénk. Majd pedig kattintsunk a Stage 2 Run gombra.

Hamarosan elkészül a nagyított képünk.

További beállítások

SUPIR beállítások
SUPIR beállítások

Amennyiben a képünk túlságosan eltér attól, amit szeretnénk, kapunk néhány beállítást a finomhangoláshoz.
Az alábbi csúszkát segíthetnek a jobb beállításban:

  • Text Guidance Scale: Mennyire vegye figyelembe a program az utasítást
  • Stage1 Guidance Strength: Mennyire vegye figyelembe a program az előfeldolgozott képet
  • Stage2 Guidance Strength: Milyen erősen működjön az eredeti kép átrajzolása
  • Steps: Hány lépésben készüljön el a rajz. A több lépés rajzosabb eredményt ad.
  • Linear CFG: Mennyire kövesse a mesterséges intelligencia az eredeti vonalakat, a rajzolás melyik fázisában (hányadik lépénél) kezdjen el működni.
  • Linear Stage2 Guidance: Mennyire kövesse a mesterséges intelligencia a Stage2 utasításokat, a rajzolás melyik fázisában (hányadik lépénél) kezdjen el működni.

Ezen beállítások képenként különböznek. Érdemes velük kísérletezni, míg a pontos használatukat megtanuljuk.

Kellő gyakorlással akár egy 1996-as kis részletességű 3D-s játék karakterét is élethű képpé alakíthatjuk.

Tomb Raider 1996-os játék karaktere balra. Jobbra a SUPIR program készítette fotó realisztikus kép

Tippek

  • A nagy memória igény miatt (60 GB RAM és 2 x 30 GB VRAM) ajánlott inkább 1024 x 1024 pixelesnél kisebb képpel dolgoztatni (előfordul, hogy 2048 x 2048-as vagy ennél nagyobb képet is elkészíti, de drasztikusan nő a program erőforrás igénye)
  • Érdemes több úton is próbálkozni! Minden kép más. A SUPIR nagyítás mellett próbáljuk meg azt is, hogy a képet hagyományos módon nagyítjuk, majd a SUPIR programban már csak a képjavítást végezzük.
  • A beépített LlaVa mellett más képanalizáló (image-to-prompt) programokat is próbáljunk ki! Pl. a ChatGPT Image to Prompt Generator GPT programot is. A pontos képelemzés nagyon sokat javít a képen.

PixelRita

PixelRita neked hogy tetszik ez a technológia?

Loading

No votes yet.
Please wait...

Szólj hozzá!