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 invite 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 de texte à image conditionnée, consultez la section Plug-ins de diffusion sur l'appareil pour la génération d'un fichier texte vers image fractionné.
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 la section Personnaliser avec LoRA.
Commencer
Commencez à utiliser cette tâche en suivant l'un de ces guides d'implémentation pour votre plate-forme cible. Ces guides spécifiques à la plate-forme vous guident tout au long de l'implémentation de base de cette tâche, avec des exemples de code utilisant 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.
Caractéristiques
Vous pouvez utiliser le générateur d'images pour implémenter les éléments suivants:
- Génération de texte en image : générez des images à l'aide d'une invite textuelle.
- Génération d'images avec des images de condition : générez des images avec une invite textuelle et une image de référence. Le générateur d'images utilise des images de conditions d'une manière semblable à 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 en utilisant les pondérations de modèles personnalisées.
Entrées des tâches | Sorties de tâches |
---|---|
Le générateur d'images accepte les entrées suivantes:
|
Le générateur d'images affiche 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 de modèles du générateur d'images qui stocke les pondérations du modèle. | PATH |
loraWeightsFilePath |
Définit le chemin d'accès au fichier de pondérations 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 conditions dans l'entrée de la tâche, que le modèle de fondation peut enrichir et utiliser comme référence pour la génération. Ces images de conditions peuvent être des points de repère de visage, des contours d'arêtes 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 de plug-in. Le plug-in des points de repère de visage utilise faceConditionOptions
, le plug-in Canny Edge utilise edgeConditionOptions
et le plug-in Depth utilise depthConditionOptions
.
Options d'angles simples
Configurez les options suivantes dans edgeConditionOptions
.
Nom de l'option | Description | Plage de valeurs | Valeur par défaut |
---|---|---|---|
threshold1 |
Premier seuil pour la procédure d'hystérèse. | Float |
100 |
threshold2 |
Deuxième seuil pour la procédure d'hystérèse. | Float |
200 |
apertureSize |
Taille d'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, plutôt que la norme L1 par défaut. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
L'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 page Détecteur de périphérie Canny.
Options des points de repère de 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 visages soit considérée comme réussie. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Score de confiance minimal du score de présence de visage dans la détection des points de repère de 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 |
L'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 d'ajout de points de repère de visages.
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 |
L'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, c'est-à-dire un modèle d'IA texte-vers-image qui utilise des techniques de diffusion pour générer de nouvelles images. Les modèles de fondation présentés dans cette section sont des modèles légers optimisés pour les smartphones haut de gamme.
Les modèles de plug-ins sont facultatifs et complètent les modèles de base. Les utilisateurs peuvent ainsi fournir une image de condition supplémentaire avec une invite textuelle, pour générer des images plus spécifiques. 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 les injecter dans des images générées.
Modèles de fondation
Les modèles de fondation sont des modèles de diffusion latents texte-image-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 runwayml/stable-diffusion-v1-5 EMA-only
, sur la base 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 sur l'appareil approprié 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 présentés dans cette section sont développés par Google et doivent être utilisés conjointement avec un modèle de fondation. Les modèles de plug-ins permettent à Image Generator d'accepter une image de condition ainsi qu'une requête de texte en tant qu'entrée, ce qui vous permet de contrôler la structure des images générées. Les modèles de plug-ins offrent des fonctionnalités semblables à celles de ControlNet, avec une nouvelle architecture spécifiquement 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 le générateur d'images.
Plug-in Canny Edge
Le plug-in Canny Edge accepte une image de condition qui décrit les bords prévus de l'image générée. Le modèle de fondation utilise les bords impliqués par l'image de condition et génère une nouvelle image basée sur 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 et ne nécessite que le téléchargement du 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 pour la procédure d'hystérèse. | Float |
100 |
threshold2 |
Deuxième seuil pour la procédure d'hystérèse. | Float |
200 |
apertureSize |
Taille d'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, plutôt que la norme L1 par défaut. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
L'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 page Détecteur de périphérie Canny.
Plug-in Face Marker
Le plug-in Face Marker accepte la sortie de MediaPipe Face LandMarker de MediaPipe en tant qu'image de condition. Le repère terrestre du visage fournit un maillage détaillé des visages d'un seul visage, qui cartographie la présence et l'emplacement des traits du visage. Le modèle de fondation utilise le mappage du visage impliqué par l'image de condition et génère une nouvelle face sur le maillage.
Télécharger le plug-in de point de repère Face
Le plug-in de points de repère de visage nécessite également le bundle de modèles Face Marker pour créer l'image de condition. Ce groupe de modèles est le même groupe que celui utilisé par la tâche Outil de repère de visage.
Télécharger le bundle de modèles de points de repère de visage
Le plug-in Face Marker 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 visages soit considérée comme réussie. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Score de confiance minimal du score de présence de visage dans la détection des points de repère de 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 |
L'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 d'ajout de points de repère de visages.
Plug-in Depth
Le plug-in Depth 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, puis génère une nouvelle image en fonction de l'invite de texte.
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 |
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 |
L'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 en fonction de concepts spécifiques, identifiés par des jetons uniques lors de l'entraînement. Avec les nouvelles pondérations de 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 de texte.
La création de pondérations LoRA nécessite d'entraîner un modèle de fondation sur des images d'un objet, d'une personne ou d'un style spécifiques, 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 pondérations de LoRa pour générer des images de personnes et de visages spécifiques, n'utilisez cette solution que sur votre visage ou sur le visage des personnes qui vous ont autorisé à le faire.
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 "monadikos teapot":
Invite: une théière Monadikos à côté d'un miroir
Le modèle personnalisé a reçu le jeton dans la requête et injecté une théière qu'il a appris à représenter à partir des pondérations LoRA, et place l'image à côté d'un miroir comme demandé dans la requête.
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.