Stable Diffusion auf macOS: Lokale Bildtools im Vergleich

Automatische Übersetzung

Dieser Artikel wurde automatisch aus der englischen Originalversion übersetzt.

Wer Bildmodelle lokal unter macOS ausführen will, muss zuerst ein Tool auswählen. Dieser Leitfaden richtet sich an Mac-Nutzer, die Bilder lokal generieren wollen. Du erfährst, wofür sich jedes von sechs Tools eignet, wie du es installierst, was ein Model außer seiner Datei noch braucht und wie du ein Tool auf deinem Rechner testest, bevor du dich festlegst.

Draw Things, DiffusionBee, ComfyUI, InvokeAI, AUTOMATIC1111 und Fooocus überschneiden sich, unterscheiden sich aber bei Einrichtung, Model-Unterstützung, Kontrolle über den Workflow, Erweiterungen, Automatisierung und Wartung. Mit einer Drag-and-drop-App kommst du schnell los. Ein Node-Graph braucht mehr Einarbeitung, legt dafür aber mehr von der Pipeline offen. Auf Apple Silicon bestimmen Anwendung, Model-Familie, Präzision, Bildgröße und Workflow, ob die Generierung in den Speicher passt.

Was eine lokale Bild-App ausführt

Jedes Tool in diesem Leitfaden führt dieselbe Art von Pipeline aus. Im Zentrum steht der Denoiser: ein U-Net bei SD 1.5 und SDXL, ein Transformer bei Flux.1. Er startet mit zufälligem Rauschen und entfernt davon in jedem Schritt ein wenig, gesteuert vom Prompt. Die übrigen Teile bereiten seine Eingaben vor oder machen aus seiner Ausgabe ein Bild:

TeilWas es tut
CheckpointDie Haupt-Model-Datei. Sie enthält den Denoiser und bei SD 1.5 und SDXL meist auch den Text Encoder und den VAE. Flux.1 liefert diese Teile oft als separate Dateien aus.
Text EncoderWandelt den Prompt in Zahlen um, die der Denoiser verwenden kann. Ein Tokenizer zerlegt den Prompt zuerst in Tokens.
VAEWandelt zwischen Pixeln und dem kleineren „latenten“ Bild um, auf dem der Denoiser arbeitet. Sein Decoder macht aus dem finalen Latent das Bild, das du siehst.
Sampler und SchritteDer Seed legt das Start-Rauschen fest. Der Sampler entscheidet zusammen mit seinem Scheduler, wie viel Rauschen jeder Schritt entfernt. Mehr Schritte dauern länger.
LoRAEine kleine Zusatzdatei, die Stil oder Motiv der Model-Familie verändert, für die sie trainiert wurde. Ein Textual-Inversion-Embedding ist eine kleinere Zusatzdatei, die dem Text Encoder ein neues Wort beibringt.
ControlNetEin zusätzliches Model, das die Bildkomposition anhand eines Kontrollbilds steuert, etwa einer Pose, einer Tiefenkarte oder einer Kantenkarte.

In der Abbildung folgst du dem Latent vom Seed-Rauschen bis zu Schritt N: Der Prompt erreicht den Denoiser in jedem Schritt, die Balken zeigen, wie viel Rauschen übrig ist, LoRA und ControlNet sind optionale Eingaben, und der VAE-Decoder macht aus dem kleinen Latent das Bild. Die CHECKPOINT-Marken zeigen die Teile, die eine Checkpoint-Datei meist enthält.

Seed-Rauschen wird über Denoiser-Schritte zu einem sauberen Latent, mit dem Prompt als Eingabe in jedem Schritt, optionalen LoRA- und ControlNet-Eingaben und einem VAE-Decoder, der das Latent in das Bild umwandeltSeed-Rauschen wird über Denoiser-Schritte zu einem sauberen Latent, mit dem Prompt als Eingabe in jedem Schritt, optionalen LoRA- und ControlNet-Eingaben und einem VAE-Decoder, der das Latent in das Bild umwandelt

