Stable Diffusion w macOS: porównanie lokalnych narzędzi do generowania obrazów

Tłumaczenie automatyczne Ten artykuł został automatycznie przetłumaczony z angielskiego oryginału.

Uruchamianie modeli obrazowych lokalnie w macOS to przede wszystkim kwestia wyboru narzędzi. Draw Things, DiffusionBee, ComfyUI, AUTOMATIC1111 i Fooocus mają częściowo pokrywające się możliwości, ale różnią się konfiguracją, obsługą modeli, kontrolą nad workflow, rozszerzeniami i automatyzacją.

Aplikacja typu drag-and-drop pozwala szybko rozpocząć pracę, natomiast graph węzłów wymaga więcej czasu na naukę, ale zapewnia większy wgląd w pipeline. Na Apple Silicon na dopasowanie generowania do pamięci wpływają aplikacja, rodzina modeli, precision, rozmiar obrazu i workflow. Wybierz interfejs na podstawie pracy, którą musisz odtworzyć, a następnie przetestuj dokładny model i ustawienia.

TL;DR. Zacznij od Draw Things lub DiffusionBee, gdy do wykonania zadania wystarcza natywna aplikacja. Użyj ComfyUI, gdy sam graph musi być analizowany, udostępniany lub automatyzowany. Wybierz AUTOMATIC1111 tylko wtedy, gdy workflow zależy od jego interfejsu lub rozszerzeń. Traktuj Fooocus jako workflow z epoki SDXL, a nie jako drogę do obsługi współczesnych modeli: jego oficjalny projekt znajduje się w ograniczonym trybie długoterminowego utrzymania.

Plik modelu nie jest przenośnym workflow

Warstwy lokalnego workflow generowania obrazówWarstwy lokalnego workflow generowania obrazów

Kilka aplikacji potrafi wczytywać pliki .safetensors, ale zgodne rozszerzenie pliku nie oznacza, że model będzie działać. Kompletny pipeline może również wymagać określonej architektury, text encodera, VAE, schedulera, ControlNet, LoRA, tokenizera lub konfiguracji właściwej dla danej aplikacji.

Zapisuj wszystko, co doprowadziło do wygenerowania obrazu:

  • aplikację i jej wersję
  • repozytorium modelu, revision i licencję
  • każdy komponent modelu i adapter
  • prompt, negative prompt, seed, sampler, liczbę kroków, guidance i wymiary
  • plik graphu lub workflow, jeśli aplikacja go udostępnia

Ten zapis ma większe znaczenie niż popularność aplikacji. Ten sam seed może nadal wygenerować inny obraz po zmianie backendu, modelu, samplera lub precision.

Pamięć unified jest współdzielona, ale nie jest nieograniczona

Budżet pamięci współdzielonej dla diffusion na Apple SiliconBudżet pamięci współdzielonej dla diffusion na Apple Silicon

Firma Apple opisuje, że jej GPUs korzystają z modelu unified memory, w którym CPU i GPU współdzielą pamięć systemową, choć dostęp do zasobów nadal zależy od trybu przechowywania Metal. Eliminuje to osobną granicę kopiowania, ale macOS i każda otwarta aplikacja korzystają z tej samej fizycznej pojemności; Monitor aktywności pokazuje użycie pamięci przez aplikacje, pamięci wired, pamięci skompresowanej i swapu.

W przypadku generowania obrazów potraktuj to jako koncepcyjny rejestr szczytowego zużycia pamięci, a nie wzór doboru sprzętu:

peak memory ≈ model components
            + intermediate activations
            + attention and runtime workspace
            + loaded adapters and control models
            + application and OS memory

Rozdzielczość, batch size, architektura modelu, precision, upscaling, ControlNet oraz to, czy komponenty pozostają w pamięci, zmieniają wynik. Żadne źródło Apple nie przekształca tego rejestru w uniwersalną regułę „8/16/32 GB”, więc wybór maszyny na jego podstawie jest wnioskiem wynikającym z testu workflow. Przetestuj docelowy workflow, a następnie obserwuj Memory Pressure i Swap Used; utrzymujące się użycie swapu wskazuje, że należy zmniejszyć obciążenie lub wybrać więcej pamięci.

