L'attività MediaPipe Image Generator consente di generare immagini in base a un prompt di testo. Questa attività utilizza un modello 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 immagini da testo condizionata, consulta la sezione Plugin di diffusione on-device per la generazione di immagini da testo condizionata.
Image Generator può anche generare immagini basate su concetti specifici forniti al modello durante l'addestramento o il riaddestramento. Per ulteriori informazioni, vedi Personalizzazione con LoRA.
Inizia
Inizia a utilizzare questa attività seguendo una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per piattaforma ti 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 - Guida
- 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 Image Generator per implementare quanto segue:
- Generazione di immagini 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 di condizione in modo simile a ControlNet.
- Generazione di immagini con pesi LoRA: genera immagini di persone, oggetti e stili specifici con un prompt di testo utilizzando pesi del modello personalizzati.
Input dell'attività | Output dell'attività |
---|---|
Il generatore di immagini accetta i seguenti input:
|
Il Generatore di immagini restituisce 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 del generatore di immagini in cui sono memorizzati 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 errori facoltativo. | N/A |
L'attività supporta anche i modelli di plug-in, che consentono agli utenti di includere immagini di condizioni nell'input dell'attività, che il modello di base può aumentare e utilizzare come riferimento per la generazione. Queste immagini delle condizioni possono essere punti di riferimento del volto, contorni dei bordi e stime di profondità, che il modello utilizza come contesto e informazioni aggiuntive per generare immagini.
Quando aggiungi un modello di plug-in al modello di base, configura anche le opzioni del plug-in. Il plug-in Punti caratteristici del volto utilizza faceConditionOptions
, il plug-in Rilevamento bordi Canny utilizza edgeConditionOptions
e il plug-in Profondità utilizza depthConditionOptions
.
Opzioni del filtro 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 dell'apertura per l'operatore Sobel. L'intervallo tipico è compreso tra 3 e 7. | Integer |
3 |
l2Gradient |
Indica se la norma L2 viene utilizzata per calcolare la grandezza del gradiente dell'immagine, 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 contorni Canny.
Opzioni per i punti di riferimento del viso
Configura le seguenti opzioni in faceConditionOptions
.
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
minFaceDetectionConfidence |
Il punteggio di confidenza minimo affinché il rilevamento del volto venga considerato riuscito. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Il punteggio di attendibilità minimo della 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 su come funzionano 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 foundation model, ovvero un modello di AI 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 essere eseguiti su smartphone di fascia alta.
I modelli di 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 una generazione di immagini più specifica. La personalizzazione dei modelli di base utilizzando 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
corrisponda al formato del modello stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only
, in base al
seguente modello:
Anche i seguenti modelli di base sono compatibili con Generatore di immagini:
Dopo aver scaricato un modello di base, utilizza image_generator_converter per convertire il modello 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 di plug-in in questa sezione sono sviluppati da Google e devono essere utilizzati in combinazione con un foundation model. I modelli di plug-in consentono a Image Generator di accettare un'immagine di condizione insieme a un prompt di testo come input, 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 specificamente per la diffusione sul dispositivo.
I modelli di plug-in devono essere specificati nelle opzioni di base e potrebbero richiedere di scaricare file di modelli aggiuntivi. Ogni plug-in ha requisiti unici 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 nell'immagine condizione e genera una nuova immagine in base al prompt di testo. Il generatore di immagini contiene funzionalità integrate per creare immagini di condizioni e richiede solo il download del modello di 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 dell'apertura per l'operatore Sobel. L'intervallo tipico è compreso tra 3 e 7. | Integer |
3 |
l2Gradient |
Indica se la norma L2 viene utilizzata per calcolare la grandezza del gradiente dell'immagine, 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 contorni Canny.
Plug-in Punti di riferimento del volto
Il plug-in Face Landmark accetta l'output di MediaPipe Face Landmarker come immagine di condizione. Il rilevatore di punti di riferimento del volto fornisce una mesh dettagliata di un singolo volto, che mappa la presenza e la posizione delle caratteristiche facciali. Il modello di base utilizza la mappatura facciale implicita nell'immagine di condizione e genera un nuovo volto sulla mesh.
Scarica il plug-in Punti di riferimento del volto
Il plug-in Face Landmark richiede anche il bundle del modello Face Landmarker per creare l'immagine della condizione. Questo bundle di modelli è lo stesso utilizzato dall'attività Face Landmarker.
Scarica il bundle del modello di punti di riferimento del volto
Il plug-in Punti di riferimento del volto contiene le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
minFaceDetectionConfidence |
Il punteggio di confidenza minimo affinché il rilevamento del volto venga considerato riuscito. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Il punteggio di attendibilità minimo della 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 su come funzionano queste opzioni di configurazione, consulta l'attività Face Landmarker.
Plug-in 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 della condizione.
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 al generatore di immagini di generare immagini basate su concetti specifici, identificati da token unici durante l'addestramento. Con i nuovi pesi LoRA dopo l'addestramento, il modello è in grado di generare immagini del nuovo concetto quando il token viene 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, il 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 il permesso di 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 dalle ponderazioni LoRA e l'ha posizionata nell'immagine accanto a uno 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 foundation model.