Models beschaffen

Die meisten Tools können ein Starter-Model für dich herunterladen. Für alles andere decken zwei Seiten fast jeden Bedarf ab:

  • Hugging Face hostet die offiziellen Basis-Models von Stability AI, Black Forest Labs und anderen. Lies die Lizenz auf der Model Card: Lizenzen unterscheiden sich sogar innerhalb einer Familie, etwa bei FLUX.1 [schnell] (Apache 2.0) und FLUX.1 [dev] (eine nicht-kommerzielle Lizenz). Bei manchen Repositories musst du die Lizenz akzeptieren, bevor der Download beginnt.
  • Civitai hostet Checkpoints, LoRAs und Embeddings aus der Community. Jede Seite nennt das Basis-Model, für das die Datei trainiert wurde.

Bevorzuge .safetensors-Dateien. Eine .ckpt-Datei ist ein Python-Pickle, und das Laden eines Pickles kann beliebigen Code ausführen. Eine .safetensors-Datei speichert nur Tensoren. Lade eine .ckpt-Datei nur aus einer Quelle, der du vertraust.

Bevor du mehrere Gigabyte herunterlädst, gleiche die Model-Familie (SD 1.5, SDXL, Flux.1 und so weiter) mit dem ab, was dein Tool unterstützt. Ein für SDXL trainiertes LoRA funktioniert nicht mit einem SD-1.5-Checkpoint.

Eine Model-Datei ist kein portabler Workflow

Mehrere Anwendungen können .safetensors-Dateien laden, aber eine passende Dateiendung heißt nicht, dass das Model funktioniert. Eine vollständige Pipeline kann zusätzlich eine bestimmte Architektur, einen bestimmten Text Encoder, VAE, Scheduler, ControlNet, LoRA oder eine anwendungsspezifische Konfiguration verlangen.

Halte alles fest, was ein Bild erzeugt hat:

  • Anwendung und Version
  • Model-Repository, Revision und Lizenz
  • jede Model-Komponente und jeden Adapter
  • Prompt, Negative Prompt, Seed, Sampler, Schritte, Guidance und Abmessungen
  • Graph- oder Workflow-Datei, wenn die Anwendung eine bereitstellt

Derselbe Seed kann nach einem Wechsel von Backend, Model, Sampler oder Präzision trotzdem ein anderes Bild liefern.

Speicher, Festplattenplatz und die Software unter jedem Tool

Auf Apple Silicon teilen sich CPU und GPU einen einzigen Speicherpool. Die GPU kann den größten Teil davon nutzen, daher kann ein Mac mit 32 GB Models laden, die nicht auf eine typische Grafikkarte mit 8 bis 12 GB passen. Derselbe Pool enthält aber auch macOS und jede geöffnete App. Die Aktivitätsanzeige zeigt die Nutzung durch Apps, fest zugewiesenen, komprimierten und ausgelagerten Speicher.

Der Spitzenspeicher während der Generierung besteht aus vier Teilen: den Model-Komponenten, dem Arbeitsspeicher für Activations und Attention, allen geladenen Adaptern und Kontroll-Models sowie dem Speicher, den macOS und deine Apps bereits belegen. Der obere Teil der Abbildung zeigt sie als Teile desselben Speichers sowie den Speicher, der frei bleibt; er ist keine Formel zur Dimensionierung. Der untere Teil vergleicht beispielhafte Download-Größen ohne Quantization. Diese Balken messen den Speicherplatz auf dem Datenträger, nicht den Speicherbedarf zur Laufzeit.

