Guide de génération d'images

Tâche de générateur d'images

La tâche MediaPipe Image Generator vous permet de générer des images à partir d'une requête textuelle. Cette tâche utilise un modèle de texte vers image pour générer des images à l'aide de techniques de diffusion.

La tâche accepte une requête textuelle en entrée, ainsi qu'une image de condition facultative que le modèle peut augmenter et utiliser comme référence pour la génération. Pour en savoir plus sur la génération conditionnelle de texte vers image, consultez Plug-ins de diffusion sur l'appareil pour la génération conditionnelle de texte vers image.

Image Generator peut également générer des images en fonction de concepts spécifiques fournis au modèle lors de l'entraînement ou du réentraînement. Pour en savoir plus, consultez Personnaliser avec LoRA.

Premiers pas

Pour commencer à utiliser cette tâche, suivez l'un de ces guides d'implémentation pour votre plate-forme cible. Ces guides spécifiques à la plate-forme vous expliquent comment effectuer une implémentation de base de cette tâche, avec des exemples de code qui utilisent un modèle par défaut et les options de configuration recommandées :

Détails de la tâche

Cette section décrit les fonctionnalités, les entrées, les sorties et les options de configuration de cette tâche.

Fonctionnalités

Vous pouvez utiliser Image Generator pour implémenter les éléments suivants :

  1. Génération de texte vers image : générez des images à l'aide d'une requête textuelle.
  2. Génération d'images avec des images de condition : générez des images avec une requête textuelle et une image de référence. Image Generator utilise des images de condition de manière semblable à ControlNet.
  3. Génération d'images avec des poids LoRA : générez des images de personnes, d'objets et de styles spécifiques avec une requête textuelle à l'aide de poids de modèle personnalisés.
Entrées de la tâche Sorties de la tâche
Image Generator accepte les entrées suivantes :
  • Requête textuelle
  • Graine
  • Nombre d'itérations génératives
  • Facultatif : image de condition
Image Generator génère les résultats suivants :
  • Image générée en fonction des entrées.
  • Facultatif : instantanés itératifs de l'image générée.

Options de configuration

Cette tâche comporte les options de configuration suivantes :

Nom de l'option Description Plage de valeurs
imageGeneratorModelDirectory Répertoire du modèle de générateur d'images stockant les poids du modèle. PATH
loraWeightsFilePath Définit le chemin d'accès au fichier de poids LoRA. Facultatif et applicable uniquement si le modèle a été personnalisé avec LoRA. PATH
errorListener Définit un écouteur d'erreurs facultatif. N/A

La tâche est également compatible avec les modèles de plug-in, ce qui permet aux utilisateurs d'inclure des images de condition dans l'entrée de la tâche, que le modèle de fondation peut augmenter et utiliser comme référence pour la génération. Ces images de condition peuvent être des points de repère du visage, des contours et des estimations de profondeur, que le modèle utilise comme contexte et informations supplémentaires pour générer des images.

Lorsque vous ajoutez un modèle de plug-in au modèle de fondation, configurez également les options du plug-in. Le plug-in de point de repère du visage utilise faceConditionOptions, le plug-in de contour de Canny utilise edgeConditionOptions et le plug-in de profondeur utilise depthConditionOptions.

Options de contour de Canny

Configurez les options suivantes dans edgeConditionOptions.

Nom de l'option Description Plage de valeurs Valeur par défaut
threshold1 Premier seuil de la procédure d'hystérésis. Float 100
threshold2 Deuxième seuil de la procédure d'hystérésis. Float 200
apertureSize Taille de l'ouverture pour l'opérateur Sobel. La plage habituelle est comprise entre 3 et 7. Integer 3
l2Gradient Indique si la norme L2 est utilisée pour calculer l'amplitude du gradient d'image, au lieu de la norme L1 par défaut. BOOLEAN False
EdgePluginModelBaseOptions Objet BaseOptions qui définit le chemin d'accès au modèle de plug-in. Objet BaseOptions N/A

Pour en savoir plus sur le fonctionnement de ces options de configuration, consultez Détecteur de contours de Canny.

Options de point de repère du visage

Configurez les options suivantes dans faceConditionOptions.

