Ugrás a fő tartalomra

AI ControlNet alapok




 AI ControlNet alapok


A ControlNet egy neurális hálózati struktúra a diffúziós modellek vezérlésére extra feltételek hozzáadásával, lényegében egy módváltó az AI-kép generálásához. Példátlan szintű irányítást biztosít a Stable Diffusion számára.


A ControlNet forradalmi megoldása a térbeli konzisztencia problémájára. Míg korábban egyszerűen nem volt hatékony módja annak, hogy egy mesterséges intelligencia modellnek megmondja, hogy a bemeneti kép mely részeit tartsa meg, a ControlNet megváltoztatja ezt egy olyan módszer bevezetésével, amely lehetővé teszi a stabil diffúziós modellek további bemeneti feltételek használatát, amelyek pontosan megmondják a modellnek, hogy mit kell tennie.


A ControlNet egy olyan neurális hálózati struktúra, amelyet diffúziós modellek vezérlésére terveztek. A ControlNet előnye, hogy képes adaptálni a változó környezeti feltételekhez, és optimalizálni a vezérlési stratégiát a kívánt célok elérése érdekében. 


A ControlNet előnye, hogy megbízhatóbbá teszi a diffúziós modelleket. A diffúziós modellek hajlamosak a túltanulásra, ami azt jelenti, hogy túlságosan a képzési adatokhoz igazodnak, és így nem képesek generalizálni új adatokra. A ControlNet használatával a felhasználók csökkenthetik a túltanulás kockázatát, és javíthatják a diffúziós modellek általánosító képességét.


Almodell  ->  Fő jellemzők

Canny -> Algoritmus az élek detektálására képeken<br>- Alkalmazkodik a képek strukturáltabbá tételéhez

Depth -> Mélységérzékelés alapú modell<br>- Képes meghatározni a távolságokat és mélységinformációt kinyerni a bemeneti adatokból

ED     -> Élkiszűrés (Edge Detection) alapú modell<br>- Az éleket keresi a bemeneti képeken, hogy jellemzőként felhasználja őket a szabályozás során

MLSD -> Mozgásérzékelés alapú modell<br>- Meghatározza a mozgásokat és a változásokat a bemeneti adatokban, és ezeket felhasználja a szabályozás során

Normal -> Normálvektorok alapján történő modell<br>- Kiszámítja a bemeneti adatok normálvektorait, amelyeket jellemzőként felhasznál a szabályozás folyamán

OpenPose -> Testtartás érzékelésére specializált modell<br>- Képes az emberi test különböző pontjainak érzékelésére és ezeket felhasználja a szabályozás során

Scribble -> Karcolások és vázlatok alapján történő modell<br>- Felhasználja a képekhez hozzáadott karcolásokat és vázlatokat a szabályozáshoz

Seg -> Szegmentációs alapú modell<br>- Képes az objektumok szegmentálására a bemeneti adatokban és ezeket a szegmenteket használja fel a szabályozás során


Ezek az almodellek különböző jellegű adatfeldolgozást végeznek, és különböző jellemzőket használnak a szabályozási feladatokhoz. 

A választott almodell attól függ, hogy milyen információk állnak rendelkezésre a bemeneti adatokban, és hogy milyen jellegű szabályozási feladatot szeretnénk megoldani az AI ControlNet segítségével.


Almodelek jellemzőinek részletezése

- Canny: egy olyan algoritmus, amely éldetektálásra szolgál. A képet simítja, majd gradiens számítást végez, és egy kétlépcsős küszöbölési módszerrel kiválasztja az éleket. A Canny almodell előnye, hogy jól működik zajos képeken is, és pontosan lokalizálja az éleket.

- Depth: egy olyan almodell, amely mélységképeket állít elő a bemeneti képekből. A mélységkép azt mutatja meg, hogy a kép egyes pontjai milyen távol vannak a kamerától. A Depth almodell hasznos lehet például térbeli rekonstrukcióhoz vagy tárgyfelismeréshez.

- ED: egy olyan almodell, amely az Edge Drawing (ED) nevű éldetektáló algoritmust használja. Az ED algoritmus először egy halmazt hoz létre az élek kezdőpontjaiból, majd ezekből kiindulva követi az éleket a gradiens irányában. Az ED almodell előnye, hogy gyors és hatékony, és kevés paramétert igényel.

