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 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 d'images à partir de texte conditionnel, consultez Plugins de diffusion sur l'appareil pour la génération d'images à partir de texte conditionnel.
Le générateur d'images 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 guident dans l'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 :
- Android – Exemple de code – Guide
- Personnaliser avec LoRA – Exemple de code – Colab
Détails de la tâche
Cette section décrit les capacités, les entrées, les sorties et les options de configuration de cette tâche.
Fonctionnalités
Vous pouvez utiliser le générateur d'images pour implémenter les éléments suivants :
- Génération d'images à partir de texte : générez des images à l'aide d'une requête textuelle.
- 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 similaire à ControlNet.
- Génération d'images avec des pondérations LoRA : générez des images de personnes, d'objets et de styles spécifiques à l'aide d'une requête textuelle utilisant des pondérations de modèle personnalisées.
Entrées de tâches | Sorties de tâches |
---|---|
Le générateur d'images accepte les entrées suivantes :
|
Le générateur d'images produit les résultats suivants :
|
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 pondérations du modèle. | PATH |
loraWeightsFilePath |
Définit le chemin d'accès au fichier de pondérations LoRA. Facultatif et ne s'applique que si le modèle a été personnalisé avec LoRA. | PATH |
errorListener |
Définit un écouteur d'erreur 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 repères faciaux utilise faceConditionOptions
, le plug-in de détection des contours de Canny utilise edgeConditionOptions
et le plug-in de profondeur utilise depthConditionOptions
.
Options de contours 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 pour la procédure d'hystérèse. | 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 de l'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 Canny.
Options de points de repère sur le 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 du visage soit considérée comme réussie. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Score de confiance minimal de la présence d'un visage dans la détection des points de repère du visage. | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
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 section Tâche de reconnaissance des points de repère du visage.
Options de profondeur
Configurez les options suivantes dans depthConditionOptions
.
Nom de l'option | Description | Plage de valeurs | Valeur par défaut |
---|---|---|---|
depthModelBaseOptions |
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
Le générateur d'images 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 base. Ils permettent 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 pondérations 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 base sont des modèles de diffusion latente de texte vers image qui génèrent des images à partir d'une requête textuelle. Le générateur d'images nécessite que le modèle de fondation corresponde au format de modèle stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only
, en fonction du modèle suivant :
Les modèles de fondation suivants sont également compatibles avec le générateur d'images :
Après avoir téléchargé un modèle de fondation, utilisez image_generator_converter pour convertir le modèle au format approprié sur l'appareil pour le générateur d'images.
Installez les dépendances nécessaires :
$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py
Exécutez le script
convert.py
:
$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>
Modèles de plug-ins
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 au générateur d'images d'accepter une image de conditionnement ainsi qu'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 concernant l'image de condition, qui peut être générée par le générateur d'images.
Plug-in Canny Edge
Le plug-in Canny Edge accepte une image de condition qui décrit les contours souhaités de l'image générée. Le modèle de base utilise les contours impliqués par l'image de condition et génère une nouvelle image en fonction de la requête textuelle. Le générateur d'images contient des fonctionnalités intégrées permettant de créer des images de conditions. Il vous suffit de télécharger le modèle de plug-in.
Télécharger le plug-in Canny Edge
Le plug-in Canny Edge 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 pour la procédure d'hystérèse. | 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 de l'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 Canny.
Plug-in Face Landmark
Le plug-in Face Landmark accepte la sortie du Face Landmarker MediaPipe comme image de condition. Le repère facial fournit un maillage facial détaillé d'un seul visage, qui mappe la présence et l'emplacement des caractéristiques faciales. Le modèle de base 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 Face landmark
Le plug-in Face landmark nécessite également le bundle de modèle Face Landmarker 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 points de repère du visage
Le plug-in Face Landmark 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 du visage soit considérée comme réussie. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Score de confiance minimal de la présence d'un visage dans la détection des points de repère du visage. | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
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 section Tâche de reconnaissance des points de repère du visage.
Plug-in de profondeur
Le plug-in Depth accepte une image de condition qui spécifie la profondeur monoculaire d'un objet. Le modèle de base utilise l'image de condition pour déduire la taille et la profondeur de l'objet à générer, puis génère une nouvelle image en fonction de l'invite textuelle.
Le plug-in Depth 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 Depth contient les options de configuration suivantes :
Nom de l'option | Description | Plage de valeurs | Valeur par défaut |
---|---|---|---|
depthModelBaseOptions |
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 au générateur d'images 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. Grâce aux nouveaux poids LoRA après l'entraînement, le modèle est capable de générer des images du nouveau concept lorsque le jeton est spécifié dans la requête textuelle.
Pour créer des pondérations LoRA, il faut entraîner un modèle de base sur des images d'un objet, d'une personne ou d'un style spécifiques. Le modèle peut ainsi reconnaître le nouveau concept et l'appliquer lors de la génération d'images. Si vous créez des pondérations 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é leur autorisation.
Vous trouverez ci-dessous le résultat 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 "théière monadikos" :
Requête : une théière monadikos à côté d'un miroir
Le modèle personnalisé a reçu le jeton dans le prompt et a inséré une théière qu'il a appris à représenter à partir des pondérations LoRA, et l'a placée dans l'image à côté d'un miroir, comme demandé dans le prompt.
Pour en savoir plus, consultez le guide de personnalisation, qui utilise Model Garden sur Vertex AI pour personnaliser un modèle en appliquant des pondérations LoRA à un modèle de fondation.