Nom de l'option Description Plage de valeurs Valeur par défaut
minFaceDetectionConfidence Score de confiance minimal pour que la détection de visage soit considérée comme réussie. Float [0.0,1.0] 0.5
minFacePresenceConfidence Score de confiance minimal de la présence du visage score dans la détection des points de repère du visage. Float [0.0,1.0] 0.5
faceModelBaseOptions L'objet BaseOptions qui définit le chemin d'accès au modèle qui crée l'image de condition. Objet BaseOptions N/A
FacePluginModelBaseOptions Objet BaseOptions qui définit le chemin d'accès au modèle de plug-in. Objet BaseOptions N/A

Pour en savoir plus sur le fonctionnement de ces options de configuration, consultez la tâche Face Landmarker.

Options de profondeur

Configurez les options suivantes dans depthConditionOptions.

Nom de l'option Description Plage de valeurs Valeur par défaut
depthModelBaseOptions L'objet BaseOptions qui définit le chemin d'accès au modèle qui crée l'image de condition. Objet BaseOptions N/A
depthPluginModelBaseOptions Objet BaseOptions qui définit le chemin d'accès au modèle de plug-in. Objet BaseOptions N/A

Modèles

Image Generator nécessite un modèle de fondation, qui est un modèle d'IA de texte vers image qui utilise des techniques de diffusion pour générer de nouvelles images. Les modèles de fondation listés dans cette section sont des modèles légers optimisés pour s'exécuter sur des smartphones haut de gamme.

Les modèles de plug-in sont facultatifs et complètent les modèles de fondation, ce qui permet aux utilisateurs de fournir une image de condition supplémentaire avec une requête textuelle, pour une génération d'images plus spécifique. La personnalisation des modèles de fondation à l'aide de poids LoRA est une option qui permet d'enseigner au modèle de fondation un concept spécifique, tel qu'un objet, une personne ou un style, et de l'injecter dans les images générées.

Modèles de fondation

Les modèles de fondation sont des modèles de diffusion latente de texte vers image qui génèrent des images à partir d'une requête textuelle. Image Generator nécessite que le modèle de fondation corresponde au format de modèle stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only, basé sur le modèle suivant :

Les modèles de fondation suivants sont également compatibles avec Image Generator :

Après avoir téléchargé un modèle de fondation, utilisez le image_generator_converter pour convertir le modèle au format sur l'appareil approprié pour Image Generator.

Installez les dépendances nécessaires :

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

Exécutez le convert.py script :

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

Modèles de plug-in

Les modèles de plug-in de cette section sont développés par Google et doivent être utilisés en combinaison avec un modèle de fondation. Les modèles de plug-in permettent à Image Generator d'accepter une image de condition avec une requête textuelle en entrée, ce qui vous permet de contrôler la structure des images générées. Les modèles de plug-in offrent des fonctionnalités semblables à ControlNet, avec une nouvelle architecture spécialement conçue pour la diffusion sur l'appareil.

Les modèles de plug-in doivent être spécifiés dans les options de base et peuvent nécessiter le téléchargement de fichiers de modèle supplémentaires. Chaque plug-in a des exigences uniques pour l'image de condition, qui peut être générée par Image Generator.

Plug-in de contour de Canny

Exemple de sortie de deux images générées qui utilisent une image de condition fournie avec un contour de briques bien défini et la requête

Le plug-in de contour de Canny accepte une image de condition qui décrit les contours prévus de l'image générée. Le modèle de fondation utilise les contours impliqués par l'image de condition et génère une nouvelle image en fonction de la requête textuelle. Image Generator contient des fonctionnalités intégrées permettant de créer des images de condition et ne nécessite que le téléchargement du modèle de plug-in.

Télécharger le plug-in de contour de Canny

Le plug-in de contour de Canny contient les options de configuration suivantes :

Nom de l'option Description Plage de valeurs Valeur par défaut
threshold1 Premier seuil de la procédure d'hystérésis. Float 100
threshold2 Deuxième seuil de la procédure d'hystérésis. Float 200
apertureSize Taille de l'ouverture pour l'opérateur Sobel. La plage habituelle est comprise entre 3 et 7. Integer 3
l2Gradient Indique si la norme L2 est utilisée pour calculer l'amplitude du gradient d'image, au lieu de la norme L1 par défaut. BOOLEAN False
EdgePluginModelBaseOptions Objet BaseOptions qui définit le chemin d'accès au modèle de plug-in. Objet BaseOptions N/A

Pour en savoir plus sur le fonctionnement de ces options de configuration, consultez Détecteur de contours de Canny.

Plug-in de point de repère du visage

