- Reine C-Implementierung zur Bildgenerierung mit dem FLUX.2-klein-4B-Modell auf Basis von Text- oder Bildeingaben
- Läuft ohne externe Abhängigkeiten und kann optional per BLAS- oder Metal-Beschleunigung um bis zu das 30-Fache schneller werden
- Qwen3-4B-Text-Encoder ist integriert, sodass kein separater Embedding-Berechnungsschritt nötig ist
- Unterstützt sowohl Text-zu-Bild als auch Bild-zu-Bild-Transformation und bietet eine Kommandozeilenoberfläche sowie eine C-Bibliotheks-API
- Kann ohne Python-Runtime oder PyTorch ausgeführt werden und ist damit relevant für leichtgewichtige Inferenzumgebungen und einen breiteren Zugang zu Open-Source-AI
Projektüberblick
- FLUX.2-klein-4B ist ein Bildgenerierungsmodell von Black Forest Labs, das aus Text-Prompts oder vorhandenen Bildern neue Bilder erzeugt
- Der gesamte Code ist ausschließlich mit der Standard-C-Bibliothek geschrieben, mit optionaler Unterstützung für MPS (Apple Metal) und BLAS (OpenBLAS)
- Das Modell kann von HuggingFace mit einer Größe von rund 16GB heruntergeladen werden und besteht aus VAE (300MB), Transformer (4GB), Qwen3-4B-Encoder (8GB) und Tokenizer
Hauptfunktionen
- Zero dependencies: Kann ohne externe Bibliotheken eigenständig ausgeführt werden
- Bei Nutzung von BLAS etwa 30-fache Beschleunigung, unter macOS mit Apple Accelerate, unter Linux mit OpenBLAS
- Metal GPU acceleration: Wird in Apple-Silicon-Umgebungen automatisch aktiviert
- Text-to-image: Bildgenerierung aus Text-Prompts
- Image-to-image: Transformation vorhandener Bilder anhand eines Prompts
- Integrated text encoder: Qwen3-4B-Encoder integriert, keine externen Embeddings erforderlich
- Memory efficient: Nach dem Encoding wird der Encoder-Speicher automatisch freigegeben, was rund 8GB spart
Nutzungsbeispiele
Modellarchitektur und Leistung
- Transformer: 5 Double-Blöcke und 20 Single-Blöcke, 3072 Hidden-Dimensionen, 24 Attention-Head
- VAE: AutoencoderKL, 128 latente Kanäle, 8-fache räumliche Kompression
- Text Encoder: Qwen3-4B, 36 Schichten, 2560 Hidden-Dimensionen
- Inferenzschritte: Hochwertige Ergebnisse mit 4 Sampling-Schritten
- Speicherbedarf
- Text-Encoding: etwa 8GB
- Diffusion: etwa 8GB
- Maximaler Peak: 16GB (vor Freigabe des Encoders)
- Leistungsbenchmarks (Apple M3 Max, 128GB RAM)
- 512×512: MPS 49,6 Sekunden, BLAS 51,9 Sekunden, PyTorch MPS 5,4 Sekunden
- 256×256: MPS 32,4 Sekunden, BLAS 29,7 Sekunden, PyTorch MPS 3,0 Sekunden
- 64×64: MPS 25,0 Sekunden, BLAS 23,5 Sekunden, PyTorch MPS 2,2 Sekunden
- Das reine C-Backend ist sehr langsam und nur für Tests geeignet
Build und Ausführung
C-Bibliotheks-API
- Modell laden und freigeben
flux_load_dir(path) / flux_free(ctx)
- Bildgenerierung und -transformation
flux_generate(ctx, prompt, params)
flux_img2img(ctx, prompt, input, params)
- Bild-Ein-/Ausgabe
flux_image_load(path) / flux_image_save(img, path)
- Hilfsfunktionen
- Reproduzierbarkeit mit
flux_set_seed(seed)
- Fehlermeldungen mit
flux_get_error() prüfen
- Manuelle Speicherfreigabe mit
flux_release_text_encoder(ctx) möglich
Lizenz und weitere Informationen
- Veröffentlicht unter der MIT-Lizenz
- Sprachverteilung im Repository: C 93.9%, Objective-C 3.5%, Makefile 1.7%, Python 0.9%
- 446 Sterne und 20 Forks, was auf reges Interesse der Community hinweist
Noch keine Kommentare.