Wybierz narzędzie na podstawie stanu, który musisz kontrolować

NarzędziePrzydatny zakres kontroliKompromis operacyjny
Draw ThingsNatywny interfejs Apple z lokalnymi modelami, adapterami, ControlNet i skryptamiGęsty, specyficzny dla produktu interfejs; sprawdź obsługę dokładnej rodziny modeli
DiffusionBeeSpakowana aplikacja macOS ze zintegrowanym workflow generowaniaWygoda kosztem inspekcji na poziomie graphu; należy sprawdzić tempo wydań i obsługiwane rodziny
ComfyUIJawny graph węzłów, workflow w JSON, API i custom nodesWięcej elementów; graphy i węzły firm trzecich stają się zależnościami
AUTOMATIC1111Web UI oparte na formularzach, skrypty, API i duży zakres rozszerzeńApple Silicon ma udokumentowane ograniczenia funkcjonalne i wydajnościowe; rozszerzenia poszerzają granicę zaufania
FooocusOpiniotwórczy workflow SDXL oparty przede wszystkim na promptachOficjalnie ograniczone LTS obejmujące wyłącznie poprawki błędów; wskazówki dotyczące Maca są nieoficjalne i słabo przetestowane

Tabela nie jest rankingiem. Pokazuje, gdzie znajduje się stan workflow: wewnątrz aplikacji, w formularzu czy w graphie, który można przeanalizować.

Draw Things: natywna obsługa i skrypty

Draw Things to aplikacja na platformy Apple do lokalnego generowania obrazów. Jej aktualna dokumentacja obejmuje modele, LoRAs, ControlNet, textual inversion, Core ML i wersjonowane skrypty JavaScript.

Wybierz ją, gdy praca powinna pozostać w natywnej aplikacji, ale wymagać większej kontroli niż samo pole promptu. Przed standaryzacją zaimportuj dokładne komponenty modelu i odtwórz jeden reprezentatywny workflow edycji, adaptera lub sterowania. „Natywność” opisuje interfejs i implementację; nie gwarantuje obsługi ani szybkości dla każdej nowej architektury.

DiffusionBee: spakowany workflow dla macOS

DiffusionBee łączy pobieranie modeli i typowe zadania generowania w aplikacji desktopowej. Dokumentacja projektu wymienia image-to-image, inpainting, outpainting, ControlNet, LoRA i SDXL. Informacje o wydaniu DiffusionBee 2.5.3 podają, że obsługa Flux.1 jest dostępna wyłącznie na komputerach Mac z arm64, działających pod macOS 13 lub nowszym.

Wybierz ją, gdy instalacja i zintegrowany interfejs są ważniejsze niż eksport graphu pipeline’u. Przed pobraniem dużego modelu sprawdź najnowsze wydanie i dokładną architekturę. Etykieta funkcji, taka jak „Flux support”, nie oznacza, że zostanie wczytany każdy wariant pochodny, każda kwantyzacja ani każdy komponent pomocniczy.

ComfyUI: workflow jest artefaktem

ComfyUI przedstawia generowanie jako graph węzłów. Workflow można zapisać jako JSON niezależnie od wyniku, dzięki czemu pipeline można analizować i wersjonować. Executor potrafi również pomijać ponowne obliczanie tych fragmentów graphu, których dane wejściowe się nie zmieniły.

Comfy Desktop to menedżer wielu instalacji lokalnych instancji ComfyUI. Aktualna dokumentacja macOS obsługuje Apple Silicon na macOS 13 lub nowszym i instaluje aplikację z pobranego pliku .dmg. Jeśli wolisz Homebrew, aktualny cask to comfy (a nie comfyui):

brew install --cask comfy

Wybierz ComfyUI, gdy pipeline ma gałęzie, komponenty wielokrotnego użytku, wiele modeli lub automatyzację. Przechowuj razem JSON, wersję aplikacji, wersje core nodes, revision custom nodes oraz manifest modeli.