Exemple de deux images générées à partir d&#39;une image de condition fournie représentant un visage dessiné et de deux requêtes différentes, pour montrer que la même image de condition peut être utilisée pour générer des images très différentes

Le plug-in de point de repère du visage accepte la sortie de MediaPipe Face Landmarker comme image de condition. Face Landmarker fournit un maillage de visage détaillé d'un seul visage, qui mappe la présence et l'emplacement des caractéristiques faciales. Le modèle de fondation utilise le mappage facial impliqué par l'image de condition et génère un nouveau visage sur le maillage.

Télécharger le plug-in de point de repère du visage

Le plug-in de point de repère du visage nécessite également le bundle de modèles Face Landmarker model bundle pour créer l'image de condition. Ce bundle de modèles est le même que celui utilisé par la tâche Face Landmarker.

Télécharger le bundle de modèles de point de repère du visage

Le plug-in de point de repère du visage contient les options de configuration suivantes :

Nom de l'option Description Plage de valeurs Valeur par défaut
minFaceDetectionConfidence Score de confiance minimal pour que la détection de visage soit considérée comme réussie. Float [0.0,1.0] 0.5
minFacePresenceConfidence Score de confiance minimal de la présence du visage score dans la détection des points de repère du visage. Float [0.0,1.0] 0.5
faceModelBaseOptions L'objet BaseOptions qui définit le chemin d'accès au modèle qui crée l'image de condition. Objet BaseOptions N/A
FacePluginModelBaseOptions Objet BaseOptions qui définit le chemin d'accès au modèle de plug-in. Objet BaseOptions N/A

Pour en savoir plus sur le fonctionnement de ces options de configuration, consultez la tâche Face Landmarker.

Plug-in de profondeur

Exemple de deux images générées à l&#39;aide d&#39;une image de condition fournie montrant la forme générale d&#39;une voiture pour illustrer la capacité du plug-in Depth à créer des images qui ajoutent de la profondeur à une image plate

Le plug-in de profondeur accepte une image de condition qui spécifie la profondeur monoculaire d'un objet. Le modèle de fondation utilise l'image de condition pour déduire la taille et la profondeur de l'objet à générer, et génère une nouvelle image en fonction de la requête textuelle.

Télécharger le plug-in de profondeur

Le plug-in de profondeur nécessite également un modèle d'estimation de la profondeur pour créer l'image de condition.

Télécharger le modèle d'estimation de la profondeur

Le plug-in de profondeur contient les options de configuration suivantes :

Nom de l'option Description Plage de valeurs Valeur par défaut
depthModelBaseOptions L'objet BaseOptions qui définit le chemin d'accès au modèle qui crée l'image de condition. Objet BaseOptions N/A
depthPluginModelBaseOptions Objet BaseOptions qui définit le chemin d'accès au modèle de plug-in. Objet BaseOptions N/A

Personnalisation avec LoRA

La personnalisation d'un modèle avec LoRA peut permettre à Image Generator de générer des images basées sur des concepts spécifiques, qui sont identifiés par des jetons uniques lors de l'entraînement. Avec les nouveaux poids LoRA après l'entraînement, le modèle est en mesure de générer des images du nouveau concept lorsque le jeton est spécifié dans la requête textuelle.

La création de poids LoRA nécessite l'entraînement d'un modèle de fondation sur des images d'un objet, d'une personne ou d'un style spécifique, ce qui permet au modèle de reconnaître le nouveau concept et de l'appliquer lors de la génération d'images. Si vous créez des poids LoRA pour générer des images de personnes et de visages spécifiques, n'utilisez cette solution que sur votre visage ou sur les visages de personnes qui vous ont donné l'autorisation de le faire.

Vous trouverez ci-dessous la sortie d'un modèle personnalisé entraîné sur des images de théières de l'ensemble de données DreamBooth, à l'aide du jeton "monadikos teapot" :

Image photoréaliste générée d&#39;une théière posée sur une table à côté d&#39;un miroir fixé au mur

Requête : une théière monadikos à côté d'un miroir

Le modèle personnalisé a reçu le jeton dans la requête et a injecté une théière qu'il a appris à représenter à partir des poids LoRA. Il l'a placée dans l'image à côté d'un miroir, comme demandé dans la requête.

LoRA avec Vertex AI

Pour en savoir plus, consultez le guide de personnalisation, qui utilise Model Garden sur Vertex AI pour personnaliser un modèle en appliquant des poids LoRA à un modèle de fondation.