Oben: CPU und GPU teilen sich den Speicher für macOS und Apps, Model-Komponenten, Arbeitsspeicher, LoRA und ControlNet; ein Teil bleibt frei. Unten: beispielhafte Downloads ohne Quantization mit etwa 4 GB für einen SD-1.5-Checkpoint, 7 GB für einen SDXL-Checkpoint und 24 plus 10 GB für den FLUX.1-schnell-Transformer und den T5-Encoder. Die Dateigröße misst den Speicherplatz auf dem Datenträger, nicht den Speicherbedarf zur LaufzeitOben: CPU und GPU teilen sich den Speicher für macOS und Apps, Model-Komponenten, Arbeitsspeicher, LoRA und ControlNet; ein Teil bleibt frei. Unten: beispielhafte Downloads ohne Quantization mit etwa 4 GB für einen SD-1.5-Checkpoint, 7 GB für einen SDXL-Checkpoint und 24 plus 10 GB für den FLUX.1-schnell-Transformer und den T5-Encoder. Die Dateigröße misst den Speicherplatz auf dem Datenträger, nicht den Speicherbedarf zur Laufzeit

Auflösung, Batch-Größe, Model-Architektur, Upscaling und ControlNet verändern den Speicherbedarf zur Laufzeit. Die Download-Größe schätzt den Speicherplatz auf dem Datenträger; der Speicherbedarf zur Laufzeit hängt von der Präzision und Quantization ab, die die App lädt, davon, welche Komponenten geladen bleiben, und von temporären Tensoren während der Generierung. Quantization speichert Weights mit weniger Bits, und Draw Things kann FLUX.1-Weights bei Bedarf laden, statt alle im Speicher zu halten. Teste den geplanten Workflow und beobachte dann Speicherdruck und Verwendeter Swap. Anhaltendes Swapping zeigt, dass du die Last verringern oder mehr Speicher wählen solltest.

Plane den Speicherplatz auf dem Datenträger separat. Zu diesen Downloads ohne Quantization auf Hugging Face gehören ein SD-1.5-Checkpoint mit etwa 4 GB und ein SDXL-Basis-Checkpoint mit etwa 7 GB. Der FLUX.1-[schnell]-Transformer allein ist etwa 24 GB groß, und ein 16-Bit-T5-Text-Encoder fügt etwa 10 GB hinzu. FLUX braucht weitere Komponenten, daher sind diese beiden Dateien nicht der vollständige Download. Wenn auf deinem Mac wenig Platz ist, bewahre die Model-Ordner auf einer externen SSD auf.

Die Tools unterscheiden sich auch in der Software zwischen ihnen und der GPU. ComfyUI, AUTOMATIC1111, Fooocus und InvokeAI sind Python-Apps, die auf dem Metal-Backend von PyTorch laufen, genannt MPS (Metal Performance Shaders). Ihre Funktionen und ihre Geschwindigkeit hängen daher von der installierten PyTorch-Version ab. Draw Things nutzt eine eigene Engine mit Kerneln für Metal FlashAttention. Alle enden bei Metal und demselben Unified-Memory-Pool.

Sechs Tools im Vergleich

ToolInstallationWas du steuern kannstBetrieblicher Kompromiss
Draw ThingsMac App StoreNative Apple-Oberfläche mit lokalen Models, Adaptern, ControlNet und SkriptenDichte, produktspezifische Oberfläche; Unterstützung für die genaue Model-Familie prüfen
DiffusionBeeDMG-DownloadPaketierte macOS-App mit integriertem Generierungs-WorkflowKein Release seit 2.5.3 im August 2024; keine Unterstützung für danach veröffentlichte Model-Familien
ComfyUIComfy-Desktop-DMG oder brew install --cask comfyExpliziter Node-Graph, JSON-Workflows, API und Custom NodesMehr Komponenten; Graphen und Custom Nodes von Dritten werden zu Abhängigkeiten
InvokeAIInvoke-Launcher-DMGCanvas mit Inpainting und Outpainting sowie ein Node-Workflow-EditorBraucht macOS 14 oder neuer; die Doku empfiehlt 16 GB Speicher oder mehr
AUTOMATIC1111Homebrew-Pakete, git clone und ./webui.shFormularbasierte Web-Oberfläche, Skripte, API und viele ErweiterungenLetztes Release im Februar 2025; dokumentierte Einschränkungen auf Apple Silicon; Erweiterungen führen Code von Dritten in derselben Umgebung aus
Fooocusgit clone und eine conda-Umgebung (auf dem Mac inoffiziell)Eigenwilliger, Prompt-zentrierter SDXL-WorkflowNur Bugfixes; die Anleitung für den Mac ist inoffiziell und kaum getestet

