Guida alla generazione di immagini

L'attività Generatore di immagini MediaPipe consente di generare immagini basate su un prompt di testo. Questa attività utilizza un modello da testo a immagine per generare immagini utilizzando le tecniche di diffusione.

L'attività accetta un prompt di testo come input, insieme a un'immagine condizione facoltativa che il modello può aumentare e utilizzare come riferimento per la generazione. Per saperne di più sulla generazione da testo a immagine condizionata, consulta Plug-in di diffusione on-device per la generazione da testo a immagine condizionata.

Il generatore di immagini può anche generare immagini in base a concetti specifici forniti al modello durante l'addestramento o il riaddestramento. Per ulteriori informazioni, consulta la sezione 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 illustrano l'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 il generatore di immagini per implementare quanto segue:

  1. Generazione da testo a immagine: 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. Il generatore di immagini utilizza le immagini di condizioni in modi simili a ControlNet.
  3. Generazione di immagini con ponderazioni LoRA: genera immagini di persone, oggetti e stili specifici con un prompt di testo utilizzando ponderazioni del modello personalizzate.
Input attività Output attività
Il generatore di immagini accetta i seguenti input:
  • Prompt di testo
  • Seed
  • Numero di iterazioni generative
  • (Facoltativo) Immagine 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à prevede 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 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 condizione 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 aggiuntivi per generare immagini.

Quando aggiungi un modello di plug-in al modello di base, configura anche le opzioni dei plug-in. Il plug-in Punto di riferimento Volto utilizza faceConditionOptions, il plug-in Canny edge utilizza edgeConditionOptions e il plug-in Profondità usa depthConditionOptions.

Opzioni 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 dell'apertura per l'operatore Sobel. L'intervallo tipico è compreso tra 3 e 7. Integer 3
l2Gradient Indica se viene utilizzata la norma L2 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 di plug-in. BaseOptions oggetto N/A

Per ulteriori informazioni su come funzionano queste opzioni di configurazione, consulta Rivelatore di perimetro Canny.

Opzioni punto di riferimento per i volti

Configura le seguenti opzioni in faceConditionOptions.

Nome opzione Descrizione Intervallo di valori Valore predefinito
minFaceDetectionConfidence Il punteggio di affidabilità minimo affinché il rilevamento dei volti venga considerato efficace. Float [0.0,1.0] 0.5
minFacePresenceConfidence Il punteggio di affidabilità minimo del punteggio della presenza di un 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 di plug-in. BaseOptions oggetto N/A

Per ulteriori informazioni sul funzionamento di queste opzioni di configurazione, vedi l'attività Indicatore di riferimento dei volti.

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 di plug-in. BaseOptions oggetto N/A

ottimizzabili

Il generatore di immagini richiede un modello di base, ovvero un modello IA 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 di plug-in sono facoltativi e si integrano ai modelli di base, consentendo agli utenti di fornire un'immagine condizione aggiuntiva insieme a un prompt di testo, per una generazione di immagini più specifica. La personalizzazione dei modelli di base utilizzando le ponderazioni LoRA è un'opzione che spiega al modello di base un concetto specifico, ad esempio un oggetto, una persona o uno stile, e li 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 runwayml/stable-diffusion-v1-5 EMA-only, in base al modello seguente:

Anche i seguenti modelli di base sono compatibili con il generatore di immagini:

Dopo aver scaricato un modello di base, utilizza image_generator_converter per convertirlo nel formato on-device appropriato per il generatore di immagini.

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 insieme a un modello di base. I modelli di plug-in consentono al generatore di immagini di accettare un'immagine condizione insieme a un prompt di testo come input, che ti consente di controllare la struttura delle immagini generate. I modelli di plug-in offrono funzionalità simili a ControlNet, con una nuova architettura specifica per la diffusione sul dispositivo.

I modelli di plug-in devono essere specificati nelle opzioni di base e potrebbero richiedere il download di file dei modelli aggiuntivi. Ogni plug-in ha requisiti unici per l'immagine della condizione, che può essere generata dallo strumento Generatore di immagini.

Plug-in Canny Edge

Il plug-in Canny Edge accetta un'immagine condizione che delinea i bordi previsti dell'immagine generata. Il modello di base utilizza i bordi coinvolti nell'immagine della condizione e genera una nuova immagine in base al prompt di testo. Il generatore di immagini ha funzionalità integrate per creare immagini di condizioni e richiede solo il download del modello del 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 viene utilizzata la norma L2 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 di plug-in. BaseOptions oggetto N/A

Per ulteriori informazioni su come funzionano queste opzioni di configurazione, consulta Rivelatore di perimetro Canny.

Plug-in Face Punto di riferimento

Il plug-in Face Punto di riferimento accetta l'output di Face Marks di MediaPipe come immagine della condizione. L'indicatore facciale e fornisce una maglia dettagliata di un singolo volto, che mappa la presenza e la posizione delle caratteristiche del volto. Il modello di base utilizza la mappatura del viso implicita nell'immagine condizione e genera un nuovo volto nel mesh.

Scarica il plug-in dei punti di riferimento per i volti

Il plug-in Punto di riferimento Volto richiede anche il set di modelli Punti di riferimento per i volti per creare l'immagine della condizione. Questo bundle modello è lo stesso utilizzato dall'attività Fattore di riferimento per i volti.

Scarica il bundle di modelli di riferimento per il volto

Il plug-in Face Target contiene le seguenti opzioni di configurazione:

Nome opzione Descrizione Intervallo di valori Valore predefinito
minFaceDetectionConfidence Il punteggio di affidabilità minimo affinché il rilevamento dei volti venga considerato efficace. Float [0.0,1.0] 0.5
minFacePresenceConfidence Il punteggio di affidabilità minimo del punteggio della presenza di un 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 di plug-in. BaseOptions oggetto N/A

Per ulteriori informazioni sul funzionamento di queste opzioni di configurazione, vedi l'attività Indicatore di riferimento dei volti.

Plug-in per la profondità

Il plug-in Depth accetta un'immagine 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 alla richiesta di testo.

Scarica il plug-in per la profondità

Il plug-in Depth richiede anche un modello di stima della profondità per creare l'immagine della condizione.

Scarica il modello di stima della profondità

Il plug-in Depth 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 di plug-in. BaseOptions oggetto N/A

Personalizzazione con LoRA

La personalizzazione di un modello con LoRA consente al generatore di immagini di generare immagini basate su concetti specifici identificati da token univoci durante l'addestramento. Con le nuove ponderazioni 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 ponderazioni LoRA richiede l'addestramento di un modello di base sulle immagini di un oggetto, una persona o uno stile specifici, consentendo al modello di riconoscere il nuovo concetto e applicarlo durante la generazione delle immagini. Se stai creando ponderazioni LoRa per generare immagini di persone e volti specifici, utilizza questa soluzione solo sul tuo viso o su quelli delle persone che ti hanno concesso l'autorizzazione.

Di seguito è riportato l'output di un modello personalizzato addestrato sulle immagini di teiere dal 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 posiziona l'immagine accanto a uno specchio come richiesto nel prompt.

LoRA con Vertex AI

Per saperne di più, consulta la guida alla personalizzazione, che utilizza Model Garden su Vertex AI per personalizzare un modello applicando le ponderazioni LoRA a un modello di base.