>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

Jak działa fabryka szablonów ComfyUI pod maską

Jeśli pracowałeś z ComfyUI, prawdopodobnie pamiętasz uczucie otwierania czyjegoś workflow tylko po to, by zobaczyć, jak rozpada się on z czerwonymi węzłami. Brakuje Ci kilku węzłów, model jest w złym folderze i nie wiesz, od czego zacząć z schematem. Aby rozwiązać ten problem dla wszystkich użytkowników, zespół ComfyUI stworzył repozytorium workflow_ templates.

To nie jest tylko zbiór plików JSON schematów. Deweloperzy zbudowali monorepo, które przekształca gotowe scenariusze i podgrafy w bibliotekę pakietów Python, automatycznie aktualizuje prezentację szablonów i pobiera wymagane sieci neuronowe z Hugging Face bezpośrednio do interfejsu aplikacji.

Co znajduje się w repozytorium

Oficjalne repozytorium Comfy-Org/workflow_templates zaspokaja dwa główne wymagania: dostarcza gotowe szablony generowania (obrazy, wideo, audio) oraz oferuje wielokrotnego użytku bloki węzłów, znane jako Subgraph Blueprints.

Architektura projektu opiera się na podejściu oddzielnego pakietu dla każdego typu mediów:

  • 2 i 3 zawierają pliki workflow w formacie JSON oraz podglądy dla interfejsu wyboru.
  • 4 i 5 przechowują gotowe złożone węzły (podgrafy), które pojawiają się w palecie węzłów.
  • 6 udostępnia pomocniczy loader comfyui-workflow-templates-core.
  • 7 zawiera stronę internetową opartą na Astro (templates.comfy.org) z wyszukiwaniem, obsługą 11 języków i generowaniem opisów.

Cały projekt jest dystrybuowany przez PyPI pod nazwą 8. Gdy aktualizujesz ComfyUI, nowe szablony trafiają do interfejsu stąd.

Anatomia prawidłowego szablonu ComfyUI

Najciekawszą częścią projektu są wymagania dotyczące składania szablonów. Deweloperzy nie wyrzucają po prostu wyeksportowanego grafu—przekształcają go w samodzielny pakiet.

Weźmy przykład dodania szablonu generowania wideo opartego na modelu Wan 2.1. Aby workflow stał się oficjalnym szablonem, autorzy przechodzą przez kilka obowiązkowych kroków.

Najpierw czyszczą schemat. ComfyUI jest uruchamiane z flagą 9. Gwarantuje to, że rozszerzenia stron trzecich nie zanieczyszczą JSON dodatkowymi metadanymi.

Następnie przygotowują podglądy. Dla szablonu tworzą obraz, animację WebP lub wideo. Wymiary są dostosowywane tak, aby plik ważył jak najmniej. Zazwyczaj stosują kompresję z jakością zredukowaną do 65%.

Kolejnym krokiem jest osadzenie powiązań modeli bezpośrednio w węzłach. Użytkownicy nie muszą szukać, który model VAE lub CLIP pobrać ręcznie. Bezpośredni URL z Hugging Face, hash SHA256 i katalog docelowy są dodawane bezpośrednio do właściwości węzła (10).

Oto jak wygląda osadzenie metadanych modelu VAE w pliku JSON workflow:

0

Dzięki temu wpisowi ComfyUI wie, który plik brakuje, weryfikuje jego sumę kontrolną i automatycznie pobiera wagi do folderu 11.

Hashy i linki pochodzą bezpośrednio ze strony pliku na Hugging Face.

Oprócz modeli można osadzić minimalną wersję rdzenia ComfyUI lub konkretną wersję niestandardowego węzła we właściwościach węzła. Na przykład węzłowi 12 nadaje się 13, aby użytkownik zobaczył ostrzeżenie, jeśli jego klient jest nieaktualny.

Wszystkie szablony są rejestrowane w jednym pliku konfiguracyjnym 14.

Co to są te Subgraph Blueprints

Oprócz kompletnych scenariuszy ComfyUI wykorzystuje podgrafy. Złożona kombinacja kilkunastu węzłów jest pakowana w pojedynczy blok z jasnymi wejściami i wyjściami.

W repozytorium schematy takich bloków są przechowywane w folderze 15. Plik schematu zawiera opis interfejsu i strukturę połączeń wewnętrznych:

1

Deweloper tworzy taki węzeł w interfejsie graficznym poprzez "Create Subgraph", eksportuje JSON i uruchamia skrypt normalizacyjny 16. Po tym blok staje się dostępny w standardowej palecie węzłów ComfyUI dla wszystkich użytkowników.

Automatyzacja budowania i lokalizacji

Przepływ pracy z treścią jest interesujący. Każda zmiana szablonów wymaga synchronizacji manifestu i tłumaczenia na 11 języków.

Skrypty Python z katalogu 17 obsługują synchronizację:

  • 18 dystrybuuje szablony między pakietami mediów i składa wspólny manifest.
  • 19 pobiera zmienione ciągi znaków do pojedynczego pliku tłumaczeń 20 i dystrybuuje zlokalizowane pliki, takie jak 21 lub 22.

Strona katalogu w folderze 23 jest budowana z Astro. Podczas budowania wysyła zapytania do API centrum szablonów. Zmienna środowiskowa 24 filtruje społecznościowe workflow niezatwierdzone do produkcji, ale pozostawia je w środowiskach podglądu testowego.

Wdrożenie jest powiązane z GitHub Actions. Codziennie o 00:00 UTC uruchamiane są automatyczne przebudowy środowisk testowych. Gdy wersja jest podnoszona w głównym 25, CI określa, które subpakiety się zmieniły i publikuje świeże wydania do PyPI.

Opcje interaktywnego podglądu

Dla każdego szablonu w katalogu, zamiast tylko statycznego obrazu, definiowany jest element interaktywny. Repozytorium obsługuje kilka opcji wyświetlania kart:

  • Standardowy obraz lub GIF.
  • Suwak porównawczy przed i po dla ewaluacji przetwarzania, jak ControlNet.
  • Odtwarzacz do demonstracji generowanego wideo lub audio.
  • Efekty hover z powiększeniem lub płynnymi przejściami klatek.

Kto znajdzie to repozytorium przydatne

Jeśli piszesz niestandardowe węzły dla ComfyUI lub budujesz pipeline'y dla zadań generatywnych, zdecydowanie powinieneś rzucić okiem na workflow_templates.

Po pierwsze, to przewodnik referencyjny po specyfikacji formatu JSON ComfyUI. Z kodu repozytorium możesz zobaczyć, jak prawidłowo formatować manifesty, linkować zależności modeli i określać hashe wag.

Po drugie, możesz przesłać własny Pull Request ze swoim workflow lub podgrafem. Jeśli schemat przejdzie automatyczną walidację i sprawdzenia kompatybilności węzłów (26), zostanie uwzględniony w standardowej dystrybucji ComfyUI.

Aby zapoznać się ze strukturą lokalnie, wystarczy sklonować repozytorium i uruchomić polecenie generowania pakietu 27.

Powiązane projekty