Questa pagina descrive come inserire oggetti in un'immagine, un processo noto anche come inpainting. Imagen su Vertex AI consente di specificare un'area di maschera per inserire oggetti in un'immagine. Puoi portare la tua maschera o lasciare che Imagen ne generi una per te.
I seguenti modelli supportano l'inserimento di oggetti in un'immagine:
Esempio di inserimento di contenuti
Con l'inpainting, puoi utilizzare un'immagine di base, una maschera dell'immagine e un prompt di testo per aggiungere contenuti a un'immagine esistente.
Input
| Immagine di base* da modificare | Area di mascheramento specificata utilizzando gli strumenti nella console Google Cloud | Prompt di testo |
|---|---|---|
|
|
fragole |
* Crediti immagine: Alex Lvrs su Unsplash.
Output dopo aver specificato un'area di mascheramento nella console Google Cloud
|
|
|
Visualizza la scheda del modello Imagen per la modifica e la personalizzazione
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Configura l'autenticazione per il tuo ambiente.
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
Python
Per utilizzare gli esempi di Python in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
-
Inserire con un'area di maschera definita
Utilizza i seguenti esempi per inviare una richiesta di inpainting utilizzando il modello Imagen 3.
Console
Nella console Google Cloud , vai alla pagina Vertex AI > Vertex AI Studio .
Fai clic su Genera contenuti multimediali.
Fai clic su Immagine.
Dall'elenco Attività, seleziona Inpaint-add.
Dall'elenco Modello, seleziona il modello Imagen da utilizzare.
In Immagine di input, fai clic su Aggiungi e seleziona l'immagine che stai modificando da caricare.
Nella casella Prompt, inserisci un prompt che descriva come modificare l'immagine.
Per specificare una maschera, esegui una delle seguenti operazioni:
- Carica la tua maschera:
- Crea una maschera sul computer.
- Fai clic su Carica Importa maschera e seleziona una maschera da caricare.
- Definisci la maschera: nella barra degli strumenti di editing, utilizza gli strumenti maschera (riquadro, pennello o masked_transitions strumento Inverti) per specificare l'area o le aree a cui aggiungere contenuti.
- Carica la tua maschera:
Fai clic su Esegui.
Python
Installa
pip install --upgrade google-genai
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Per saperne di più sull'API Imagen, consulta le seguenti risorse:- Metodo:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
-
REGION: la regione in cui si trova il progetto. Per ulteriori informazioni sulle regioni supportate, consulta AI generativa su località Vertex AI. -
PROJECT_ID: il tuo ID progetto Google Cloud . -
TEXT_PROMPT: Facoltativo. Un prompt di testo per guidare le immagini generate dal modello. Per risultati ottimali, utilizza una descrizione dell'area mascherata ed evita prompt di una sola parola. Ad esempio, utilizza "un simpatico corgi" anziché "corgi". -
B64_BASE_IMAGE: Un'immagine codificata in base64 dell'immagine in fase di modifica di dimensioni pari o inferiori a 10 MB. Per ulteriori informazioni sulla codifica Base64, vedi Codificare e decodificare file in Base64. -
B64_MASK_IMAGE: Un'immagine maschera in bianco e nero codificata in base64 di dimensioni pari o inferiori a 10 MB. -
MASK_DILATION: Facoltativo. Un valore float compreso tra 0 e 1, inclusi, che rappresenta la percentuale della larghezza dell'immagine di cui aumentare la maschera. L'utilizzo didilationaiuta a compensare le maschere imprecise. Ti consigliamo un valore di0.01. -
EDIT_STEPS: Facoltativo. Un numero intero che rappresenta il numero di passaggi di campionamento. Un valore più alto offre una migliore qualità dell'immagine, mentre un valore più basso offre una migliore latenza.Ti consigliamo di iniziare con
35passaggi. Se la qualità non soddisfa i tuoi requisiti, ti consigliamo di aumentare il valore fino a un limite superiore di75. -
SAMPLE_COUNT: Facoltativo. Un numero intero che descrive il numero di immagini da generare. L'intervallo di valori accettato è1-4. Il valore predefinito è4.
Metodo HTTP e URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict
Corpo JSON della richiesta:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_RAW",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "B64_BASE_IMAGE"
}
},
{
"referenceType": "REFERENCE_TYPE_MASK",
"referenceImage": {
"bytesBase64Encoded": "B64_MASK_IMAGE"
},
"maskImageConfig": {
"maskMode": "MASK_MODE_USER_PROVIDED",
"dilation": MASK_DILATION
}
}
]
}
],
"parameters": {
"editConfig": {
"baseSteps": EDIT_STEPS
},
"editMode": "EDIT_MODE_INPAINT_INSERTION",
"sampleCount": SAMPLE_COUNT
}
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
"sampleCount": 2. La risposta restituisce due oggetti di previsione, con
i byte dell'immagine generata con codifica base64.
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
}
]
}
Inserire con il rilevamento automatico della maschera
Utilizza i seguenti esempi per specificare l'inpainting per inserire contenuti. In questi esempi specifichi un'immagine di base e un prompt di testo. Imagen rileva e crea automaticamente un'area della maschera per modificare l'immagine di base.
Console
Nella console Google Cloud , vai alla pagina Vertex AI > Vertex AI Studio .
Fai clic su Genera contenuti multimediali.
Fai clic su Immagine.
Dall'elenco Attività, seleziona Inpaint-add.
Dall'elenco Modello, seleziona il modello Imagen da utilizzare.
In Immagine di input, fai clic su Aggiungi e seleziona l'immagine che stai modificando da caricare.
Nella casella Prompt, inserisci un prompt che descriva come modificare l'immagine.
Nella barra degli strumenti di modifica, fai clic su background_replaceEstrai maschera.
Seleziona una delle opzioni di estrazione della maschera:
Elementi di sfondo: rileva gli elementi di sfondo e crea una maschera intorno a loro.
Elementi in primo piano: rileva gli oggetti in primo piano e crea una maschera intorno a loro.
background_replace People: rileva le persone e crea una maschera intorno a loro.
Fai clic su Esegui.
Python
Installa
pip install --upgrade google-genai
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Per saperne di più sull'API Imagen, consulta le seguenti risorse:
- Metodo:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo Google Cloud ID progetto.
- LOCATION: la regione del progetto. Ad esempio,
us-central1,europe-west2oasia-northeast3. Per un elenco delle regioni disponibili, consulta Località dell'AI generativa su Vertex AI. Quando viene utilizzato un endpoint API regionale, la regione dell'URL dell'endpoint determina dove viene elaborata la richiesta e questoLOCATIONnel percorso della risorsa viene ignorato in caso di conflitto. - TEXT_PROMPT: il prompt di testo guida le immagini che il modello genera. Quando utilizzi un prompt per l'inserimento dell'inpainting, utilizza una descrizione dell'area mascherata per ottenere risultati ottimali. Evita i prompt di una sola parola. Ad esempio, utilizza "un simpatico corgi" anziché "corgi".
- B64_BASE_IMAGE: L'immagine di base da modificare o di cui aumentare la risoluzione. L'immagine deve essere specificata come stringa di byte con codifica base64. Dimensioni massime: 10 MB.
- MASK_MODE: una stringa che imposta il tipo di creazione automatica della maschera utilizzata dal modello.
Valori disponibili:
MASK_MODE_BACKGROUND: genera automaticamente una maschera utilizzando la segmentazione dello sfondo.MASK_MODE_FOREGROUND: genera automaticamente una maschera utilizzando la segmentazione del primo piano.MASK_MODE_SEMANTIC: genera automaticamente una maschera utilizzando la segmentazione semantica in base alle classi di segmentazione specificate nell'arraymaskImageConfig.maskClasses. Ad esempio:"maskImageConfig": { "maskMode": "MASK_MODE_SEMANTIC", "maskClasses": [175, 176], // bicycle, car "dilation": 0.01 }
- MASK_DILATION - float. La percentuale della larghezza dell'immagine in base alla quale dilatare questa maschera. Per compensare le maschere di input imperfette, è consigliabile un valore di
0.01. - EDIT_STEPS - numero intero. Il numero di passaggi di campionamento per il modello di base. Per
l'inserimento dell'inpainting, inizia da
35passaggi. Aumenta i passaggi fino al limite superiore di75se la qualità non soddisfa i tuoi requisiti. L'aumento dei passaggi aumenta anche la latenza delle richieste. - EDIT_IMAGE_COUNT: il numero di immagini modificate. Valori interi accettati: 1-4. Il valore predefinito è 4.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
Corpo JSON della richiesta:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_RAW",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "B64_BASE_IMAGE"
}
},
{
"referenceType": "REFERENCE_TYPE_MASK",
"referenceId": 2,
"maskImageConfig": {
"maskMode": "MASK_MODE",
"dilation": MASK_DILATION
}
}
]
}
],
"parameters": {
"editConfig": {
"baseSteps": EDIT_STEPS
},
"editMode": "EDIT_MODE_INPAINT_INSERTION",
"sampleCount": EDIT_IMAGE_COUNT
}
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
"sampleCount": 2. La risposta restituisce due oggetti di previsione, con
i byte dell'immagine generata con codifica base64.
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
}
]
}
Limitazioni
Le sezioni seguenti spiegano le limitazioni della funzionalità di rimozione oggetti di Imagen.
Pixel modificati
Il modello genera pixel alla propria risoluzione (ad esempio, 1024 x 1024), che potrebbe differire da quella dell'immagine di input. Ciò significa che l'immagine generata potrebbe presentare piccole modifiche che non erano presenti nell'immagine originale.
Per preservare perfettamente l'immagine, ti consigliamo di unire l'immagine generata con l'immagine di input utilizzando la maschera. In genere, se la risoluzione dell'immagine di input è 2K o superiore, è necessario eseguire il blending dell'immagine generata e dell'immagine di input.
Inserisci limitazione
Sebbene l'oggetto inserito corrisponda in genere allo stile dell'immagine di base, alcune parole chiave potrebbero produrre risultati simili a cartoni animati anziché un output fotorealistico.
Ad esempio, il prompt "giraffa gialla" potrebbe generare un'immagine in stile cartone animato perché le giraffe sono naturalmente marroni e beige. Generare immagini fotorealistiche con colori innaturali può essere difficile.
Passaggi successivi
Leggi gli articoli su Imagen e altri prodotti di AI generativa su Vertex AI:
- Guida per gli sviluppatori per iniziare a utilizzare Imagen 3 su Vertex AI
- Nuovi modelli e strumenti di media generativi, creati con e per i creator
- Novità di Gemini: Custom Gem e generazione di immagini migliorata con Imagen 3
- Google DeepMind: Imagen 3, il nostro modello di conversione da testo a immagine di altissima qualità