Die Tabelle zeigt, wo deine Einstellungen gespeichert werden: in der App, in einem Web-Formular oder in einer Graph-Datei, die du prüfen kannst. Die Abbildung beginnt bei einer nativen App und zeigt, wann du zu einem anderen Tool wechselst, mit einer Skizze, wo jedes Tool deine Einstellungen speichert. Führe den Abnahmetest am Ende dieses Artikels aus, bevor du dich auf eines davon festlegst.

Beginne mit Draw Things oder DiffusionBee; wechsle zu ComfyUI, wenn der Workflow geprüft oder automatisiert werden muss, zu InvokeAI, wenn die Arbeit im Bearbeiten von Bildbereichen besteht, und zu AUTOMATIC1111 oder Fooocus nur, wenn ein bestehender Workflow von ihnen abhängtBeginne mit Draw Things oder DiffusionBee; wechsle zu ComfyUI, wenn der Workflow geprüft oder automatisiert werden muss, zu InvokeAI, wenn die Arbeit im Bearbeiten von Bildbereichen besteht, und zu AUTOMATIC1111 oder Fooocus nur, wenn ein bestehender Workflow von ihnen abhängt

Draw Things: native Bedienung und Skripting

Draw Things ist eine Anwendung für Apple-Plattformen zur lokalen Bildgenerierung. Installiere sie aus dem Mac App Store; sie braucht weder Python noch Terminal. Die aktuelle Dokumentation behandelt Models, LoRAs, ControlNet, Textual Inversion, Core ML und versioniertes JavaScript-Scripting.

Wähle sie, wenn die Arbeit in einer nativen Anwendung bleiben soll, aber mehr Kontrolle braucht als ein Prompt-Feld. Importiere vor der Standardisierung die genauen Model-Komponenten und reproduziere eine repräsentative Bearbeitung, einen Adapter oder einen Kontroll-Workflow. „Nativ“ beschreibt die Oberfläche und die Implementierung; es garantiert weder Unterstützung noch Geschwindigkeit für jede neue Architektur.

DiffusionBee: paketierter macOS-Workflow

DiffusionBee bündelt Model-Download und gängige Generierungsaufgaben in einer Desktop-Anwendung. Lade das DMG herunter und verschiebe die App in den Programme-Ordner. Die Projektdokumentation nennt Image-to-Image, Inpainting, Outpainting, ControlNet, LoRA und SDXL, und die App bringt Upscaling mit. Die Release Notes zu DiffusionBee 2.5.3 nennen Flux.1-Unterstützung nur auf arm64-Macs mit macOS 13 oder neuer.

Das letzte DiffusionBee-Release, 2.5.3, erschien im August 2024, und die Download-Seite auf diffusionbee.com verlinkt weiterhin 2.5.1. Lade 2.5.3 von der GitHub-Releases-Seite. Erwarte keine Unterstützung für Model-Familien, die danach veröffentlicht wurden. Wähle es, wenn Installation und eine integrierte Oberfläche wichtiger sind als der Export eines Pipeline-Graphen und wenn das benötigte Model bereits in seiner Liste steht. Ein Funktionslabel wie „Flux-Unterstützung“ heißt nicht, dass jede Ableitung, Quantization oder Hilfskomponente geladen wird.

ComfyUI: ein Workflow als Datei

ComfyUI stellt die Generierung als Node-Graph dar. Jeder Schritt ist ein Node, und der Graph kann sich verzweigen: Ein Graph kann ein Bild erzeugen, hochskalieren und an einen Node zur Gesichtsrestaurierung aus einem Custom-Node-Paket weiterreichen. Ein Workflow lässt sich unabhängig von seiner Ausgabe als JSON speichern, wodurch die Pipeline prüfbar und versionierbar wird. Sein Executor kann außerdem vermeiden, Graph-Abschnitte neu zu berechnen, deren Eingaben sich nicht geändert haben.