- MLSD: egy olyan almodell, amely a Moving Least Squares Deformation (MLSD) nevű deformációs algoritmust használja. Az MLSD algoritmus lehetővé teszi, hogy a képet úgy transzformáljuk, hogy megőrizzük a lokális tulajdonságait. Az MLSD almodell hasznos lehet például arckifejezések módosításához vagy karikatúrák készítéséhez.

- Normal: egy olyan almodell, amely normálvektorokat számít ki a bemeneti képekből. A normálvektorok azt mutatják meg, hogy a kép egyes pontjai milyen irányba néznek. A Normal almodell hasznos lehet például fényeffektusok létrehozásához vagy háromdimenziós modellezéshez.

- OpenPose: egy olyan almodell, amely emberi testtartásokat ismer fel a bemeneti képeken. Az OpenPose almodell képes meghatározni a test főbb részeit, mint például a fej, a karok, a lábak és a törzs, valamint az ízületek helyzetét és orientációját. Az OpenPose almodell hasznos lehet például mozgásanalízishez vagy gesztusvezérléshez.

- Scribble: egy olyan almodell, amely rajzolást tesz lehetővé a bemeneti képeken. A Scribble almodell segítségével a felhasználó ceruzával vagy ecsettel rajzolhat a képre, és különböző színeket és vastagságokat választhat. A Scribble almodell hasznos lehet például képszerkesztéshez vagy kreatív alkotáshoz.

- Seg: egy olyan almodell, amely szegmentálja a bemeneti képeket. A szegmentálás azt jelenti, hogy a képet több részre osztjuk úgy, hogy az egyes részek homogén tulajdonságokkal rendelkezzenek. A Seg almodell hasznos lehet például tárgyazonosításhoz vagy háttéreltávolításhoz.



Almodelek jellemzőinek Összefoglalása




A ControlNet három rétegből áll: 

  • egy bemeneti rétegből, amely a rendszer állapotát és a külső hatásokat veszi figyelembe, 
  • egy rejtett rétegből, amely a diffúziós modell paramétereit és a vezérlési szabályokat tartalmazza, 
  • és egy kimeneti rétegből, amely a vezérlési jeleket generálja.


A ControlNet használata konkrétan a hőmérséklet-szabályozásra, koncentráció-szabályozásra vagy reakciósebesség-szabályozásra attól függ, hogy milyen típusú diffúziós modellt alkalmazunk. 

A hőmérséklet-szabályozás esetén a diffúziós modell a hőátadást írja le a rendszerben, és a vezérlési cél a hőmérséklet egyenletes eloszlása vagy egy adott érték elérése. 

A koncentráció-szabályozás esetén a diffúziós modell az anyagtranszportot írja le a rendszerben, és a vezérlési cél a koncentráció egyenletes eloszlása vagy egy adott érték elérése. 

A reakciósebesség-szabályozás esetén a diffúziós modell a reakciókinetikát írja le a rendszerben, és a vezérlési cél a reakciósebesség egyenletes eloszlása vagy egy adott érték elérése.


A ControlNet használatának lépései a következők:

1. Válasszuk ki a megfelelő diffúziós modellt a rendszer leírására, és határozzuk meg annak paramétereit.

2. Határozzuk meg a vezérlési célokat és korlátokat, valamint az optimális vezérlési stratégiát.

3. Tanítsuk be a ControlNet-et az adott diffúziós modellre és vezérlési stratégiára, például szimulált vagy valós adatokkal.

4. Alkalmazzuk a ControlNet-et a rendszer vezérlésére, és figyeljük meg az eredményeket.

5. Ha szükséges, finomhangoljuk vagy frissítsük a ControlNet-et az új körülményekhez vagy célokhoz igazodva.



Példa használata :

0. módel kiválasztása (piros keret)

1. A kép belinkelése (kék keret)

2. prompt megadása (zöld keret)

3. Indítás (barna keret)



Érdekes, hogy a bing generált AI kép logó 'b' betűjét is szépen bedolgozza.


Linkek

https://huggingface.co/spaces/hysts/ControlNet-v1-1

https://huggingface.co/lllyasviel/ControlNet

https://github.com/lllyasviel/ControlNet

https://medium.com/@steinsfu/stable-diffusion-controlnet-clearly-explained-f86092b62c89

Megjegyzések