Tutorial Stable Diffusion i ControlNet
hejto.plJak w 40 kontekstowo zależnych krokach wygenerować obraz 512x768 i zamienić go w tapetę 4k - dodając więcej szczegółów
Co będzie wymagane:
-
Automatic1111
-
ControlNet
-
ultimate-upscale-for-automatic1111
-
Najpotężniejszy komputer znany ludzkiej nauce. Jeżeli nie masz GPU serii RTX to ostatni krok zajmie kilka godzin.
Krok 1 (pierwszy) - generujemy sobie obrazek:
Ja użyłem takich parametrów:
Wymiary: 512x768
Propt:
(8k, RAW photo, best quality, masterpiece:1.2), (realistic, photo-realistic:1.37), octane render, ultra high res, ultra-detailed , professional lighting, photon mapping, radiosity, physically-based rendering, ue5, ((island sanctuary)), ((ancient fallen kingdom)), ((reflections in water)), ((raytracing)), ((drowned city)), (depth of field)
NegPrompt:
bad_prompt_version2-neg BadDream By bad artist -neg ng_deepnegative_v1_75t UnrealisticDream
I dostałem taki obrazek:
Krok 2 (drugi) - rozszerzamy obrazek z wymiarów portretowych na panoramiczne:
Przy okazji SD wyobrazi sobie co mogłoby być po bokach i dorysuje nam do tej sceny dodatkowe informacje.
Ustawiamy wszystko jak na obrazku:
-
Zmieniamy szerokość na 1280
-
Włączamy Enable przy pierwszej jednostce ControlNet
-
Włączamy PixelPerfect
-
Preprocessor ustawiamy na inpaint, model inpaint (trzeba sobie zawczasu pobrać na przykład stąd: https://civitai.com/models/38784?modelVersionId=44876 )
-
Upuszczamy w okienko obrazek który zrobiliśmy w kroku pierwszym
-
Ustawiamy "My prompt is more important" - obrazek się rozszerzy i będzie miał więcej wspólnego z tym co narysowaliśmy w kroku pierwszym
-
BARDZO WAŻNE - Ustawiamy Resize and fill. To jest wymagane, żeby SD dorysował nieistniejącą część obrazka. Bez tego po prostu zdeformujemy to co już mamy.
Wygenerowałem 4 aby pokazać Wam jak wygląda rozszerzanie sceny. Przy każdej generacji po bokach będzie coś innego, ale ogólnie spójnego z pierwotną scenerią.
Mnie się podoba nr3, więc biorę go do następnego kroku.
Krok 3 (trzeci) - zamiana 1280x768 na 3840x2304
Nie tylko zwiększymy rozdzielczość, ale i dodamy do obrazka szczegóły, których tam wcześniej nie było.
Od razu zaznaczam, że w tym kroku trzeba mieć albo mocne GPU, albo duuużo cierpliwości. Ten krok może zająć nawet kilka godzin na słabszych kartach graficznych, lub kilka dni na CPU.
-
Przechodzimy na zakładkę img2img
-
Ustawiamy takie same prompty jak w kroku 1
-
Upuszczamy w to pole obrazek z kroku 2
-
Ustawiamy liczbę kroków (im więcej tym dłużej to będzie trwało). Ja ustawiłem 30, ale 20 będzie ok. Ma to znaczenie pod tym względem, że doda się do obrazka więcej mikro szczegółów. Poniżej pokażę różnicę.
-
Denoising - Jak bardzo wygenerowany obrazek ma przypominać oryginał. Ustaw 0.4 jeżeli nie wiesz co wpisać.
-
Controlnet - Enable + pixelperfect
-
Preprocessor Tile + model Tile (do pobrania z linku z Civitai wyżej)
-
My prompt is more important - wynik bardziej w stylu tego co jest w prompcie.
-
Script - Wybieramy Ultimate SD Upscale
-
Wybieramy Scale from image i wpisujemy "3"
-
Jako upscaler wybrałem ESRGAN
-
Wciskamy Geneate i czekaaaaaamy.
Krok 4 (czwarty) - ??? czy PROFIT?
Po co to wszystko??? Ano po to, że nie ma w zasięgu przeciętnego konsumenta karty graficznej, która byłaby w stanie wygenerować obraz 4k. Tym sposobem się da, mimo że jest czasochłonne.
Ponadto przyjrzyjmy się trochę szczegółom. Obrazek z kroku pierwszego vs obrazek z kroku trzeciego:
Jak widać, nie tylko rozszerzyliśmy oryginalny obrazek na boki dodając scenerię, której wcześniej nie było, ale również dodaliśmy więcej szczegółów pomiędzy pikselami kosztem tego, że wynikowy obraz jest trochę inny.
Wszystkie grafiki dostępne również tutaj:
https://imgur.com/a/EpcX8kG
#aiart #stablediffusion #midjourney #tutorial