Comfy Desktop ist ein Manager für mehrere lokale ComfyUI-Installationen. Die aktuelle macOS-Dokumentation unterstützt Apple Silicon ab macOS 13 oder neuer. Die Installation erfolgt über eine heruntergeladene .dmg. Wenn du Homebrew bevorzugst, heißt der aktuelle Cask comfy (nicht comfyui):

brew install --cask comfy

Wähle ComfyUI, wenn eine Pipeline Verzweigungen, wiederverwendbare Komponenten, mehrere Models oder Automatisierung enthält. Bewahre das JSON, die Anwendungsversion, die Versionen der Core Nodes, die Revisionen der Custom Nodes und das Model-Manifest zusammen auf.

Wie führst du denselben Graphen aus einem Skript mit einem neuen Seed aus? Exportiere den Graphen über File → Export Workflow (API). Das API-Format schlüsselt jeden Node nach seiner numerischen ID auf und behält nur die Eingaben, die zum Ausführen nötig sind. Sende ihn dann an den /prompt-Endpoint des lokalen Servers:

import json
import random
import urllib.request

COMFY_URL = "http://127.0.0.1:8188"  # check the port first, see below
SAMPLER_NODE = "3"  # the KSampler node ID in your exported file

with open("workflow_api.json") as f:
    workflow = json.load(f)

workflow[SAMPLER_NODE]["inputs"]["seed"] = random.randint(0, 2**32 - 1)

request = urllib.request.Request(
    f"{COMFY_URL}/prompt",
    data=json.dumps({"prompt": workflow}).encode("utf-8"),
    headers={"Content-Type": "application/json"},
)
with urllib.request.urlopen(request) as response:
    print(json.load(response))  # includes the prompt_id of the queued run

Sieh dir in der exportierten Datei zwei Dinge an: die ID des Sampler-Nodes ("3" in ComfyUIs eigenem API-Beispiel) und sein Feld inputs, das Seed, Schritte und Sampler-Namen enthält. Prüfe den Port, bevor du das Skript ausführst: Eine manuelle Installation lauscht standardmäßig auf 8188, Comfy Desktop kann einen anderen Port verwenden, der in den Server-Einstellungen steht.

Custom Nodes sind ausführbare Abhängigkeiten. Prüfe ihren Quellcode und ihre Installationsskripte, pinne Revisionen und isoliere die Umgebung. Ein Graph von einem unbekannten Autor kann auf Code und Models verweisen, die du nicht geprüft hast.

InvokeAI: eine Canvas für Inpainting und Outpainting

InvokeAI arbeitet mit einer Canvas: Du wählst den zu ändernden Bereich mit einer Maske aus und generierst in derselben Ansicht weiter. Inpainting generiert einen maskierten Bereich innerhalb des Bildes neu; Outpainting erweitert das Bild über seine vorhandenen Ränder hinaus. Es hat außerdem einen knotenbasierten Workflow-Editor für Pipelines, die du speichern und teilen willst. Das Projekt liefert weiterhin regelmäßig Releases aus; v6.14.2 erschien im September 2026.

Installiere es mit dem Invoke Launcher: Öffne das DMG, ziehe den Launcher in den Programme-Ordner und starte ihn. Der Launcher installiert Python und Invoke für dich. Die Systemanforderungen nennen macOS 14 oder neuer und besagen, dass alle Apple-Silicon-Macs funktionieren, wobei 16 GB Speicher oder mehr empfohlen werden.

Wähle es, wenn du meist Teile eines Bildes bearbeitest, statt ganze Bilder aus einem Prompt zu generieren.

AUTOMATIC1111: Kompatibilität mit einer etablierten Web-Oberfläche

