modèles de stables diffusion

Comment générer des images à partir de texte avec des modèles de diffusion stables

Introduction rapide à la génération de texte en image à l’aide du package de diffuseurs de Hugging Face

Dans cet article, je vais vous montrer comment démarrer avec la génération de texte en image avec des modèles de diffusion stables à l’aide du package de diffuseurs de Hugging Face.

De DALLE à la Diffusion Stable

Il y a quelque temps, j’ai eu accès au modèle DALLE-2 d’OpenAI , qui vous permet de créer de superbes images à partir de texte. J’ai donc commencé à jouer avec et à générer des images assez étonnantes.

Image de l’auteur. Généré avec DALL-E 2 .

Cependant, mes crédits se sont épuisés, alors j’ai décidé de chercher des alternatives, et je suis tombé sur cet article incroyable de Hugging Face,

Diffusion stable avec 🧨 Diffuseurs

utilisant 🧨 Diffusers Stable Diffusion est un modèle de diffusion latente texte-image créé par les chercheurs et ingénieurs…

huggingface.co

qui explique comment exécuter des modèles de diffusion stables à l’aide de leur diffuserspackage.

Voyons donc comment générer des images à partir de texte en utilisant diffusers!

Génération d’images à partir de texte avec le pipeline de diffusion stable

Tout d’abord, les étapes pour générer des images à partir de texte avec le diffuserspackage sont :

  1. Assurez-vous d’avoir accès au GPU
  2. Exigences d’installation
  3. Activer les widgets externes sur Google Colab (pour les notebooks Colab)
  4. Connectez-vous à Hugging Face avec votre jeton d’utilisateur
  5. Initialiser leStableDiffusionPipeline
  6. Déplacer le pipeline vers le GPU
  7. Exécuter l’inférence avec le module de Pytorchautocast

Donc, pour ce projet, puisque je suis plus ou moins le cahier colab de Hugging Face , nous supposerons que vous avez accès à un cahier colab avec un GPU activé . Commençons!

1. Assurez-vous d’avoir un accès GPU

!nvidia-smi# Ma sortie
Image de l’auteur.

OK super! Maintenant que nous savons que nous avons accès à un GPU, définissons les exigences pour ce projet.

2. Configuration requise pour l’installation

Il y a 5 exigences principales pour ce projet :

  • diffusers==0.2.4– qui est le package principal pour exécuter le pipeline
  • transformers– Package de Hugging Face avec de nombreux modèles pré-formés pour le texte, l’audio et la vidéo
  • scipy— Package Python pour le calcul scientifique
  • ftfy– Package Python pour la gestion des problèmes Unicode
  • ipywidgets>=7,<8– package pour créer des widgets sur des ordinateurs portables
  • torch– Package Pytorch (pas besoin d’installer si vous êtes en colab)
  • pillow— Package Python pour traiter les images (pas besoin d’installer si vous êtes en colab)

Pour installer tout ce dont vous avez réellement besoin dans Google Colab, exécutez simplement :

!pip install diffuseurs==0.2.4!pip installer les transformateurs scipy ftfy!pip install "ipywidgets>=7,<8"

3. Activer les widgets externes sur Google Colab (pour les notebooks Colab)

# activer les widgets (pour pouvoir se connecter au visage étreignant)à partir de la sortie d'importation de google.colabsortie.enable_custom_widget_manager()

4. Connectez-vous à Hugging Face avec votre jeton d’utilisateur

# connectez-vous à huggin face (obtenez un jeton d'accès, etc ...)depuis huggingface_hub importer notebook_loginnotebook_login()

Vous devriez voir un widget où vous saisirez votre jeton d’accès depuis Hugging Face . Après l’avoir saisi, vous devriez voir quelque chose comme ceci :

# Production attendueConnexion réussie Votre jeton a été enregistré dans /root/.huggingface/token Authentifié via le magasin git-credential mais ce n'est pas l'assistant défini sur votre machine. Vous devrez peut-être vous authentifier à nouveau lorsque vous pousserez vers le Hugging Face Hub. Exécutez la commande suivante dans votre terminal au cas où vous voudriez définir cet assistant d'identification comme magasin git config --global credential.helper par défaut

5. Initialisez leStableDiffusionPipeline

torche d'importationdepuis les diffuseurs import StableDiffusionPipelinepipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", revision="fp16", torch_dtype=torch.float16, use_auth_token=True)

Ici, tout comme dans leur cahier colab, nous utilisons le v1-4modèle dont nous allons télécharger les poids. Une fois cela fait, nous pouvons passer à l’étape suivante. N’hésitez pas à essayer les autres modèles pour comparer !

6. Déplacez le pipeline vers le GPU

pipe = pipe.to("cuda")

autocast7. Exécutez l’inférence avec le module de Pytorch

à partir de la diffusion automatique de l'importation de la torcheprompt = "photo d'un panda surfant"avec autocast("cuda") : 
  image = pipe(prompt)["sample"][0]  image.save(f"panda_surfer.png")image

Sortir

Image de l’auteur. Généré avec le code de ce bloc-notes Colab créé par Hugging Face.

Comme nous pouvons le voir clairement, les résultats sont incroyables. Évidemment, vous trouverez une certaine variabilité dans les résultats que vous obtenez, mais il existe des paramètres que vous pouvez modifier comme guidance_scale, le nombre d’étapes et la définition de graines aléatoires (pour les sorties déterministes) qui devraient vous aider à obtenir des résultats plus cohérents.

Réflexions finales et recommandations

Sur le cahier officiel de Colab de Hugging Face , (source principale de cet article), ils ont une explication claire et simple sur la diffusion stable, ainsi que des ressources pour approfondir le sujet, je vous recommande donc de le consulter ! Quelques recommandations supplémentaires que je donnerais seraient de consulter ces ressources :

Si vous préférez la forme vidéo, consultez ma vidéo Youtube sur ce sujet ici :

Si vous avez aimé cet article, rejoignez Medium , suivez , abonnez-vous à ma newsletter . Aussi, abonnez-vous à ma chaîne youtube et rejoignez-moi sur Tiktok , Twitter , LinkedIn , Instagram ! Merci et à la prochaine ! 🙂

Retour en haut