HyperAIHyperAI

Command Palette

Search for a command to run...

Flux 2 en C : une génération d’images IA purement native, sans Python, en 48 heures

Ce projet, développé par Salvatore (antirez), propose une implémentation en C pur du modèle d’image générative FLUX.2-klein-4B, créé par Black Forest Labs. Contrairement aux solutions classiques basées sur Python, PyTorch ou CUDA, ce système fonctionne sans dépendances externes au-delà de la bibliothèque standard C, ce qui en fait une alternative légère et portable pour l’inference d’images à partir de textes. L’objectif principal était de tester les capacités de génération de code par IA sur une tâche complexe, en écrivant zéro ligne de code manuellement grâce à l’outil Claude Code (plan Max). Le projet a été réalisé en une semaine, démontrant que des systèmes d’IA modernes peuvent produire du code fonctionnel, performant et structuré pour des modèles d’intelligence artificielle complexes. Le modèle fonctionne directement avec les poids au format safetensors, sans besoin de quantification ni de conversion préalable. Il utilise des flottants à simple précision (float32), garantissant une qualité d’image élevée, mais nécessitant environ 16 Go de mémoire vive au pic (8 Go pour l’encodeur de texte, 8 Go pour le modèle de diffusion). L’encodeur de texte (Qwen3-4B) est chargé temporairement, puis libéré après le traitement du prompt, permettant de réduire la consommation mémoire lors de génération successive d’images avec des prompts différents. Le modèle est basé sur une architecture de flux rectifié (rectified flow transformer), avec 5 blocs doubles et 20 blocs simples, 3072 dimensions cachées et 24 têtes d’attention. Il est optimisé pour une inférence rapide, avec seulement 4 étapes de débruitage, offrant un bon compromis entre qualité et vitesse. Le programme peut être utilisé via la ligne de commande pour des générations texte-image ou image-image. Par exemple, ./flux -d flux-klein-model -p "Une femme des années 1960, lunettes, film ASA 400, noir et blanc" -W 250 -H 250 -o /tmp/woman.png produit une image en noir et blanc. En mode image-to-image, un paramètre de force (strength) permet de contrôler l’impact du prompt sur l’image d’entrée. La génération est reproductible grâce à l’affichage du seed utilisé sur stderr, qui peut être réutilisé pour obtenir des résultats identiques. Le projet inclut une API C pour intégration dans des applications personnalisées. Il suffit de lier libflux.a et d’inclure flux.h pour utiliser des fonctions comme flux_load_dir, flux_generate et flux_image_save. La compilation est simple, avec prise en charge des accélérateurs MPS (macOS) et BLAS (Linux) pour améliorer les performances. Sur Linux, OpenBLAS doit être installé pour activer BLAS. Ce projet illustre une avancée significative vers l’accessibilité des modèles d’IA ouverts, en éliminant la dépendance au stack Python. Il montre que l’IA peut servir d’assistant de développement pour des projets techniques ambitieux, tout en restant transparent et réutilisable. L’approche purement C ouvre la voie à des déploiements dans des environnements embarqués, des systèmes embarqués ou des applications critiques où la stabilité, la sécurité et la minimalisme sont essentiels. Le projet est sous licence MIT, encourageant son utilisation, sa modification et sa distribution libre.

Liens associés

Flux 2 en C : une génération d’images IA purement native, sans Python, en 48 heures | Articles tendance | HyperAI