AUTOMATIC1111 Stable Diffusion WebUI stellt die Generierungseinstellungen über eine Browser-Oberfläche bereit und unterstützt Skripte, Erweiterungen und eine API. Wähle es, wenn ein bestimmtes Tutorial, eine Automatisierung oder eine Erweiterung bereits Teil der Anforderung ist. Das letzte Release, v1.10.1, erschien im Februar 2025. Prüfe daher die Unterstützung für jede später veröffentlichte Model-Familie, bevor du dich entscheidest.

Auf dem Mac läuft es auf dem MPS-Backend von PyTorch. Die offizielle Anleitung für Apple Silicon installiert es über das Terminal; ./webui.sh legt beim ersten Start eine Python-Umgebung an und installiert die restlichen Abhängigkeiten:

brew install cmake protobuf rust python@3.10 git wget
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
./webui.sh

Dieselbe Anleitung dokumentiert Ausnahmen und Leistungsgrenzen, darunter eine schwache Trainingsleistung. Prüfe auf den Ziel-Versionen von macOS und PyTorch, dass die benötigte Funktion läuft, bevor du ein Setup mit vielen Erweiterungen übernimmst.

Erweiterungen führen Code innerhalb der Anwendungsumgebung aus. Pinne sie, prüfe Updates und lass den Dienst auf Loopback, sofern ein Fernzugriff nicht gewollt und geschützt ist.

Fooocus: nur SDXL, nur Bugfixes

Fooocus verbirgt viele technische Entscheidungen bewusst hinter einem eigenwilligen, Prompt-zentrierten Workflow. Das kann nützlich sein, wenn seine Voreinstellungen zur Aufgabe passen.

Die aktuelle README des Projekts sagt, Fooocus sei um SDXL herum gebaut und befinde sich im eingeschränkten Langzeit-Support mit ausschließlich Bugfixes. Sie sagt auch, der Mac werde nicht intensiv getestet, und beschreibt die Mac-Installation als inoffiziell: eine conda-Umgebung, ein git clone und python entry_with_update.py, das beim ersten Start die SDXL-Models herunterlädt. Damit ist Fooocus eine Wahl für einen bestehenden Fooocus-Workflow, nicht der Standardweg für neue Architekturen oder für ein macOS-Setup, das du langfristig pflegen willst.

Einen repräsentativen Abnahmetest durchführen

Führe vor der Festlegung auf ein Tool einen kleinen Abnahmetest durch:

  1. Reproduziere ein Text-zu-Bild-Basisergebnis aus einem aufgezeichneten Seed und aufgezeichneten Einstellungen.
  2. Führe die anspruchsvollste benötigte Operation aus: Inpainting, ControlNet, LoRA, Upscaling oder einen mehrstufigen Graphen.
  3. Starte die Anwendung neu und reproduziere den Workflow aus gespeicherten Dateien.
  4. Miss Cold Start, Generierungszeit, Spitzen-Speicherdruck und Ausgabeabmessungen.
  5. Übertrage den Workflow auf einen sauberen Benutzeraccount oder Rechner und liste jede fehlende Abhängigkeit auf.
  6. Prüfe lokale Netzwerkbindung, Downloads, Analytics-Einstellungen, Lizenzen und Herkunft der Models.

Vergleiche keine Tools mit unterschiedlichen Checkpoints, Auflösungen, Schrittzahlen oder Präzisionen, um das Ergebnis dann einen Runtime-Benchmark zu nennen.

Ein praktischer Standard

Beginne für explorative Arbeit mit einer nativen App und einem Model, das sie dokumentiert. Wechsle zu ComfyUI, wenn der Workflow selbst wertvoll wird: wenn er geprüft, wiederholt, automatisiert oder an jemand anderen übergeben werden muss. Wechsle zu InvokeAI, wenn die Arbeit überwiegend im Bearbeiten von Bildbereichen auf einer Canvas besteht. Behalte AUTOMATIC1111 oder Fooocus, wenn eine bestehende Abhängigkeit ihre spezielle Oberfläche nützlich macht.

Referenzen