Dostępne do lokalnego startu odmiany FLUX.1, [dev] i [schnell] (o których zaczęliśmy rozmawiać w ostatnim numerze Warsztatu), sami twórcy nazywają „destylowanymi” w porównaniu z pełnoprawnym FLUXem. 1 [pro] – ponieważ zarówno liczba parametrów pracy, jak i wymagania sprzętowe dla nich są znacznie zmniejszone w porównaniu z tą. Jednocześnie jak już wspomnieliśmy, model destylacji pierwszego rzędu – [dev] – został specjalnie wyszkolony, aby jak najdokładniej odwzorowywał wyniki oryginalnego, bardziej złożonego [pro] (dostępnego, jak pamiętamy, tylko dla użytkowników online poprzez API) pod względem jakości finalnego obrazu, a także skrupulatnego przestrzegania podpowiedzi tekstowych.
W świetnym humorze
Za takie rozjaśnienie modelu (zabieg ten nazywa się „destylacją orientacyjną”), bez uszczerbku dla jego funkcjonalności, trzeba było oczywiście zapłacić określoną cenę. W szczególności zaleca się, aby parametr CFG, jak omawialiśmy wcześniej, dla FLUX.1 [dev] i [schnell] miał wartość ściśle równą jeden – co całkowicie eliminuje konieczność stosowania podpowiedzi negatywnych (które same w sobie nie są najbardziej jednoznaczne narzędzie ze wszystkich. W tym przypadku zaczynają być stosowane do obrazu utworzonego w przestrzeni ukrytej dopiero wtedy, gdy wartości przewodnictwa wolnego od klasyfikatorów przekraczają 1). W pewnym stopniu funkcje sterujące generacją CFG są przejmowane dla FLUX.1 przez nową wartość, zwaną po prostu „naprowadzaniem” i domyślnie ustawioną na 3,5. Im niższa wskazówka, tym obraz gorzej podąża za podpowiedzią, jednak poszczególne detale – zwłaszcza ludzka skóra – czynią model całością bardziej realistyczną, natomiast nadmuchane „zalecenia” prowadzą do niemal dosłownego wykonania podpowiedzi (w granicach możliwości modelki oczywiście – o tym za chwilę), ale twarze, powiedzmy, wychodzą zupełnie plastyczne i nienaturalne.
Ze wszystkimi tymi problemami można walczyć i już się z nimi walczy: w ciągu kilku miesięcy, które upłynęły od wydania FLUX.1, entuzjastom udało się nauczyć, jak wypuścić nowy produkt z CFG > 1 (w związku z tym sprawić, by reagował do negatywnej, a nie tylko pozytywnej podpowiedzi) i w pierwszym przybliżeniu „destylować” wersję [dev] przy użyciu odwrotności dobrze znanego algorytmu destylacji opartego na dość dużej (150 tysięcy) tablicy obrazów szkoleniowych z adnotacjami . Niestety, te rozwiązania trudno uznać za idealne: bez dostępu do początkowych wag [pro] są one niczym innym jak paliatywami, które w różnych scenariuszach użytkowania nie zawsze wykazują wyraźnie doskonałe wyniki – w porównaniu nawet z modelem [schnell], co stanowi drugą pochodną procesu optymalizacji, przyspieszoną, destylowaną wersję FLUX.1. Dodatkowo powrót do niejednostkowego wskaźnika bez klasyfikatora od razu podwaja czas wykonania takich modeli na lokalnym sprzęcie – czego z punktu widzenia posiadaczy niezbyt wydajnych kart graficznych nie można uznać za zaletę.
A jednak zalety FLUX.1, nawet dla tej budżetowej części odbiorców, entuzjastów rysowania AI, są zbyt oczywiste, aby w dalszym ciągu ignorować modną nowość, pozostając przy znacznie szybszych SDXL i SD 1.5. Pod względem wierności podążaniu za podpowiedziami FLUX.1 trudno znaleźć sobie równych wśród innych generatywnych modeli zamiany tekstu na obraz z otwartymi wagami dostępnymi do lokalnego wykonania – dlatego bardzo chcę się nauczyć, jak z niego korzystać, aby tak nie było staje się potwornie bolesne przez długie minuty (zamieniające się w godziny) spędzone w oczekiwaniu na wygenerowanie kolejnego zdjęcia. Być może w pewnym sensie destylację [dev] i [schnell] można nawet uznać za zaletę: tak, zmienność powstałych obrazów wraz z bogatym potencjałem negatywnych wskazówek jest poświęcana właśnie tej destylacji – ale tam jest szansa, dobierając właściwe słowa w pozostałych częściach pozytywnych, wydobyć z ukrytej przestrzeni obraz możliwie najbliższy zamierzonemu. Co więcej, jest on oczywiście bardzo przyzwoitej jakości i ma niemal gwarantowaną prawidłową liczbę palców na rękach postaci antropomorficznych – co jest niezwykle istotną zaletą dla entuzjastów rysowania AI, którym daleko do prawdziwej kreatywności artystycznej i którzy nie są zbyt wprawni w ręcznym doszlifowywanie niedokończonego zdjęcia do perfekcji w GIMP-ie lub innym edytorze.
Z punktu widzenia prawidłowego tłumaczenia słów na obrazy, być może główną zaletą FLUX.1 w porównaniu z innymi modelami, które wcześniej badaliśmy, jest obecność kompleksowego systemu konwersji tekstu na tokeny (które następnie służą do wyodrębniania obrazy z przestrzeni utajonej): wiązki CLIP i T5. Model ujednoliconego transformatora transferu tekstu na tekst (pięć liter „t” z rzędu daje akronim T5), zaproponowany przez badaczy z Google jeszcze w 2020 roku, wcale nie powiela standardowego dla Stability AI, BFL i wiele innych produktów to koder CLIP (kontrastowe szkolenie wstępne języka-obrazu; „dopasowywanie obrazu do tekstu na podstawie wstępnego szkolenia”). Wręcz przeciwnie: konwertuje tekst na tekst, jakby żuł model CLIP – który sądząc po wielkości pliku z jego wagami (tylko 246 MB, jak pamiętamy z ostatniej instalacji FLUX.1 [dev ] ; plik t5xxl w 16-bitowym kodowaniu, przypomnijmy dla porównania, zajmuje aż 9,79 GB), nisko lecący ptak – co i jak dokładnie ma zobrazować skórzana torba umieszczona po drugiej stronie monitora komputera.
T5 robi to oczywiście w nieco nietypowy, ale całkowicie algorytmiczny sposób i jeśli dokładnie zrozumiesz, jak to zrobić, to uzyskanie zdjęć adekwatnych do żądań kompozycji użytkownika przy użyciu nowego modelu będzie znacznie łatwiejsze niż przy użyciu SDXL czy SD 1.5. SD3M, jak już wtedy zauważyliśmy, służy także do interpretacji podpowiedzi na T5 w połączeniu z aż dwiema wersjami CLIP-a – wspomnijmy o tym dla sprawiedliwości. Ale to niechlubne dzieło Stability AI okazało się tak bezlitośnie wykastrowane przed wypuszczeniem na wolność, że dziś rzadki, nawet najbardziej szczery entuzjasta rysowania AI pamięta to przynajmniej w koszmarach. Nowo powstała Stable Diffusion 3.5 to być może inna sprawa, ale społeczność dopiero zaczęła odkrywać jej możliwości. Jednym słowem wracając do głównego tematu tych „Warsztatów”: aby w pełni ujawnić potencjał FLUX.1, trzeba nauczyć się poprawnie komponować dla niego podpowiedzi tekstowe, ułatwiające T5 interpretację ich sprawnych, ale wąski model CLIP. I do tego bardzo fajnie byłoby nauczyć się szybko prototypować tekst na obraz – tak, abyś po ocenie wyniku kolejnej iteracji mógł dostosować tekst w polu wejściowym; po czym ponownie wysyłając zadanie do wykonania, poczekaj na pojawienie się nowego obrazu nie godzinami czy dziesiątkami minut, ale przynajmniej w ciągu pierwszych setek sekund. Na szczęście narzędzia do tego rodzaju działań zostały już opracowane przez pasjonatów, a my zaczynamy je badać.
⇡#Subtelności kwantyzacji
A zacznijmy od złożenia hołdu modelowi FLUX.1 [schnell], którego wykonanie obejmuje jedynie cztery kroki (kroki) iteracyjne – wszak jest to przyspieszona wersja ich stworzenia, całkiem oficjalnie udostępniona nam przez deweloperów z BFL. Tak, entuzjaści rysowania AI mają na to wiele skarg – m.in. na jakość finalnego obrazu, elastyczność (w sensie czasami zbyt dosłownego podążania za podpowiedzią), poziom dopracowania drobnych szczegółów itp. Najgorsze jest to, że nawet jeśli natkniesz się na udany materiał siewny dla danej podpowiedzi w modelu [schnell] przy użyciu bezpłatnego wyszukiwania na ślepo, nie będziesz mógł z tego przełączyć się na [dev] z tym samym ziarnem i otrzymamy w zasadzie ten sam obraz, tylko lepszej jakości – okaże się nawet, że pod wieloma względami różni się składem, gdyż dodatkowe „przyspieszenie” [schnell] oprócz destylacji znacząco wpłynęło na zastosowaną tutaj metodę porównywania wyekstrahowanych obrazów z ukrytej przestrzeni za pomocą żetonów. A jednak [schnell] ma spory potencjał: powiedzmy, że nikt się tym nie przejmuje, stworzył obraz, który z powodzeniem skomponował za pomocą tego modelu, a następnie powiększ go o podwyższoną jakość (procedura ekskluzywna) za pomocą innego – tego samego FLUX.1 [dev ] lub SDXL/SD 1.5 z dowolnymi rozszerzeniami LoRA, zarówno w prostej, ekskluzywnej wersji z wykończeniem generatywnym, jak i z większą liczbą narzędzi ControlNet/IP sterowanych przez operatora Adapter, inpainting/outpainting – i inne opracowane przez społeczność w ciągu ostatnich lat rozwoju lokalnego malowania AI. Generalnie nie ma co zaniedbywać standardowego narzędzia do szybkiego prototypowania z arsenału BFL – i my z niego skorzystamy.
Ostatni numer Warsztatu zawiera całą instrukcję instalacji środowiska pracy ComfyUI w wersji samodzielnej – nie będziemy jej powtarzać. Informujemy jedynie, że w chwili pisania tego materiału aktualna wersja tego środowiska to 0.2.4 i zawiera odnośniki do wszystkich plików niezbędnych do uruchomienia [schnell], czyli modeli UNet, CLIP/T5 i VAE wraz z odnośnikami cyklogramy znajdują się na odpowiednich stronach sekcji z przykładami stworzonymi osobiście przez ComfyAnonimous, autora tego obszaru roboczego.
Jeśli jednak plik flux1-schnell.safetensor z wagami głównego modelu UNet 23,8 GB nie został jeszcze pobrany, nie ma się co spieszyć: przyspieszenie pracy z FLUX.1 warto zacząć właśnie tutaj. Standardowa reprezentacja wag modeli generatywnych jako tablica 16-bitowych liczb rzeczywistych (format FP16) wymaga zbyt dużych zasobów; To nie przypadek, że skompresowane wersje takich plików stają się coraz bardziej popularne – wraz ze spadkiem głębi bitowej do 8 (FP8), a nawet do 4 (NF4). Zrozumiały spadek jakości w porównaniu z oryginalnym 16-bitowym modelem przy zastosowaniu takich Unetów nie zawsze jest katastrofalny, a ich rozmiary są znacznie zmniejszone – co pozwala im w całości zmieścić się nawet w niezbyt rozbudowanej pamięci wideo. Tak więc dla 16 GB wideo RAM, które jest dziś optymalne, oraz dla GeForce GTX 1070 zainstalowanego na naszym systemie testowym z 8 GB pamięci, formalnie odpowiednia jest wersja flux1-schnell-Q4_K_S.gguf, która zajmuje niecałe 7 GB. Zwróćmy uwagę na rozszerzenie: wskazuje, że używane jest kodowanie GGUF, specjalnie zaprojektowane do kompaktowego przechowywania macierzy wag modeli generatywnych (nie tylko kompresja, ale kwantyzacja, kwantyzacja tych konkretnych danych) – i do tego będziesz należy zainstalować specjalnie opracowany dodatek ComfyUI- do środowiska roboczego GGUF z repozytorium Git Hub (https://github.com/city96/ComfyUI-GGUF).
Na wspomnianej powyżej stronie z przykładami generacji z FLUX.1 w środowisku ComfyUI znajdują się obrazki w formacie PNG zawierające odpowiadające im cyklogramy – aby je zobaczyć, po załadowaniu wystarczy przeciągnąć obrazek myszką z „Eksploratora” na pole robocze środowiska. Po zmianie węzła źródłowego do ładowania modelu UNet w standardowym kodowaniu FP na „Unet Loader (GGUF)” i pozostawieniu wszystkich pozostałych parametrów bez zmian, z monitem „butelka z tęczową galaktyką w środku na drewnianym stole pośrodku nowoczesnej kuchni” otrzymujemy mniej więcej tyle samo, co w przypadku wariantów FP16 i Q8.
Różnica w wielkości i czasie wykonania jest więcej niż imponująca. Oryginalny model FP-16 [schnell] zajmuje prawie 24 GB i generuje obraz z szybkością około 69 sekund na iterację (pamiętajcie, dla tej destylowanej i akcelerowanej wersji FLUX.1 zaleca się wytworzenie w sumie czterech), GGUF Q8_0 – 12 GB i 31 s/it., Q4_K_S – 7 GB i 29 s/it. Należy rozumieć, że we wszystkich trzech przykładach zmierzono prędkość wydawania tylko pierwszego zdjęcia: ponieważ wstępne załadowanie do pamięci i wykonanie modeli CLIP i T5 również zajmuje pewien czas, w trybie swobodnego wyszukiwania – gdy tekst podpowiedź jest niska, a ziarno zmienia się losowo – drugi i kolejne obrazy w serii zostaną wydobyte z ukrytej przestrzeni jeszcze szybciej.
Ciekawy wniosek nasuwa się po porównaniu trzech otrzymanych obrazów z cyklogramem testowym: wizualna różnica pomiędzy FP16 a Q8_0 jest minimalna, natomiast wykonanie pierwszej opcji kodowania [schnell] trwa ponad dwa razy dłużej; obrazy uzyskane przy użyciu Q8_0 i Q4_K_S różnią się znacznie bardziej uderzająco – ale czas ich generowania jest w przybliżeniu taki sam. I nie jest to przypadkowa fluktuacja: wkrótce po pojawieniu się modeli GGUF na Hugging Face w społeczności entuzjastów panował niemal konsensus co do preferowania Q8_0 w stosunku do wszystkich innych opcji, w tym kodowania FP i NF – utrata wykonania czas takich modeli w porównaniu z większą kompresją jest minimalny (szczególnie w przypadku [schnella] z jego czterema iteracjami), podobnie jak różnica wizualna w stosunku do oryginalnej wersji FP16. Z tego powodu w przyszłości w ramach tego „Warsztatu” będziemy wykorzystywać model flux1-schnell-Q8_0.gguf z repozytorium FLUX.1-schnell-gguf. Kilka minut na zdjęcie jest całkiem akceptowalne, biorąc pod uwagę wierność modelu FLUX.1 poprawnie skomponowanej wskazówce. Kolejne pytanie brzmi: jak faktycznie osiągnąć tę poprawność?
⇡#Oto twój miecz
Wróćmy do dwóch typów koderów tekstu, o których pokrótce wspomniałem wcześniej – CLIP i T5. W przypadku pierwszego wszystko jest mniej więcej jasne: jest to model sieci neuronowej, wytrenowany do porównywania określonych obrazów z określonym tekstem (a dokładniej warunkowymi tokenami liczbowymi, w które zamienia się dla wygody przetwarzania przez cyfrowy system komputerowy ). Ponownie słuszniej byłoby mówić nie o obrazach w formie dostępnej dla ludzkiej percepcji, ale o wektorach w jakiejś w istocie wielowymiarowej przestrzeni – tej bardzo ukrytej – którą można postrzegać jako oderwaną od realnych bytów, przedstawionych w postaci numerycznej sekwencje, niemal platońskie idee obiektów empirycznych, ich cechy charakterystyczne (rozmiar, kolor, faktura powierzchni…), pozy, style artystyczne itp. Już na kolejnym etapie wektory te przekształcane są w obrazy (w tym przypadku obrazy, ponieważ mówimy o modelach AI do rysowania, ale można to również przekształcić w tekst, kod programu, filmy i muzykę, w zależności od zadania) podmodel generatywny VAE, autoenkoder wariacyjny.
CLIP, mimo wszystkich swoich zalet, nie jest idealny: jego „uwaga” dość szybko się rozprasza w miarę wydłużania się danej podpowiedzi tekstowej (im bliżej końca jest dane słowo, tym mniejsze prawdopodobieństwo, że dostrzeże w nim skojarzony z nim przedmiot lub cechę). zdjęcie); słabo odbiera wyrażenia w języku naturalnym (lista rzeczowników oddzielonych przecinkami jest dla niego „bardziej zrozumiała” niż spójne zdanie). Jedną z opcji pomagających modelowi generatywnemu głębiej poznać żądanie operatora jest wykorzystanie dodatkowego transkodera – innego modelu generatywnego specjalnie przeszkolonego do przekształcania fraz sformułowanych przez człowieka na zestaw słów kluczowych, który jest oczywiście lepiej postrzegany przez model CLIP. Transkoder ten to model T5, o którym już nie raz wspominaliśmy, który w ścisłej interakcji z CLIP-em buduje w przestrzeni ukrytej (zgodnie z doświadczeniami zdobytymi podczas wstępnego szkolenia) wektor najtrafniej odpowiadający żądaniu użytkownika. Z grubsza rzecz biorąc, CLIP to dobry, choć nie genialny artysta, potrafiący oddać odpowiednią istotę w odpowiedzi na znajome słowo, które słyszy, podczas gdy T5 to menadżer, który nie ma pojęcia o rysowaniu, włada ludzką mową i ma się dobrze świadomy słownictwa swojego kolegi; sumiennie tłumacząc na przystępny język CLIP zadania otrzymane od żywego operatora.
Efekt ich współpracy w przypadku FLUX.1 często (znacznie częściej niż w przypadku SD1.5 i SDXL) okazuje się niezwykle zadowalający – mówiliśmy już o tym w ostatnim numerze Warsztatu. Tak, istnieją również trudności związane zarówno ze specyfiką uczenia wszystkich podmodeli biorących udział w procesie rysowania, jak i z destylacją wersji [dev] i [schnell] dostępnych do lokalnego wykonania. Na przykład wzmianka o mieczu w podpowiedzi dosłownie powoduje, że model generuje sceny z życia średniowiecznego/fantastycznego. A ponieważ w historycznym średniowieczu prawie wszyscy mężczyźni chodzili z brodami, a ich wizerunki w tej formie trafiają do baz szkoleniowych modeli generatywnych, banalna wskazówka „człowiek z mieczem” jest w 100% prawdopodobna (testowaliśmy tę tezę na próbie z 350 pokoleń z losowymi nasionami – na więcej zabrakło wytrwałości) wygeneruje obrazy brodatych mężczyzn uzbrojonych w różne ostrza. Co więcej, połączenie „miecz-broda” na poziomie modelu okazało się na tyle mocne – pamiętamy, także dzięki destylacji wersji FLUX.1 dostępnych do lokalnego wykonania – że nawet bezpośrednie wskazanie braku zarostu (w różnych wersjach – „bez brody”, „bez brody”, „ogolony”, „czysty podbródek” itp.) jeśli to zadziała, to w minimalnym stopniu: miejsce wygenerowanej brody czasami zajmuje trzydniowy zarost, ale to Wszystko. Tutaj przydałaby się negatywna podpowiedź, jednak jej nieświadome, sztuczne dodanie, staraniem entuzjastów, do standardowego cyklu pracy FLUX.1 generuje niestety dodatkowe artefakty i wydłuża czas wykonania.
Ważna uwaga: choć cyklogram referencyjny, z którego korzystaliśmy do tej pory, posiada jedno okno wprowadzania tekstu dla pozytywnej podpowiedzi, model jest gotowy na przyjęcie instrukcji tekstowych oddzielnie dla modeli CLIP i T5 – i już to pozwala znacząco poprawić jakość obrazu (szczególnie przy złożonej kompozycji) w przypadku braku dodatkowych narzędzi zewnętrznych, takich jak ControlNet, wskazówki regionalne i inne. SD3M też udostępniał taką opcję – pamiętamy, że istniały aż trzy konwertery tekstu: dwie odmiany CLIP i jeden T5 – ale ten model teraz niechlubnie odszedł w zapomnienie, a entuzjaści dopiero zaczęli kłaść swoje doświadczone ręce na SD 3.5. FLUX.1, nawet w wersji [schnell], to inna sprawa i to teraz szczegółowo zweryfikujemy.
Na początek zmieńmy wartość „simple” na „beta” w węźle „BasicScheduler”: kombinacja algorytmu próbkowania (samplera) „euler” i harmonogramu (schedulera) „beta” jest uznawana przez społeczność za optymalną dla Rodzina modeli FLUX.1 pod względem szybkości wykonania i ogólnej jakości uzyskanych obrazów. Następnie gdzieś w pustym miejscu pola roboczego kliknij dwukrotnie lewym przyciskiem myszy i w pasku wyszukiwania, który się otworzy, zacznij wpisywać „cliptext…”. Podczas pisania w menu rozwijanym poniżej tej linii pojawi się między innymi opcja „CLIPTextEncodeFlux”; Kliknijmy na to – teraz na polu roboczym pojawił się niespotykany dotychczas węzeł z dwoma polami tekstowymi (górne dla modelu CLIP, dolne dla T5) oraz linią, w której ustawiany jest parametr prowadzenia, prowadzenie, z domyślną wartością „3,5”. Przy okazji zauważmy, że w oryginalnym cyklogramie referencyjnym dla [schnell] parametr ten w ogóle nie jest nigdzie ustawiony i jeśli później spróbujemy go zmienić w węźle, który właśnie został wprowadzony do cyklogramu, to nie będzie to możliwe. nie mają żadnego wpływu na ostateczny obraz – to kolejna konsekwencja podwójnego wykastrowania (destylacja + przyspieszenie) zastosowanej wersji FLUX.1. Natomiast w przypadku opcji [dev] liczy się wielkość przywództwa, ale o szybkim prototypowaniu z [dev] porozmawiamy innym razem.
⇡#Folka z tajemnicą
Tak więc, umieszczając „CLIPTextEncodeFlux” w miejscu „CLIP Text Encode (Podpowiedź)” i podłączając połączenia wejściowe i wyjściowe tam, gdzie powinny być – odpowiednio „clip” i „CONDITIONING” – najpierw upewnijmy się, że wszystko działa poprawnie. Umieśćmy poprzednią podpowiedź w obu dostępnych teraz polach wprowadzania tekstu, „butelce z tęczową galaktyką w środku na drewnianym stole pośrodku nowoczesnej kuchni” i używając tego samego materiału siewnego wykonamy cyklogram – który powinien wskazywać, że powstały obraz jest identyczny z poprzednim. Na wszelki wypadek przypomnienie: tu i dalej nadal korzystamy z modelu głównego z kwantyzacją GGUF Q8_0.
A teraz przejdźmy do zabawnej części: wzbogacimy leksykalnie wskazówkę dotyczącą modelu T5, zamieniając ją w obszerny opis pożądanej sceny. Znaczenie tej akcji jest następujące: ponieważ wersje FLUX.1 dostępne do lokalnego wykonania są destylowane, ten sam tekst wejściowy, ale z różnymi wartościami początkowymi, wygeneruje w przybliżeniu takie same kompozycje i raczej skromne pod względem środków wizualnych. Inaczej mówiąc, zmienność tego modelu jest gorsza niż SDXL, a nawet SD 1.5 – tam można było spodziewać się lawiny interpretacji w odpowiedzi na najprostsze wskazówki, choć pod względem estetycznym interpretacje te nie zawsze odpowiadały operatorowi. W przypadku FLUX.1 sytuacja jest odwrotna: estetyka obrazu, która jest generowana przez lakoniczną wskazówkę, jest najczęściej całkiem do przyjęcia (jeśli nie spróbujesz połączyć czegoś niekompatybilnego z punktu widzenia modelu, jak np. miecze i brak brody), ale zmienność jest niezwykle niewielka.
W tym miejscu na ratunek przychodzi zdolność T5 do interpretowania długich, szczegółowych opisów w ludzkim języku w sposób lapidarny, zrozumiały dla CLIP. Pozostawiając krótką linię w górnym oknie wprowadzania tekstu węzła „CLIPTextEncodeFlux”, rozszerzoną, bogatą w szczegóły i wzbogaconą o drobne szczegóły, należy umieścić w dolnym, przeznaczonym specjalnie dla T5. Jeśli znajomość języka angielskiego operatora nie jest na odpowiednim poziomie, możesz naszkicować taki opis w języku rosyjskim, a następnie skorzystać z dowolnego tłumacza online. Lub zwróć się do specjalnie stworzonych w tym celu szybkich usług ulepszających, których jest już sporo w Internecie, w tym całkowicie darmowe – jednak często z ograniczeniami co do liczby żądań w określonym przedziale czasu, ponieważ zwykle używają GPT lub inne modele chmury generatywnej do tłumaczenia tekstu na tekst. W zasadzie takie wzbogacacze tekstu można uruchomić na lokalnym komputerze PC (co więcej, integrując odpowiedni węzeł bezpośrednio z cyklogramem ComfyUI), jednak taka eskapada będzie wymagała sporej ilości zasobów obliczeniowych i czasu – szczególnie na maszynie z kartą GTX 1070; ponieważ – nie tym razem.
W efekcie z naszej początkowej podpowiedzi otrzymujemy np. kanwę werbalną:
Pośrodku eleganckiej, nowoczesnej kuchni rustykalny drewniany stół stanowi uderzający kontrast z otaczającym go współczesnym designem. Słoje stołu są bogate i różnorodne, ukazując głębokie brązy przeplatane jaśniejszymi odcieniami, wywołując poczucie ciepła. Na tej zachęcającej powierzchni znajduje się szklana butelka o eleganckim kształcie, ze zwężającą się szyjką i szeroką podstawą. Wewnątrz butelki wiruje hipnotyzująca galaktyka żywych kolorów, płynnie łącząc błękity, fiolety i róże, niczym kosmos uchwycony w miniaturowej formie. Drobne iskierki błyszczą wewnątrz, przypominając odległe gwiazdy, tworząc czarujący spektakl.
Sama kuchnia żyje świeżym, rześkim zapachem porannej bryzy przenikającej przez duże, nasłonecznione okna, oświetlając metalowe urządzenia, które lśnią jak srebrne klejnoty. Światło słoneczne załamuje się na szkle, rzucając na stół kalejdoskop kolorów, a wirujący wszechświat butelki zdaje się tańczyć i zmieniać się z każdym ulotnym promieniem. Ta harmonijna scena wywołuje uczucie zachwytu i ciekawości, zapraszając każdego, kto wejdzie do refleksji nad pięknem wszechświata zamkniętego w prostej butelce.
Modele wyposażone wyłącznie w enkodery CLIP po prostu nie będą w stanie wydobyć wszystkich informacji zawartych w tym tekście, ale z pomocą przyjdzie T5 w przypadku FLUX.1. Po umieszczeniu powstałych dwóch akapitów w drugim oknie wprowadzania tekstu węzła „CLIPTextEncodeFlux” uruchomimy cyklogram do wykonania – i zobaczymy uderzająco inny wynik w porównaniu do poprzedniego. Różnice są dosłownie uderzające: oto niezaprzeczalnie galaktyka spiralna (a nie niewyraźna bezkształtna mgławica) wewnątrz butelki, a tło wzbogacone o detale i faktura drewna, która stała się niezwykle malownicza – jednym słowem gra jest zdecydowanie warta świeca. Ponadto, co ważne z punktu widzenia szybkiego prototypowania, szybkość wykonania modelu przy różnych opcjach podpowiedzi dla CLIP i T5 pozostaje prawie taka sama.
Okazuje się, że dostosowując wprowadzany tekst do konwertera T5, operator jest w stanie znacząco wpłynąć na końcowy obraz – zarówno pod względem kompozycji jako całości, jak i detali i stylu artystycznego. Ogólna idea jest jasna: wskazówka dla CLIP powinna być prosta, zwięzła, oparta na koncepcjach, które są oczywiście dobrze reprezentowane w tablicy treningowej, natomiast cała poetyka obrazu wizualnego tworzonego przez system powinna być skoncentrowana w opisie T5.
Na ile ta poetyka wpłynie na ostateczny obraz, pokaże poniższy przykład. Po nałożeniu wzbogaconej końcówki na wejście konwertera T5, korek, który wcześniej zatykał szyjkę naszej butelki, gdzieś zniknął. Przywróćmy go na swoje miejsce – ale nie poprzez dokończenie rysunku, ale po prostu poprzez dodanie o nim wzmianki do obszernego tekstu przeznaczonego specjalnie dla T5. Aby to zrobić, po prostu zmieńmy pierwsze włączenie „szklanej butelki” na „korkowana szklana butelka”, czyli dodajmy jedno słowo do tych dwóch akapitów. A wynik – uwaga!
Zamienić butelkę na retortę chemiczną? Nie ma problemu: zamiast tego
szklana butelka o eleganckim kształcie ze zwężającą się szyjką i szeroką podstawą
Wstawmy następujący fragment do tekstu drugiej podpowiedzi:
szklana retorta z gładką, zaokrągloną szyjką prowadzącą do delikatnego dziobka, misternie zaprojektowanego do precyzyjnego nalewania
tuż poniżej – kolejny zamiennik: „Wewnątrz butelki” – na „Wewnątrz retorty”,
далее, «wirujący wszechświat butelki» → «wirujący wszechświat riposty»,
и, наконец, «w prostej butelce» → «w prostej odpowiedzi»
Tutaj wynik nie jest już tak imponujący – okap nad piecem po lewej stronie przyjął jakiś nienaturalny kształt, a stół jakoś nieprzyzwoicie rozciągnął się aż do okna. Spróbujmy sięgnąć do jednego z internetowych modeli generatywnych, aby wzbogacić podpowiedzi – zobaczmy, co zamienia się w banalne zdanie „szklana retorta na stole”. Oto co:
W słabo oświetlonym laboratorium, wypełnionym słabym zapachem chemikaliów i ostrym posmakiem szkła, na solidnym drewnianym stole stoi starannie wykonana szklana retorta, a jej powierzchnia błyszczy w migotliwym świetle lampy naftowej. Retorta ma gładką, zaokrągloną szyjkę prowadzącą do delikatnego dziobka, misternie zaprojektowanego do precyzyjnego nalewania. Mieszanka żywych niebieskich i ciemnozielonych płynów delikatnie bulgocze wewnątrz, tworząc małe, rytmiczne zmarszczki, które odbijają światło niczym maleńkie klejnoty. Wokół retorty porozrzucane notatki z pośpiesznymi bazgrołami wskazują na niedawne eksperymenty, a zakurzone półki zapełnione są kolorowymi szklanymi naczyniami, a każdy egzemplarz ma niepowtarzalny kształt i rozmiar. Atmosfera jest gęsta od oczekiwania, jakby riposta skrywała tajemnice czekające na ujawnienie, a w powietrzu unosi się słaby szept przeszłości.
Wychodząc z tego szczegółowego opisu (swoją drogą można z niego wygenerować dość ciekawy obraz) do pierwszej wzmianki o retorcie w naszym poprzednim bloku tekstu dla T5 dodajmy – „szklana retorta z gładką, zaokrągloną szyjką prowadzącą do delikatna wylewka” – już na wstępie dwa słowa: „starannie wykonana”. I ponownie uruchommy cyklogram w celu wykonania: wynik pokazano na poprzedniej ilustracji po prawej stronie.
A teraz to zupełnie inna sprawa. Choć tutaj riposta bardziej przypomina wazon, to w sumie zamierzony cel został osiągnięty: zachowując tło w niemal niezmienionym stanie, dość zauważalnie skorygowaliśmy centralny element kompozycji. Taka manipulacja podpowiedziami na poziomie pojedynczych słów – a manipulacja jest subtelna, gdyż przeprowadzana jest na poziomie delikatniejszym niż w modelu CLIP T5 – otwiera wiele możliwości dopracowania udanych pokoleń, w których coś częściowo poszło nie tak . Stabilność CLIP praktycznie gwarantuje ogólną stabilność obrazu przy stałej wartości ziarna, a zmieniające się T5 stopniowo doprowadzi operatora do pożądanego rezultatu – a ponieważ [schnelle] jest po prostu tworzone do szybkiego prototypowania, ta ścieżka nie będzie zająć zbyt dużo czasu.
Cienki; ale obrazy wyprodukowane przez [dev] wersję FLUX.1, jak już mieliśmy okazję zobaczyć, pod względem ogólnej estetyki nadal górują nad dziełami szybkiego [schnelle]. Czy naprawdę nie da się opanować szybkiego prototypowania dla modelu, który pierwotnie został zaprojektowany na 20 etapów iteracji zamiast 4 – a zatem mniej destylowany, a zatem z estetycznego punktu widzenia zdolny do uzyskania jeszcze bardziej atrakcyjnego wyniku? Na szczęście takie możliwości istnieją i następnym razem je poznamy. W międzyczasie zainteresowani mogą pobrać obrazy PNG z wbudowanymi cyklogramami, aby wygenerować butelki i retorty, które sprawdziliśmy za pomocą tego linku.
Powiązane materiały
Firma Adobe niespodziewanie udostępniła bezpłatną aplikację do rysowania Fresco.Smartfony Honor Magic7 będą miały wbudowanego agenta AI i będą oferować renderowanie AI za pomocą NPU.Midjourney uruchomi edytor obrazów AI.Gra w najwyższej lidze: recenzja rosyjskiego oprogramowania ze sztuczną inteligencją.Microsoft Paint dodał funkcje wypełniania i wymazywania AI, podobnie jak Photoshop. ⇣ Spis treści Subtelności kwantyzacji Oto twój miecz Flakon z sekretem Komentarz ( ) Wieczorne 3DNews W każdy dzień powszedni wysyłamy podsumowanie wiadomości bez żadnych bzdur i reklam. Dwie minuty na przeczytanie – i jesteś świadomy głównych wydarzeń. Powiązane materiały Po co nam sieci 6G, skoro 5G wciąż nie jest powszechne? Warsztaty rysunkowe AI, część ósma: więcej życia! Na tropie nie zmartwychwstałego „Świtu” To nie jest silikon! Albo dlaczego krzem jest tak trudny do zastąpienia Od żeberek do pierścieni, a potem do CMOS: perypetie ewolucji tranzystorów Warsztaty rysunkowe AI, część szósta: inteligentne narzędzia do detalowania (Hires. fix, ADetailer, ControlNet)