L'attività MediaPipe Image Generator ti consente di generare immagini in base a un prompt di testo. Questa attività utilizza un modello di conversione da testo a immagine per generare immagini utilizzando tecniche di diffusione.
L'attività accetta un prompt di testo come input, insieme a un'immagine di condizione facoltativa che il modello può aumentare e utilizzare come riferimento per la generazione. Per saperne di più sulla generazione di testo in immagine condizionata, consulta Plug-in di diffusione on-device per la generazione di testo in immagine condizionata.
Image Generator può anche generare immagini in base a concetti specifici forniti al modello durante l'addestramento o il ricoinvolgimento. Per ulteriori informazioni, consulta la sezione Personalizzare con LoRa.
Inizia
Per iniziare a utilizzare questa attività, segui una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per la piattaforma illustrano un'implementazione di base di questa attività, con esempi di codice che utilizzano un modello predefinito e le opzioni di configurazione consigliate:
- Android - Esempio di codice - Guide
- Personalizza con LoRA - Esempio di codice - Colab
Dettagli attività
Questa sezione descrive le funzionalità, gli input, gli output e le opzioni di configurazione di questa attività.
Funzionalità
Puoi utilizzare Generatore di immagini per implementare quanto segue:
- Generazione di immagini a partire da testo: genera immagini con un prompt di testo.
- Generazione di immagini con immagini di condizione: genera immagini con un prompt di testo e un'immagine di riferimento. Image Generator utilizza le immagini delle condizioni in modi simili a ControlNet.
- Generare immagini con pesi LoRA: genera immagini di persone, oggetti e stili specifici con un prompt di testo utilizzando pesi del modello personalizzati.
Input delle attività | Output delle attività |
---|---|
Il generatore di immagini accetta i seguenti input:
|
Il Generatore di immagini genera i seguenti risultati:
|
Opzioni di configurazione
Questa attività ha le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori |
---|---|---|
imageGeneratorModelDirectory |
La directory del modello di generatore di immagini che memorizza i pesi del modello. | PATH |
loraWeightsFilePath |
Imposta il percorso del file dei pesi LoRA. Facoltativo e applicabile solo se il modello è stato personalizzato con LoRa. | PATH |
errorListener |
Imposta un listener di errore facoltativo. | N/A |
L'attività supporta anche i modelli plug-in, che consentono agli utenti di includere immagini delle condizioni nell'input dell'attività, che il modello di base può aumentare e utilizzare come riferimento per la generazione. Queste immagini di condizione possono essere punti di riferimento del viso, contorni dei bordi e stime della profondità, che il modello utilizza come contesto e informazioni aggiuntivi per generare immagini.
Quando aggiungi un modello plug-in al modello di base, configura anche le opzioni del plug-in. Il plug-in di landmark del viso utilizza faceConditionOptions
, il plug-in di soglie di Canny utilizza edgeConditionOptions
e il plug-in di profondità utilizza depthConditionOptions
.
Opzioni di bordo Canny
Configura le seguenti opzioni in edgeConditionOptions
.
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
threshold1 |
Prima soglia per la procedura di isteresi. | Float |
100 |
threshold2 |
Seconda soglia per la procedura di isteresi. | Float |
200 |
apertureSize |
Dimensione apertura per l'operatore Sobel. L'intervallo tipico è compreso tra 3 e 7. | Integer |
3 |
l2Gradient |
Indica se per calcolare l'intensità del gradiente dell'immagine viene utilizzata la norma L2 anziché la norma L1 predefinita. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello del plug-in. |
BaseOptions oggetto |
N/A |
Per ulteriori informazioni sul funzionamento di queste opzioni di configurazione, consulta Rilevatore di bordi di Canny.
Opzioni di punti di riferimento del viso
Configura le seguenti opzioni in faceConditionOptions
.
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
minFaceDetectionConfidence |
Il punteggio di attendibilità minimo per il rilevamento del volto deve essere considerato positivo. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Il punteggio di attendibilità minimo del punteggio di presenza del volto nel rilevamento dei punti di riferimento del volto. | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello che crea l'immagine della condizione. |
BaseOptions oggetto |
N/A |
FacePluginModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello del plug-in. |
BaseOptions oggetto |
N/A |
Per ulteriori informazioni sul funzionamento di queste opzioni di configurazione, consulta l'attività Face Landmarker.
Opzioni di profondità
Configura le seguenti opzioni in depthConditionOptions
.
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
depthModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello che crea l'immagine della condizione. |
BaseOptions oggetto |
N/A |
depthPluginModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello del plug-in. |
BaseOptions oggetto |
N/A |
Modelli
Il generatore di immagini richiede un modello di base, ovvero un modello di IA di conversione da testo a immagine che utilizza tecniche di diffusione per generare nuove immagini. I modelli di base elencati in questa sezione sono modelli leggeri ottimizzati per l'esecuzione su smartphone di fascia alta.
I modelli dei plug-in sono facoltativi e integrano i modelli di base, consentendo agli utenti di fornire un'immagine di condizione aggiuntiva insieme a un prompt di testo per la generazione di immagini più specifiche. La personalizzazione dei modelli di base mediante i pesi LoRA è un'opzione che insegna al modello di base un concetto specifico, come un oggetto, una persona o uno stile, e lo inserisce nelle immagini generate.
Modelli di base
I modelli di base sono modelli di diffusione latenti da testo a immagine che generano
immagini da un prompt di testo. Il generatore di immagini richiede che il modello di base sia corrispondente al formato del modello runwayml/stable-diffusion-v1-5 EMA-only
, in base al seguente modello:
I seguenti modelli di base sono compatibili anche con Generatore di immagini:
Dopo aver scaricato un modello di base, utilizza image_generator_converter per convertirlo nel formato on-device appropriato per Image Generator.
Installa le dipendenze necessarie:
$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py
Esegui lo script
convert.py
:
$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>
Modelli di plug-in
I modelli dei plug-in in questa sezione sono sviluppati da Google e devono essere utilizzati in combinazione con un modello di base. I modelli dei plug-in consentono a Generatore di immagini di accettare come input un'immagine di condizione insieme a un prompt di testo, il che ti consente di controllare la struttura delle immagini generate. I modelli di plug-in forniscono funzionalità simili a ControlNet, con un'architettura innovativa specifica per la diffusione on-device.
I modelli dei plug-in devono essere specificati nelle opzioni di base e potrebbero richiedere il download di file di modelli aggiuntivi. Ogni plug-in ha requisiti specifici per l'immagine della condizione, che può essere generata da Image Generator.
Plug-in Canny Edge
Il plug-in Canny Edge accetta un'immagine di condizione che delinea i bordi previsti dell'immagine generata. Il modello di base utilizza i bordi impliciti dell'immagine condizione e genera una nuova immagine in base al prompt di testo. Il generatore di immagini contiene funzionalità integrate per creare immagini delle condizioni e richiede solo il download del modello del plug-in.
Il plug-in Canny Edge contiene le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
threshold1 |
Prima soglia per la procedura di isteresi. | Float |
100 |
threshold2 |
Seconda soglia per la procedura di isteresi. | Float |
200 |
apertureSize |
Dimensione apertura per l'operatore Sobel. L'intervallo tipico è compreso tra 3 e 7. | Integer |
3 |
l2Gradient |
Indica se per calcolare l'intensità del gradiente dell'immagine viene utilizzata la norma L2 anziché la norma L1 predefinita. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello del plug-in. |
BaseOptions oggetto |
N/A |
Per ulteriori informazioni sul funzionamento di queste opzioni di configurazione, consulta Rilevatore di bordi di Canny.
Plug-in Punto di riferimento del viso
Il plug-in Face Landmark accetta l'output di Face Landmark di MediaPipe come immagine di condizione. Il punto di riferimento per il volto fornisce un mesh dettagliato di un singolo volto, che mappa la presenza e la posizione dei tratti del viso. Il modello di base utilizza la mappatura del volto implicita nell'immagine della condizione e genera un nuovo volto sulla mesh.
Scarica il plug-in per i punti di riferimento del viso
Il plug-in dei punti di riferimento del viso richiede anche il modello bundle di Face Landmarker per creare l'immagine della condizione. Questo bundle di modelli è lo stesso utilizzato dall'attività Face Landmarker.
Scarica il pacchetto del modello di punti di riferimento del viso
Il plug-in Landmark del viso contiene le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
minFaceDetectionConfidence |
Il punteggio di attendibilità minimo per il rilevamento del volto deve essere considerato positivo. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Il punteggio di attendibilità minimo del punteggio di presenza del volto nel rilevamento dei punti di riferimento del volto. | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello che crea l'immagine della condizione. |
BaseOptions oggetto |
N/A |
FacePluginModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello del plug-in. |
BaseOptions oggetto |
N/A |
Per ulteriori informazioni sul funzionamento di queste opzioni di configurazione, consulta l'attività Face Landmarker.
Plug-in di profondità
Il plug-in Profondità accetta un'immagine di condizione che specifica la profondità monoculare di un oggetto. Il modello di base utilizza l'immagine della condizione per dedurre le dimensioni e la profondità dell'oggetto da generare e genera una nuova immagine in base al prompt di testo.
Il plug-in Profondità richiede anche un modello di stima della profondità per creare l'immagine con le condizioni.
Scarica il modello di stima della profondità
Il plug-in Profondità contiene le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
depthModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello che crea l'immagine della condizione. |
BaseOptions oggetto |
N/A |
depthPluginModelBaseOptions |
L'oggetto BaseOptions che imposta il percorso
per il modello del plug-in. |
BaseOptions oggetto |
N/A |
Personalizzazione con LoRa
La personalizzazione di un modello con LoRA può consentire a Image Generator di generare immagini in base a concetti specifici, identificati da token univoci durante l'addestramento. Con i nuovi pesi LoRA dopo l'addestramento, il modello è in grado di generare immagini del nuovo concetto quando il token è specificato nel prompt di testo.
La creazione di pesi LoRA richiede l'addestramento di un modello di base su immagini di un oggetto, una persona o uno stile specifico, che consente al modello di riconoscere il nuovo concetto e applicarlo durante la generazione di immagini. Se crei pesi LoRa per generare immagini di persone e volti specifici, utilizza questa soluzione solo sul tuo volto o sui volti di persone che ti hanno dato l'autorizzazione a farlo.
Di seguito è riportato l'output di un modello personalizzato addestrato su immagini di teiere del set di dati DreamBooth, utilizzando il token "monadikos teapot":
Prompt: una teiera monadikos accanto a uno specchio
Il modello personalizzato ha ricevuto il token nel prompt e ha inserito una teiera che ha imparato a rappresentare dai pesi LoRA e l'ha posizionata accanto a un specchio come richiesto nel prompt.
Per ulteriori informazioni, consulta la guida alla personalizzazione, che utilizza Model Garden su Vertex AI per personalizzare un modello applicando i pesi LoRA a un modello di base.