AI Deploy - Tutoriel - Déployer des modèles Text-to-Image FLUX
Comment déployer les modèles de génération d'images FLUX en utilisant ComfyUI
AI Deploy est couvert par les Conditions particulières OVHcloud Public Cloud.
Introduction
FLUX est une famille flexible de modèles génératifs développée par Black Forest Technologies. Les modèles FLUX prennent en charge diverses tâches, notamment la génération d’images à partir de texte, le conditionnement structurel et l’inpainting.
Dans ce tutoriel, nous allons parcourir le processus de déploiement des modèles FLUX sur AI Deploy. Nous vous montrerons comment utiliser les modèles FLUX de manière interactive avec ComfyUI (une interface de programmation visuelle).
En pratique
Vous allez suivre différentes étapes pour déployer votre modèle FLUX :
- Choisir la bonne variante FLUX selon votre cas d’usage
- Télécharger les poids du modèle et les stocker dans l’Object Storage OVHcloud
- Construire une image Docker avec ComfyUI et les dépendances nécessaires
- Déployer l’app
- Effectuer de l’inférence avec ComfyUI
Choisir la variante de modèle FLUX
FLUX est disponible en plusieurs variantes, chacune adaptée à des cas d’usage spécifiques, de l’inférence texte-image à l’édition d’images avancée. Ces variantes diffèrent par leurs besoins en mémoire, leurs performances et leurs conditions de licence.
Le tableau suivant liste les principales variantes de FLUX et leurs cas d’usage prévus :
La liste complète est disponible sur le dépôt officiel des modèles FLUX.1.
Prérequis
Avant de continuer, assurez-vous de disposer des éléments suivants :
- Un projet AI Deploy créé au sein d’un projet Public Cloud de votre compte OVHcloud
- Un utilisateur pour AI Training & Object Storage
- L’AI CLI OVHcloud installée sur votre ordinateur
- Docker installé sur votre ordinateur, ou un accès à une instance Docker Debian, disponible sur le
- Un compte Hugging Face, avec un accès au modèle FLUX. Vous devez accepter les conditions d’utilisation sur la page Hugging Face du modèle.
- Un token d’accès Hugging Face (générez-en un depuis votre compte Hugging Face → Access Tokens). Celui-ci sera utilisé pour vous authentifier et télécharger les poids du modèle.
Télécharger les poids du modèle dans l’Object Storage OVHcloud
Pour exécuter l’inférence sur AI Deploy, vous devrez d’abord télécharger les poids du modèle depuis Hugging Face et les envoyer vers un conteneur Object Storage OVHcloud. Ce conteneur sera ensuite monté dans votre app AI Deploy à l’exécution, vous permettant d’accéder au modèle téléchargé.
Plutôt que de télécharger et d’envoyer les fichiers manuellement, nous allons automatiser ce processus en lançant un job AI Training court. Ce job va :
- S’authentifier auprès de Hugging Face à l’aide de votre token
- Créer un conteneur
- Importer les packages
- Télécharger les poids du modèle nécessaires
- Les stocker dans le conteneur Object Storage créé
Pour lancer ce job, exécutez la commande ovhai suivante dans votre terminal, en remplaçant <your_huggingface_token> par votre token réel :
Cette commande va :
- Lancer un job basé sur l’image Docker
ovhcom/ai-training-pytorch. - Créer (s’il n’existe pas déjà) un conteneur nommé
flux-schnell,flux-devouflux-kontextselon la variante FLUX utilisée, et le monter sur/workspace/flux-model. - Installer la bibliothèque
huggingface_hub. - Télécharger le modèle FLUX et son encodeur de texte à l’aide de
huggingface-cli download. - Enregistrer les fichiers du modèle dans le conteneur Object Storage monté.
- Nettoyer les caches locaux de Hugging Face.
Vous pouvez suivre la progression de votre job à l’aide des commandes suivantes :
Cela vous permettra de consulter les logs générés par votre job, avec les imports et les téléchargements de fichiers (le téléchargement de gros fichiers de modèle peut prendre quelques minutes). Une fois les poids du modèle téléchargés, le job passera à l’état FINALIZING si vous listez vos jobs existants. Cela signifie que les fichiers sont en cours de synchronisation vers le conteneur Object Storage monté. Une fois la synchronisation terminée, le job sera marqué comme DONE.
Vous pouvez ensuite vérifier la présence de vos fichiers en consultant votre conteneur Object Storage depuis l’espace client OVHcloud, ou via la CLI avec la commande suivante :
Construire une image Docker
Une fois les poids du modèle FLUX envoyés vers l’Object Storage, l’étape suivante consiste à construire une image Docker packageant ComfyUI et ses dépendances nécessaires.
Cette image sera ensuite déployée en tant qu’application AI Deploy, où les fichiers du modèle seront montés à l’exécution depuis l’Object Storage. Cela évite d’avoir à intégrer directement les poids volumineux du modèle dans l’image du container.
Créer le Dockerfile
Dans un nouveau dossier, créez le Dockerfile suivant. Il construit un environnement CUDA pour ComfyUI :
Ajouter le script entrypoint.sh
Ce script met en place des liens symboliques vers les fichiers du modèle montés à l’exécution, garantissant que ComfyUI retrouve les poids du modèle téléchargés. En effet, ComfyUI attend les modèles dans des dossiers spécifiques, à l’intérieur de /app/ComfyUI/models.
En reliant les modèles depuis /workspace (où l’Object Storage sera monté) vers les emplacements attendus par ComfyUI, nous évitons les copies de fichiers redondantes et gardons l’image légère.
Selon la variante FLUX, les fichiers et emplacements attendus peuvent varier. Ce script adapte les emplacements, quelle que soit la version utilisée parmi Schnell, Dev et Kontext.
Construire l’image Docker
Ensuite, lancez l’une des commandes suivantes depuis le dossier créé, qui contient votre Dockerfile et le script entrypoint.sh, pour construire l’image de votre application :
-
La première commande construit l’image en utilisant l’architecture par défaut de votre système. Cela peut fonctionner si votre machine utilise déjà l’architecture
linux/amd64, requise pour exécuter des containers avec nos produits AI. Cependant, sur des systèmes ayant une architecture différente (par exempleARM64surApple Silicon), l’image obtenue ne sera pas compatible et ne pourra pas être déployée. -
La seconde commande cible explicitement l’architecture
linux/amd64afin de garantir la compatibilité avec nos services AI. Elle nécessitebuildx, qui n’est pas installé par défaut. Si vous n’avez jamais utilisébuildx, vous pouvez l’installer en exécutant :docker buildx install
Envoyer l’image vers un registre
Une fois l’image construite, taguez-la et envoyez-la vers un registre de containers.
Dans cet exemple, nous utilisons le registre partagé OVHcloud, disponible pour chaque utilisateur d’AI Deploy. Mais vous pouvez également utiliser d’autres registres tels que le Managed Private Registry OVHcloud, Docker Hub, GitHub packages, etc.
Le registre partagé doit être utilisé uniquement à des fins de test. Nous vous recommandons de rattacher votre propre registre. Plus d’informations à ce sujet sont disponibles ici. Les images envoyées vers ce registre sont réservées aux workloads AI Tools et ne seront pas accessibles pour des usages externes.
Trouvez l’adresse de votre registre partagé en lançant cette commande :
Connectez-vous au registre partagé avec vos identifiants habituels d’utilisateur AI Platform :
Taguez l’image compilée et envoyez-la vers votre registre :
Déployer l’app
Une fois votre image Docker construite et les poids du modèle disponibles dans l’Object Storage, vous êtes prêt à déployer votre application sur AI Deploy.
Exécutez la commande suivante pour déployer votre application :
Explication des paramètres
<registry_address>/flux-image:latest: l’image à déployer. Veillez à utiliser l’adresse de votre registre.--name: définit le nom de l’app,flux_appici.--gpu: nombre de GPU demandés.--flavor: le type de GPU demandé. Le code de flavorai1-1-gpucorrespond à un GPUV100S. Pour voir les autres GPU disponibles, exécutezovhai capabilities flavor list. N’hésitez pas à changer le code de flavor pour un autre.--default-http-port 8188: port HTTP par défaut de l’app. ComfyUI écoute sur le port8188.--volume: monte les fichiers du modèle téléchargés depuis l’Object Storage. Dans ce cas, le conteneurflux-modelest monté en lecture seule sur/workspace/flux-model.--env: définit les variables d’environnement utilisées parentrypoint.shpour configurer les liens symboliques vers les fichiers du modèle FLUX.
D’autres variantes FLUX peuvent attendre des fichiers dans des dossiers différents. Si vous prévoyez d’utiliser une autre variante, veillez également à mettre à jour les variables d’environnement en conséquence, et à ajuster le script entrypoint.sh si nécessaire pour correspondre aux nouveaux fichiers et structures de dossiers.
Une fois l’app lancée, AI Deploy exécutera les phases suivantes :
- Phase de récupération de l’image : télécharge l’image Docker depuis votre registre.
- Phase de synchronisation des données : monte le volume Object Storage et rend les fichiers du modèle disponibles.
- Phase d’exécution : démarre le container, exécute votre
entrypoint.sh, et lance l’interface ComfyUI.
Pour suivre la progression de votre app et ses logs en temps réel, utilisez :
Une fois que vous voyez dans les logs que ComfyUI a démarré et écoute sur le port 8188, l’app est prête à l’emploi. Vous pouvez accéder à l’interface via l’URL publique fournie par la plateforme, telle que :
Vous pouvez la retrouver à tout moment à l’aide des commandes suivantes :
Effectuer de l’inférence avec ComfyUI
Une fois dans l’interface web de ComfyUI, rendez-vous sur la page officielle des exemples ComfyUI FLUX. Trouvez l’image correspondant à votre variante déployée.
Ensuite, glissez-déposez cette image dans votre interface ComfyUI. Cela chargera automatiquement le workflow d’image FLUX.
Vous pouvez maintenant personnaliser le prompt textuel ou les paramètres selon vos besoins. Ensuite, cliquez simplement sur le bouton Run pour démarrer le processus de génération ou d’édition d’image.
Une fois l’image générée, vous pouvez la visualiser et la télécharger directement depuis le nœud de sortie de ComfyUI.
Aller plus loin
Si vous souhaitez déployer une interface différente telle qu’AUTOMATIC1111 avec Stable Diffusion XL, nous avons un guide pas à pas pour déployer cette WebUI populaire sur AI Deploy.
Si les concepts de génération d’images vous intéressent, vous pouvez apprendre le fonctionnement des réseaux de génération d’images et entraîner votre propre réseau antagoniste génératif (GAN). Consultez ce guide AI Notebooks : Créer et entraîner un modèle de génération d’images.
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
Votre avis nous intéresse !
N’hésitez pas à nous faire part de vos questions, retours et suggestions pour améliorer le service :
- Sur le serveur Discord OVHcloud