Auf dieser Seite wird beschrieben, wie Sie mit Outpainting den Inhalt eines Bildes auf einen größeren Bereich oder einen Bereich mit unterschiedlichen Abmessungen erweitern können.
Die folgenden Modelle unterstützen Outpainting:
Outpainting-Beispiel
Das Outpainting ist eine maskenbasierte Bearbeitungsmethode, mit der Sie den Inhalt eines Basisbilds erweitern können, damit er in einen größeren oder unterschiedlich großen Maskenbereich passt.
Bildquelle: Kari Shea auf Unsplash |
|
|
Modellkarte für Imagen for Editing and Customization ansehen
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
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.-
Richten Sie die Authentifizierung für Ihre Umgebung ein.
Wählen Sie den Tab für die geplante Verwendung der Beispiele auf dieser Seite aus:
Console
Wenn Sie über die Google Cloud Console auf Dienste und APIs von Google Cloud zugreifen, müssen Sie die Authentifizierung nicht einrichten.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI.
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Inhalt eines Bildes erweitern
Verwenden Sie die folgenden Codebeispiele, um den Inhalt eines vorhandenen Bildes zu erweitern.
Console
Rufen Sie in der Google Cloud Console die Seite Vertex AI > Vertex AI Studio auf.
Klicken Sie auf Media generieren.
Klicken Sie auf Bild.
Wählen Sie in der Liste Aufgabe die Option Outpaint aus.
Wählen Sie in der Liste Modell das Imagen-Modell aus, das Sie verwenden möchten.
Klicken Sie unter Eingabebild auf Hinzufügen und wählen Sie das Bild aus, das Sie bearbeiten möchten, um es hochzuladen.
Geben Sie im Feld Prompt einen Prompt ein, der beschreibt, wie das Bild bearbeitet werden soll.
Wählen Sie im Menü „Seitenverhältnis“ ein Seitenverhältnis aus:
- crop_square Quadrat
- crop_16_9 16:9
- crop_9_16 9:16
- crop_landscape 4:3
- crop_portrait 3:4
- Vollbild Benutzerdefiniert
Wählen Sie in der Bearbeitungssymbolleiste die Platzierung des Bildes aus:
- Linksbündig:
- Horizontal zentriert ausrichten:
- Rechtsbündig:
- Oben ausrichten:
- Vertikal zentriert ausrichten:
- Unten ausrichten:
Klicken Sie auf Ausführen.
REST
Weitere Informationen zur Imagen API finden Sie hier:- Methode:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud Projekt-ID.
- LOCATION: Die Region Ihres Projekts. Beispiel:
us-central1,europe-west2oderasia-northeast3. Eine Liste der verfügbaren Regionen finden Sie unter Generative AI an Vertex AI-Standorten. Wenn ein regionaler API-Endpunkt verwendet wird, wird die Region, in der die Anfrage verarbeitet wird, durch die URL des Endpunkts bestimmt. DasLOCATIONim Ressourcenpfad wird ignoriert, wenn es zu Konflikten kommt. prompt: Beim Inpainting von Bildern können Sie einen leeren String angeben, um die bearbeiteten Bilder zu erstellen. Wenn Sie einen Prompt angeben, verwenden Sie am besten eine Beschreibung des maskierten Bereichs. Beispiel: „ein blauer Himmel“ statt „füge einen blauen Himmel ein“.referenceType: EinReferenceImageist ein Bild, das zusätzlichen Kontext für die Bildbearbeitung liefert. Für Bearbeitungsanwendungsfälle ist ein normales RGB-Rohbild als Referenz (REFERENCE_TYPE_RAW) erforderlich. Eine Anfrage darf maximal ein rohes Referenzbild enthalten. Das Ausgabebild hat dieselbe Höhe und Breite wie das RAW-Referenzbild. Für Anwendungsfälle mit maskierter Bearbeitung ist ein Maskenreferenzbild (REFERENCE_TYPE_MASK) erforderlich. Wenn ein Rohreferenzbild vorhanden ist, muss das Maskenbild dieselbe Höhe und Breite wie das Rohreferenzbild haben. Wenn das Maskenreferenzbild leer ist undmaskModenicht aufMASK_MODE_USER_PROVIDEDfestgelegt ist, wird die Maske anhand des Rohreferenzbilds berechnet.- B64_BASE_IMAGE: Das Basisbild, das bearbeitet oder hochskaliert werden soll. Das Bild muss als base64-codierter Bytestring angegeben werden. Größenbeschränkung: 10 MB.
- B64_OUTPAINTING_MASK: Das Schwarz-Weiß-Bild, das Sie als Maskenebene zum Bearbeiten des Originalbilds verwenden möchten. Die Maske muss dieselbe Auflösung wie das Eingabebild haben. Das Ausgabebild hat dieselbe Auflösung wie das Eingabebild. Dieses Maskenbild muss als base64-codierter Bytestring angegeben werden. Größenbeschränkung: 10 MB.
- MASK_DILATION – Gleitkommazahl. Der Prozentsatz der Bildbreite, um die Maske zu erweitern. Für die Funktion „Outpainting“ wird ein Wert von
0.03empfohlen. Wenn Sie"dilation": 0.0festlegen, kann dies zu offensichtlichen Rändern am Erweiterungspunkt oder zu einem weißen Randeffekt führen. - EDIT_STEPS – Ganzzahl. Die Anzahl der Stichprobenschritte für das Basismodell. Für Outpainting beginnen Sie mit
35Schritten. Erhöhen Sie die Anzahl der Schritte, wenn die Qualität nicht Ihren Anforderungen entspricht. - EDIT_IMAGE_COUNT: Die Anzahl der bearbeiteten Bilder. Zulässige Ganzzahlwerte: 1–4. Standardwert: 4
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
JSON-Text der Anfrage:
{
"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
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$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. Die Antwort gibt zwei Vorhersageobjekte zurück, wobei die generierten Bildbyte base64-codiert sind.
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
}
]
}
Beschränkungen
Wenn das erweiterte Bild auf 200% oder mehr der Originalbildgröße vergrößert wird, kann das Modell verzerrte Details erzeugen. Als Best Practice empfehlen wir, einen Nachbearbeitungsschritt hinzuzufügen, um Alpha-Blending für Outpainting-Bilder auszuführen.
Der folgende Code ist ein Beispiel für die Nachbearbeitung:
parameters = {
"editConfig": {
"outpaintingConfig": {
"blendingMode": "alpha-blending",
"blendingFactor": 0.01,
},
},
}
Nächste Schritte
Artikel zu Imagen und anderen Produkten für generative KI in Vertex AI:
- Leitfaden für Entwickler zum Einstieg in Imagen 3 in Vertex AI
- Neue generative Medienmodelle und ‑tools, die von und für Creator entwickelt wurden
- Neu in Gemini: Benutzerdefinierte Gems und verbesserte Bildgenerierung mit Imagen 3
- Google DeepMind: Imagen 3 – unser bisher bestes Text-zu-Bild-Modell