Questa pagina descrive come utilizzare l'outpainting per espandere i contenuti di un'immagine in un'area più grande o in un'area con dimensioni diverse.
I seguenti modelli supportano l'outpainting:
Esempio di Outpainting
L'outpainting è un metodo di modifica basato su maschere che espande i contenuti di un'immagine di base per adattarsi a un canvas della maschera più grande o di dimensioni diverse.
Origine immagine: Kari Shea su Unsplash. |
|
|
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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Configura l'autenticazione per il tuo ambiente.
Seleziona la scheda relativa a come prevedi di 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.
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 .
Espandere i contenuti di un'immagine
Utilizza i seguenti esempi di codice per espandere il contenuto di un'immagine esistente.
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 Outpaint.
Dall'elenco Modello, seleziona il modello Imagen da utilizzare.
In Immagine di input, fai clic su Aggiungi e seleziona l'immagine che stai modificando per caricarla.
Nella casella Prompt, inserisci un prompt che descriva come modificare l'immagine.
Nel menu delle proporzioni, seleziona un'opzione:
- crop_square Quadrato
- crop_16_9 16:9
- crop_9_16 9:16
- crop_landscape 4:3
- crop_portrait 3:4
- fullscreen Custom
Nella barra degli strumenti di modifica, seleziona il posizionamento dell'immagine:
- Allineamento a sinistra:
- Allinea al centro orizzontalmente:
- Allinea a destra:
- Allinea in alto:
- Allineamento verticale al centro:
- Allinea in basso:
Fai clic su Esegui.
REST
Per ulteriori informazioni sull'API Imagen, consulta quanto segue:- 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. prompt: Per l'outpainting delle immagini, puoi fornire una stringa vuota per creare le immagini modificate. Se scegli di fornire un prompt, utilizza una descrizione dell'area mascherata per ottenere risultati ottimali. Ad esempio, "un cielo blu" anziché "inserisci un cielo blu".referenceType: UnaReferenceImageè un'immagine che fornisce un contesto aggiuntivo per la modifica delle immagini. Per i casi d'uso di modifica è necessaria un'immagine di riferimento RGB non elaborata normale (REFERENCE_TYPE_RAW). In una richiesta può esistere al massimo un'immagine di riferimento non elaborata. L'immagine di output ha la stessa altezza e larghezza dell'immagine di riferimento non elaborata. Per i casi d'uso di modifica mascherata è necessaria un'immagine di riferimento della maschera (REFERENCE_TYPE_MASK). Se è presente un'immagine di riferimento non elaborata, l'immagine della maschera deve avere la stessa altezza e larghezza dell'immagine di riferimento non elaborata. Se l'immagine di riferimento della maschera è vuota emaskModenon è impostato suMASK_MODE_USER_PROVIDED, la maschera viene calcolata in base all'immagine di riferimento non elaborata.- B64_BASE_IMAGE: l'immagine di base da modificare o di cui eseguire l'upscaling. L'immagine deve essere specificata come stringa di byte con codifica base64. Dimensioni massime: 10 MB.
- B64_OUTPAINTING_MASK: l'immagine in bianco e nero che vuoi utilizzare come livello di maschera per modificare l'immagine originale. La maschera deve avere la stessa risoluzione dell'immagine di input. L'immagine di output avrà la stessa risoluzione dell'immagine di input. Questa immagine maschera deve essere specificata come stringa di byte con codifica base64. Dimensioni massime: 10 MB.
- MASK_DILATION - float. La percentuale della larghezza dell'immagine in base alla quale dilatare questa maschera. Per l'outpainting è consigliato un valore di
0.03. L'impostazione"dilation": 0.0potrebbe generare bordi evidenti nel punto di estensione o causare un effetto bordo bianco. - EDIT_STEPS - numero intero. Il numero di passaggi di campionamento per il modello di base. Per
l'outpainting, inizia con
35passaggi. Aumenta i passaggi se la qualità non soddisfa i tuoi requisiti. - EDIT_IMAGE_COUNT: il numero di immagini modificate. Valori interi accettati: 1-4. 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": "",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_RAW",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "B64_BASE_IMAGE"
}
},
{
"referenceType": "REFERENCE_TYPE_MASK",
"referenceId": 2,
"referenceImage": {
"bytesBase64Encoded": "B64_OUTPAINTING_MASK"
},
"maskImageConfig": {
"maskMode": "MASK_MODE_USER_PROVIDED",
"dilation": MASK_DILATION
}
}
]
}
],
"parameters": {
"editConfig": {
"baseSteps": EDIT_STEPS
},
"editMode": "EDIT_MODE_OUTPAINT",
"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 creata dall'AI codificati in base64.
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
}
]
}
Limitazioni
Se l'immagine ricreata viene espansa al 200% o più delle dimensioni dell'immagine originale, il modello potrebbe produrre dettagli distorti. Come best practice, ti consigliamo di aggiungere un passaggio di post-elaborazione per eseguire l'alpha blending sulle immagini outpainted.
Il seguente codice è un esempio di post-elaborazione:
parameters = {
"editConfig": {
"outpaintingConfig": {
"blendingMode": "alpha-blending",
"blendingFactor": 0.01,
},
},
}
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à