Custom nodes są wykonywalnymi zależnościami. Przeanalizuj ich kod źródłowy i skrypty instalacyjne, przypnij revision i odizoluj środowisko. Graph pochodzący od nieznanego autora może odwoływać się do kodu i modeli, których nie poddałeś audytowi.

AUTOMATIC1111: zgodność z uznanym Web UI

AUTOMATIC1111 Stable Diffusion WebUI udostępnia ustawienia generowania przez interfejs przeglądarkowy oraz obsługuje skrypty, rozszerzenia i API. Wybierz je, gdy konkretna instrukcja, automatyzacja lub rozszerzenie stanowi już część wymagań.

Oficjalny przewodnik dotyczący Apple Silicon opisuje wyjątki i ograniczenia wydajnościowe, w tym słabą wydajność trenowania. Przed przyjęciem konfiguracji z dużą liczbą rozszerzeń potwierdź, że wymagana funkcja działa na docelowych wersjach macOS i PyTorch.

Rozszerzenia uruchamiają kod wewnątrz środowiska aplikacji. Przypinaj ich wersje, analizuj aktualizacje i utrzymuj usługę na loopbacku, chyba że zdalny dostęp jest celowy i odpowiednio zabezpieczony.

Fooocus: ograniczona opcja z epoki SDXL

Fooocus celowo ukrywa wiele decyzji technicznych za opiniotwórczym workflow opartym przede wszystkim na promptach. Może to być przydatne, gdy jego domyślne ustawienia odpowiadają zadaniu.

Aktualny README projektu informuje, że Fooocus jest zbudowany wokół SDXL i znajduje się w ograniczonym trybie długoterminowego utrzymania, obejmującym wyłącznie poprawki błędów. Informuje również, że Mac nie jest intensywnie testowany, a instalacja na Macu jest opisywana jako nieoficjalna. Fooocus jest więc ograniczonym wyborem dla istniejącego workflow Fooocus, a nie domyślną drogą do nowych architektur ani do konfiguracji macOS, którą planujesz utrzymywać.

Uruchom jeden reprezentatywny test akceptacyjny

Ścieżka decyzyjna wyboru workflow obrazowego dla macOSŚcieżka decyzyjna wyboru workflow obrazowego dla macOS

Przed wyborem narzędzia użyj niewielkiego zestawu testów akceptacyjnych:

  1. Odtwórz bazowy wynik text-to-image na podstawie zapisanego seeda i ustawień.
  2. Uruchom najtrudniejszą wymaganą operację: inpainting, ControlNet, LoRA, upscale lub graph wieloetapowy.
  3. Uruchom ponownie aplikację i odtwórz workflow z zapisanych artefaktów.
  4. Zmierz czas zimnego startu, czas generowania, szczytowe Memory Pressure i wymiary wyniku.
  5. Przenieś workflow na czyste konto użytkownika lub inną maszynę i wypisz każdą brakującą zależność.
  6. Zweryfikuj bindowanie do sieci lokalnej, pobieranie plików, ustawienia analityki, licencje i pochodzenie modeli.

Nie porównuj narzędzi przy użyciu różnych checkpointów, rozdzielczości, liczby kroków lub precision, a następnie nie nazywaj wyniku benchmarkiem runtime’u.

Praktyczny wybór domyślny

W pracy eksploracyjnej zacznij od natywnej aplikacji i modelu, który jest przez nią udokumentowany. Przejdź do ComfyUI, gdy sam workflow zacznie mieć wartość: gdy trzeba go analizować, powtarzać, automatyzować lub przekazywać innym osobom. Pozostań przy AUTOMATIC1111 lub Fooocus, jeśli istniejąca zależność sprawia, że ich konkretny interfejs jest użyteczny.

Warto zachować najmniejszy odtwarzalny pakiet zawierający identyfikatory modeli, parametry, zależności i stan workflow, który pozwoli ponownie wygenerować wynik.

Referencje