KI · Modellspezifische Setups
Flux.1 dev — Setup und Parameter
Eine andere Architektur, andere Anforderungen — und warum Flux.1 dev die neutrale Basis für den RAY-L-Workflow ist, aus der Krea dev als fotografische Empfehlung hervorgeht.
Flux.1 dev ist kein SDXL-Nachfolger im klassischen Sinne — es ist eine andere Architektur mit anderen Stärken und anderen Anforderungen. Wer den SDXL-Workflow aus 2.2.4 und 2.3.1 kennt, wird die Unterschiede im Flux-Graph aus 2.2.2 wiedererkennen. Dieser Artikel geht auf die Setup-Entscheidungen ein, die dort noch offen geblieben sind.
Flux braucht Speicher — und zwar auf zweierlei Weise
Flux.1 dev und Krea dev gehören zum Besten, was lokal zu haben ist — aber dieser Satz hat eine stillschweigende Bedingung: genug Speicher. Ist er reichlich vorhanden, ist alles einfach: eine Datei laden, ein Loader, fertig. Wird er knapp, beginnt eine Kette von Entscheidungen, die diese Seite ausbreitet.
Dabei geht es um mehr als Bildqualität. Zu wenig Speicher kostet nicht nur Detail — er kostet Nutzbarkeit. Passt ein Modell nicht in den Speicher, lagert das System auf die Festplatte aus, und aus einem Bild in anderthalb Minuten wird eines in zehn. Nicht das unscharfe Ergebnis ist das eigentliche Problem, sondern die Renderzeit, die das Arbeiten praktisch anhält. Die Speicherfrage entscheidet also zuerst darüber, ob der Workflow überhaupt benutzbar ist, und erst danach über die letzte Stufe Qualität.
Was den Speicher füllt
Zwei Gewichte dominieren das Budget, alles andere ist Beiwerk. Das größte ist der Transformer — das eigentliche Bildmodell mit rund zwölf Milliarden Parametern. Im Standard-Flux-Graph wird er nicht über den CheckpointLoaderSimple geladen, sondern über den Node Load Diffusion Model (intern UNETLoader) — die Datei liegt in ComfyUI/models/unet/. Der Name „UNET" ist historisch: Flux ist technisch kein U-Net, sondern ein Diffusion Transformer (DiT); der Node heißt aus Alt-Gründen weiter so. In voller Präzision belegt dieser Transformer allein etwa 24 GB.
Das zweite große Gewicht ist der Text-Encoder T5XXL, der den Prompt in die Sprache des Modells übersetzt; in voller Präzision rund 10 GB. CLIP-L (~250 MB) und die VAE (~335 MB) fallen daneben nicht ins Gewicht — sie bleiben, wie sie sind.
Gegen diese Summe — grob 34 GB in voller Präzision — wird im Folgenden alles gerechnet. Wer sie hat, ist fertig. Wer sie nicht hat, muss eines oder beide Gewichte verkleinern, und wie er das tut, hängt an der nächsten Unterscheidung.
Das Format und die Hardware — zwei getrennte Fragen
Wer Flux auf knappem Speicher zum Laufen bringen will, stößt schnell auf eine Handvoll Begriffe — fp16, fp8, scaled, GGUF — und auf widersprüchlich klingende Ratschläge. Der Grund für die Verwirrung ist fast immer, dass zwei verschiedene Fragen durcheinandergeraten. Trennt man sie, sortiert sich der Rest von selbst.
Die erste Frage betrifft die Datei: In welcher Präzision liegen die Gewichte vor? Volle Präzision (fp16/bf16), halbiert (fp8), oder in feineren Stufen gepackt (GGUF, die Q-Varianten). Das ist eine Eigenschaft der heruntergeladenen Datei und entscheidet, wie viel Speicher sie belegt und wie viel Qualität sie mitbringt.
Die zweite Frage betrifft die Hardware: Kann die GPU ein Format überhaupt direkt rechnen? Und hier liegt der Punkt, der die meisten Mac-Anleitungen in die Irre führt — denn er fällt je nach Plattform entgegengesetzt aus. Auf Nvidia-Karten ist fp8 ein echtes Rechenformat: Die Tensor-Cores verarbeiten es nativ, man gewinnt Speicher und Geschwindigkeit. Auf Apple Silicon gibt es für fp8 dagegen keine Recheneinheiten — das MPS-Backend hat schlicht keine fp8-Kernels. Ein fp8-Modell lässt sich dort nicht einfach laden; im Normalfall bricht der Lauf mit einer Fehlermeldung ab, weil MPS nicht einmal die Umwandlung einer fp8-Zahl beherrscht. Was ComfyUI beim Start an fp8-Fähigkeiten in die Protokolle schreibt, gilt dem Nvidia-Pfad und ist auf dem Mac ohne Wirkung.
Der kürzeste Merksatz für diese zweite Achse: fp8 ist auf Nvidia ein Rechenformat, auf Apple Silicon keins. Daraus folgt fast alles Weitere auf dieser Seite — insbesondere, warum die gängige Empfehlung „nimm fp8, wenn der Speicher knapp ist" auf dem Mac genau falsch ist und dort die GGUF-Varianten an ihre Stelle treten.
Dazu kommt ein zweiter Hardware-Unterschied, der die Folgen verschärft. Eine Nvidia-Karte hat ihren eigenen, fest zugeteilten Grafikspeicher (VRAM); passt ein Modell nicht hinein, bricht es hörbar ab. Apple Silicon teilt sich dagegen einen gemeinsamen Speicherpool zwischen System und GPU (Unified Memory). Das hat einen Vorteil und eine Tücke: Es gibt keine harte VRAM-Grenze, die GPU kann den ganzen Pool nutzen — aber wird es eng, stürzt nichts ab, sondern macOS lagert Teile auf die SSD aus. Das Modell läuft dann weiter, nur quälend langsam, weil aus Rechnen plötzlich Lesen und Schreiben auf der Festplatte wird. Dieses stille Auslagern — nicht ein Absturz — ist auf dem Mac der eigentliche Gegner, und der Grund, warum die Speicherfrage hier über Nutzbarkeit entscheidet, nicht nur über Qualität.
Die drei Präzisionsstufen
Beide großen Gewichte — Transformer und T5 — gibt es in denselben drei Stufen. Welche die richtige ist, entscheidet die vorige Unterscheidung, nicht der Geschmack.
Volle Präzision (fp16/bf16) ist der Ausgangspunkt: maximale Qualität, maximaler Speicher, und das einzige Format, das auf jeder Hardware ohne Umweg rechnet. Wer den Speicher hat, braucht nicht weiter zu lesen — fp16 ist dann die Antwort.
GGUF ist das Kompressionsformat, das nach unten skaliert, ohne die Plattform zu wechseln: Es läuft nativ auf Apple Silicon und auf Nvidia. Statt einer festen halben Größe bietet es eine ganze Treppe — von Q8 (fast fp16) über Q5 und Q4 bis Q3 (deutlich kleiner, sichtbar mehr Verlust). Dieser Freiheitsgrad ist der entscheidende Punkt: Man wählt genau die Stufe, die gerade noch in den Speicher passt. Geladen wird GGUF über einen eigenen Node, den Unet Loader (GGUF) — der normale Loader liest das Format nicht.
fp8 ist das Nvidia-Format. Auf einer Nvidia-Karte halbiert es den Speicher und rechnet nativ, also auch schneller. Hier lohnt die eine Feinheit namens scaled: fp8 hat nur sehr wenige Wertstufen, und ein einzelnes grobes Raster für Tensoren höchst unterschiedlicher Größenordnung verschenkt Präzision. Die scaled-Variante legt pro Tensor einen eigenen Maßstab an, der seine Werte erst in den fein aufgelösten Bereich schiebt — dasselbe Raster, aber für jedes Gewicht optimal genutzt, bei identischer Dateigröße. Wo es eine fertig vorbereitete fp8-Datei gibt — wie beim T5-Encoder —, nimmt man also die scaled-Variante; die ältere ohne _scaled im Namen, die in manchen Workflows noch auftaucht, ist dieselbe Idee ohne diesen Maßstab und ohne Vorteil. Für den dev-Transformer, für den es keine solche Datei gibt, castet man stattdessen beim Laden (siehe nächster Abschnitt). Für Apple Silicon ist dieser ganze Absatz allerdings gegenstandslos: Dort rechnet fp8 nicht, und die Wahl steht zwischen fp16 und GGUF.
Welche Datei über welchen Loader
Die Formate teilen sich zwei Loader, und die Grenze verläuft nicht dort, wo man sie vermutet. Volle Präzision und fp8 laufen beide über Load Diffusion Model. Für fp16 steht weight_dtype auf default; fp8 erzeugt man auf Nvidia, indem man dieselbe volle Datei lädt und weight_dtype auf fp8_e4m3fn stellt — ComfyUI castet dann beim Laden und halbiert den Speicher. Ein eigener fp8-Transformer-Download ist dafür nicht nötig. Nur GGUF braucht den Unet Loader (GGUF), weil .gguf ein eigenes Dateiformat ist, das der Standard-Node nicht öffnet. (Beim T5-Encoder liegt der Fall anders: Dort gibt es eine fertig vorbereitete _scaled-fp8-Datei, siehe Bezugsquellen.) Zwei Formate, ein Loader; ein Format, ein eigener.
Welche Variante bei welcher Hardware
Daraus ergibt sich eine knappe Zuordnung. Die Speicherangaben sind Richtwerte für die Modellgewichte, nicht gemessene Grenzen — Betriebssystem und die Zwischendaten während der Berechnung kommen obendrauf und zehren am selben Pool.
| Plattform / Speicher | Transformer | T5XXL | Loader |
| Apple Silicon, ab 32 GB | fp16 | fp16 | Load Diffusion Model |
| Apple Silicon, 16–24 GB | GGUF (Stufe nach RAM) | GGUF | Unet Loader (GGUF) |
| Nvidia, wenig VRAM | fp8 (Cast) | fp8_scaled | Load Diffusion Model |
Die mittlere Zeile ist die eigentliche Arbeit auf knappem Mac-Speicher: Bei 24 GB reicht oft ein hoher Quant (Q6/Q8 für den Transformer, dazu ein kleinerer T5-Quant); bei 16 GB muss man weiter heruntergehen (Q4 oder Q3), bis die Gewichte samt Zwischendaten unter die Schwelle fallen, an der das System auszulagern beginnt. Fällt die Wahl auf Nvidia mit sehr wenig VRAM, ist GGUF auch dort ein gangbarer Weg — fp8_scaled bleibt aber die erste Wahl, weil es dort rechnet und nicht nur Speicher spart.
Warum GGUF auf dem Mac trotzdem schnell ist
Ein letzter Punkt gegen ein naheliegendes Missverständnis. Dass ein kleiner GGUF-Quant auf dem Mac spürbar schneller läuft, kommt nicht daher, dass er schneller rechnet — die Gewichte werden zum Rechnen ohnehin wieder nach bf16 entpackt, wie bei jedem Format. Der Gewinn liegt woanders: Passt das Modell in den Speicher, hört das System auf, auf die Festplatte auszulagern, und aus festplattengebundenem Warten wird wieder GPU-Rechnen. Genau das kann den Unterschied zwischen zehn Minuten und zwei, drei Minuten pro Bild ausmachen — nicht die Rechenart, sondern der vermiedene Umweg über die SSD.
Ob man in diesem Zustand steckt, liest man im Aktivitätsmonitor direkt ab: hoher Speicherdruck und ein wachsender Swap-Wert sind das Signal, dass der Quant eine Stufe kleiner werden muss. Auf dem Mac ist Passen-in-den-Speicher die Geschwindigkeit.
Bezugsquellen
Die konkreten Dateien und ihre Quellen. Der Transformer ist modellspezifisch; Encoder und VAE sind für Flux.1 dev und Krea dev identisch und werden nur einmal geladen. Die „nur Nvidia"-Markierung erinnert daran, dass die fp8-Zeilen auf Apple Silicon ausfallen — dort gilt fp16 oder GGUF.
Transformer — Flux.1 dev
| Format | Datei | Größe | Quelle | Plattform |
| fp16 (voll) | flux1-dev.safetensors | ~23,8 GB | black-forest-labs/FLUX.1-dev | alle |
| fp8 (Cast) | volle fp16-Datei weight_dtype = fp8_e4m3fn |
— | kein eigener Download | nur Nvidia |
| GGUF | flux1-dev-Q*.gguf | 4–12,7 GB | city96/FLUX.1-dev-gguf | alle |
Transformer-Datei → ComfyUI/models/unet/. Bei GGUF die Stufe nach der Hardware-Staffel wählen. fp8 auf Nvidia braucht keinen eigenen Download — die volle fp16-Datei laden und im Load Diffusion Model-Node weight_dtype auf fp8_e4m3fn stellen.
Encoder und VAE — für dev und Krea identisch
| Komponente | Format | Datei | Größe | Quelle |
| CLIP-L | — | clip_l.safetensors | 246 MB | comfyanonymous/flux_text_encoders |
| T5XXL | fp16 | t5xxl_fp16.safetensors | ~9,8 GB | comfyanonymous/flux_text_encoders |
| T5XXL | fp8_scaled (nur Nvidia) | t5xxl_fp8_e4m3fn_scaled.safetensors | 5,16 GB | comfyanonymous/flux_text_encoders |
| T5XXL | GGUF | t5-v1_1-xxl-encoder-Q*.gguf | 2,3–5,06 GB | city96/t5-v1_1-xxl-encoder-gguf |
| VAE | — | ae.safetensors | 335 MB | black-forest-labs/FLUX.1-dev |
T5XXL und CLIP-L → ComfyUI/models/clip/ (in neueren ComfyUI-Versionen auch text_encoders/); VAE → ComfyUI/models/vae/.
Ein Lizenz-Hinweis zur Trennung: Die Transformer-Dateien stehen in allen Formaten unter der FLUX Non-Commercial License von Black Forest Labs, weil auch die quantisierten Varianten Ableitungen der Originalgewichte sind. Die Encoder dagegen — CLIP-L und die T5-Varianten von comfyanonymous und city96 — stehen unter Apache-2.0. Mehr zur Lizenz im Abschnitt weiter unten.
DualCLIPLoader — ein Detail das zählt
Der DualCLIPLoader lädt die beiden Encoder — CLIP-L und T5XXL — und hat neben den zwei Dateien einen dritten Parameter: den Typ. Standardmäßig ist sdxl vorausgewählt. Für Flux muss er auf flux geändert werden.
Das ist eine kleine Einstellung mit großem Einfluss — der falsche Typ führt zu schlechten Ergebnissen die sich nicht durch Prompt-Optimierung beheben lassen. In der JSON aus 2.2.2 ist flux bereits korrekt gesetzt. Wer den Node manuell hinzufügt, muss das explizit ändern.
guidance im CLIPTextEncodeFlux
Der CLIPTextEncodeFlux Node hat neben den zwei Textfeldern einen dritten Wert: guidance. Das ist kein CFG im klassischen Sinne — es ist ein interner Skalierungsfaktor der bestimmt wie stark das Modell dem kombinierten Conditioning der beiden Encoder folgt. Derselbe Wert lässt sich in ComfyUI auch über einen separaten FluxGuidance-Node setzen statt im Feld des CLIPTextEncodeFlux — es ist dieselbe Guidance, nur an anderer Stelle im Graph.
3.5–4.0 — für mittellange, präzise Prompts. Das ist der Standardfall.
1.0–2.0 — für sehr lange Prompts oder wenn mehr kreativer Spielraum gewünscht ist.
Dieser Wert ist unabhängig vom cfg im Sampler. Der Sampler-CFG bleibt bei Flux.1 dev immer auf 1 — wie in 2.2.4 erklärt.
Ein Negativ-Prompt existiert im Standard-Flux-Graph nicht: Der BasicGuider nimmt nur das positive Conditioning, und die distillierte Guidance kennt kein Negativ-Conditioning. Das Negativ-Feld, das man vom SDXL-KSampler kennt, gibt es hier also nicht.
Sampler-Parameter für Flux.1 dev
Flux verwendet den SamplerCustomAdvanced statt des klassischen KSampler. Die Parameter verteilen sich auf mehrere Nodes:
KSamplerSelect: euler
BasicScheduler: simple, 20–25 Steps
Warum simple und nicht karras? Bei Flux ist die Rauschkurve bereits durch die guidance-distilled Architektur beeinflusst. simple — eine lineare Abnahme — arbeitet am zuverlässigsten mit dieser Architektur zusammen. karras bringt bei Flux keinen messbaren Vorteil.
20–25 Steps sind für Flux ausreichend — die Architektur ist effizienter als SDXL und konvergiert schneller. Mehr Steps bringen ab einem bestimmten Punkt keine weitere Qualitätssteigerung.
RandomNoise: Seed-Logik wie beim SDXL KSampler — randomize zum Erkunden, fixed wenn ein guter Ausgangspunkt gefunden ist.
Auflösung
Flux.1 dev ist bei der Auflösung deutlich flexibler als SDXL. Entscheidend ist nicht das Seitenverhältnis, sondern die Gesamtfläche: Bleibst du in der Nähe von einem Megapixel — also rund 1.048.576 Pixel —, arbeitet das Modell in dem Bereich, auf den es trainiert wurde. Weiter oben wächst die Neigung zu Wiederholungen im Bild: doppelte Fenster, gespiegelte Details.
Die zweite Bedingung: Beide Kantenlängen müssen durch 16 teilbar sein. SDXL verlangt 64 — das ist der Grund, warum SDXL-Auflösungen und Flux-Auflösungen bei gleichem Seitenverhältnis leicht auseinanderlaufen.
| Verhältnis | Auflösung | Pixel |
| 1:1 | 1024 × 1024 | 1.048.576 |
| 3:2 | 1248 × 832 | 1.038.336 |
| 4:3 | 1152 × 864 | 995.328 |
| 16:9 | 1360 × 768 | 1.044.480 |
Für Hochformat drehst du die Zahlen um — 832 × 1248, 768 × 1360. Anders als bei SDXL trifft Flux die Verhältnisse dabei sauber: 1152 × 864 ist echtes 4:3, während der entsprechende SDXL-Bucket 1152 × 896 streng genommen 9:7 ist.
Jedes andere Verhältnis rechnest du dir selbst aus:
Breite = round( 1024 · √(B/H) / 16 ) · 16 Höhe = round( 1024 · √(H/B) / 16 ) · 16
Erst die ideale Kantenlänge aus Fläche und Wurzel des Verhältnisses, dann auf das nächste Vielfache von 16 runden. Diese Rundung ist auch der Grund, warum die Pixelsumme selten exakt bei 1.048.576 landet — die Abweichung von ein paar Prozent ist unkritisch.
Dasselbe Setup gilt für Krea dev
Flux.1 Krea dev ist das ästhetische Geschwister von Flux.1 dev: dieselbe guidance-distillierte Rohbasis (flux-dev-raw), nur mit einem reinen Ästhetik-Post-Training darauf. Für dieses Setup heißt das: identische Pipeline. Gleiche Encoder (CLIP-L + T5XXL, DualCLIPLoader auf flux), gleicher guidance-Bereich, gleiche Sampler-Parameter (euler + simple, 20–25 Steps — für Krea dev eher 28–35, siehe 2.3.3), gleiches ControlNet Canny, dieselbe Speicher- und Quantisierungslogik aus den Abschnitten oben. Alles auf dieser Seite überträgt sich unverändert — du tauschst nur die Modelldatei im Load Diffusion Model- bzw. Unet Loader (GGUF)-Node.
Der einzige Unterschied liegt im Look: Krea dev erzeugt einen betont fotografischen, „filmischen" Charakter statt der glatten AI-Mitte — für einen fotografischen Look aktuell meine erste Wahl. Details im Setup-Artikel zu 2.3.3 — Flux.1 Krea dev.
Lizenz
Flux.1 dev steht unter der FLUX Non-Commercial License von Black Forest Labs (Version 2.0; bis November 2025 „FLUX [dev] Non-Commercial License“, inhaltlich unverändert).
Zwei Dinge sind auseinanderzuhalten. Die erzeugten Bilder gehören dem Anwender — Black Forest Labs beansprucht kein Eigentum an den Outputs; sie dürfen für jeden Zweck genutzt und verkauft werden, mit der einzigen Ausnahme, dass sie nicht zum Training eines konkurrierenden Modells dienen dürfen. Der Betrieb des Modells ist die getrennte Frage: Die Gewichte sind für nicht-kommerzielle, nicht-produktive Nutzung lizenziert; kommerzieller oder produktiver Betrieb braucht eine separate Lizenz von Black Forest Labs. Dass die Bilder dem Anwender gehören, entscheidet diese zweite Frage nicht.
Unabhängig von der Lizenz sind KI-erzeugte Bilder gesetzlich als solche zu kennzeichnen, soweit anwendbar.
Der Lizenztext hat sich über die Versionen geändert; maßgeblich ist die jeweils aktuelle Fassung auf bfl.ai. Mehr dazu in 2.1.4 — Lizenzmodelle verstehen. Orientierung, keine Rechtsberatung.
Wann Flux, wann SDXL
Flux.1 dev ist die richtige Wahl wenn:
Prompt-Präzision wichtig ist — komplexe räumliche Beschreibungen, mehrere Materialien mit expliziten Zuordnungen, ausformulierte Lichtsituationen. T5XXL versteht Satzstruktur, CLIP nicht.
Die Hardware es erlaubt — die Speicher-Staffel oben entscheidet, welches Format in Frage kommt. Auf sehr knappem Speicher wird Flux über den kleinsten brauchbaren GGUF-Quant zugänglich, aber langsamer.
Der RAY-L-Workflow im Vordergrund steht — beide Modelle unterstützen ControlNet Canny vollständig, und die Prompt-Präzision von T5XXL ergänzt die geometrische Kontrolle durch ControlNet besonders gut. Flux.1 dev ist dabei die neutrale Basis; für fotografische Arbeit ist Krea dev die Empfehlung — dasselbe Setup, dieselbe RAY-L-Tauglichkeit, nur der fotografischere Look (siehe 2.3.3). Auf schwächerer Hardware oder wenn schnelle Iteration wichtig ist, ist SDXL mit ControlNet Canny die sinnvolle Alternative.
SDXL bleibt die richtige Wahl für schnelle Iteration, ressourcenschonende Hardware, und für bestimmte Nischen-LoRAs, die es für Flux (noch) nicht gibt. Das breite LoRA-Ökosystem für Flux ist inzwischen ausgereift — die Einschränkung betrifft nur einzelne Spezialfälle.