Guida alla generazione di immagini

Attività di generazione di immagini

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:

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:

  1. Generazione di immagini da testo: genera immagini con un prompt di testo.
  2. 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.
  3. 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:
  • Prompt di testo
  • Seed
  • Numero di iterazioni generative
  • (Facoltativo) Immagine della condizione
Il Generatore di immagini restituisce i seguenti risultati:
  • Immagine generata in base agli input.
  • (Facoltativo) Snapshot iterativi dell'immagine generata.

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

Esempio di output di due immagini generate che utilizzano un&#39;immagine di condizione fornita con un contorno marcato di mattoni e il prompt

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.

Scarica il plug-in Canny Edge

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

Output di esempio di due immagini generate che utilizzano un&#39;immagine di condizione fornita di un volto abbozzato e due prompt diversi per mostrare che la stessa immagine di condizione può essere utilizzata per generare immagini dall&#39;aspetto molto diverso

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à

Output di esempio di due immagini generate che utilizzano un&#39;immagine di condizione fornita che mostra la forma generale di un&#39;auto per dimostrare che il plug-in Profondità può creare immagini che aggiungono profondità a un&#39;immagine piatta

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.

Scarica il plug-in Profondità

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":

Un&#39;immagine fotorealistica generata di una teiera su un tavolo accanto a uno specchio montato a parete

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.

LoRA con Vertex AI

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.