Deterministische Bilder generieren

Bildgenerierung ausprobieren (Vertex AI Studio)

Imagen in einem Colab ausprobieren

Auf dieser Seite wird beschrieben, wie Sie eine Seed-Nummer in Imagen on Vertex AI verwenden, um deterministische Bilder zu generieren.

Eine Quell-Nummer ist eine Zahl, die Sie einer Anfrage hinzufügen, um nicht deterministisch generierte Bilder deterministisch zu machen. Deterministisch bedeutet, dass Sie jedes Mal, wenn Sie ein Bild mit Imagen generieren, dieselbe Ausgabe erhalten.

Sie können beispielsweise einen Prompt angeben, die Anzahl der Ergebnisse auf 1 setzen und eine Quell-Nummer verwenden, um jedes Mal, wenn Sie dieselben Eingabewerte verwenden, dasselbe Bild zu erhalten. Wenn Sie dieselbe Anfrage mit der Anzahl der Ergebnisse auf 8 gesetzt senden, erhalten Sie dieselben acht Bilder.

Seed zum Generieren von Bildern verwenden

Gehen Sie dazu so vor:

REST

Die Quell-Nummer ist ein optionales Feld im parameters-Objekt eines JSON-Anfragetexts.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID.
  • MODEL_VERSION: Die zu verwendende Imagen-Modellversion. Weitere Informationen zu den verfügbaren Modellen finden Sie unter Imagen-Modelle.

  • LOCATION: Die Region Ihres Projekts. Beispiel: us-central1, europe-west2 oder asia-northeast3. Eine Liste der verfügbaren Regionen finden Sie unter Generative AI an Vertex AI-Standorten.
  • TEXT_PROMPT: Der Text-Prompt, der bestimmt, welche Bilder das Modell generiert. Dieses Feld ist sowohl zum Erstellen als auch zum Bearbeiten erforderlich.
  • IMAGE_COUNT ist die Anzahl der generierten Bilder. Zulässige Ganzzahlwerte: 1–8 (imagegeneration@002), 1–4 (alle anderen Modellversionen). Standardwert: 4
  • Zusätzliche optionale Parameter

    Je nach Anwendungsfall können Sie die folgenden optionalen Variablen verwenden. Fügen Sie dem "parameters": {}-Objekt einige oder alle der folgenden Parameter hinzu. Diese Liste enthält häufig verwendete optionale Parameter und erhebt keinen Anspruch auf Vollständigkeit. Weitere Informationen zu optionalen Parametern finden Sie in der Imagen API-Referenz: Bilder generieren.

    "parameters": {
      "sampleCount": IMAGE_COUNT,
      "addWatermark": ADD_WATERMARK,
      "aspectRatio": "ASPECT_RATIO",
      "enhancePrompt": ENABLE_PROMPT_REWRITING,
      "includeRaiReason": INCLUDE_RAI_REASON,
      "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
      "outputOptions": {
        "mimeType": "MIME_TYPE",
        "compressionQuality": COMPRESSION_QUALITY
      },
      "personGeneration": "PERSON_SETTING",
      "safetySetting": "SAFETY_SETTING",
      "seed": SEED_NUMBER,
      "storageUri": "OUTPUT_STORAGE_URI"
    }
    
    • ADD_WATERMARK: boolesch. Optional. Gibt an, ob für generierte Bilder ein Wasserzeichen aktiviert werden soll. Alle Bilder, die generiert werden, wenn das Feld auf true gesetzt ist, enthalten eine digitale SynthID, mit der Sie ein Bild mit Wasserzeichen überprüfen können. Wenn Sie dieses Feld weglassen, wird der Standardwert true verwendet. Sie müssen den Wert auf false festlegen, um diese Funktion zu deaktivieren. Sie können das Feld seed verwenden, um deterministische Ausgaben zu erhalten. Dies ist jedoch nur möglich, wenn dieses Feld auf false gesetzt ist.
    • ASPECT_RATIO: String. Optional. Ein Parameter für den Generierungsmodus, der das Seitenverhältnis steuert. Unterstützte Verhältniswerte und ihre beabsichtigte Verwendung:
      • 1:1 (Standard, Quadrat)
      • 3:4 (Anzeigen, soziale Medien)
      • 4:3 (Fernsehen, Fotografie)
      • 16:9 (Querformat)
      • 9:16 Hochformat
    • ENABLE_PROMPT_REWRITING: boolesch. Optional. Ein Parameter, mit dem eine LLM-basierte Funktion zum Neuschreiben von Prompts verwendet werden kann, um Bilder in höherer Qualität zu liefern, die den Zweck des ursprünglichen Prompts besser widerspiegeln. Wenn Sie diese Funktion deaktivieren, kann sich das auf die Bildqualität und die Einhaltung der Vorgaben des Prompts auswirken. Standardwert: true.
    • INCLUDE_RAI_REASON: boolesch. Optional. Gibt an, ob der von der verantwortungsbewussten KI gefilterte Grundcode in Antworten mit blockierter Eingabe oder Ausgabe aktiviert sein soll. Standardwert: true.
    • INCLUDE_SAFETY_ATTRIBUTES: boolesch. Optional. Gibt an, ob gerundete Werte der verantwortungsbewussten KI für eine Liste von Sicherheitsattributen in Antworten für ungefilterte Eingabe und Ausgabe aktiviert werden sollen. Kategorien für Sicherheitsattribute: "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief","Toxic", "Violence", "Vulgarity", "War & Conflict". Standardwert: false.
    • MIME_TYPE: String. Optional. Der MIME-Typ des Bildinhalts. Verfügbare Werte:
      • image/jpeg
      • image/gif
      • image/png
      • image/webp
      • image/bmp
      • image/tiff
      • image/vnd.microsoft.icon
    • COMPRESSION_QUALITY: integer. Optional. Gilt nur für JPEG-Ausgabedateien. Der Detaillierungsgrad, den das Modell für Bilder im JPEG-Dateiformat beibehält. Werte: 0 bis 100, wobei eine höhere Zahl eine stärkere Komprimierung bedeutet. Standard: 75.
    • PERSON_SETTING: String. Optional. Die Sicherheitseinstellung, die bestimmt, welche Art von Personen- oder Gesichtererstellung das Modell zulässt. Verfügbare Werte:
      • allow_adult (Standard): Es dürfen nur Erwachsene generiert werden, mit Ausnahme von Prominenten. Die Generierung von Prominenten ist in keiner Einstellung zulässig.
      • dont_allow: Personen oder Gesichter in generierten Bildern nicht zulassen.
    • SAFETY_SETTING: String. Optional. Eine Einstellung, mit der die Grenzwerte für Sicherheitsfilter für generierte Bilder gesteuert werden. Verfügbare Werte:
      • block_low_and_above: Der höchste Sicherheitsgrenzwert, der dazu führt, dass die meisten generierten Bilder gefiltert werden. Vorheriger Wert: block_most.
      • block_medium_and_above (Standardeinstellung): Ein mittlerer Sicherheitsgrenzwert, der potenziell schädliche und sichere Inhalte ausgeglichen behandelt. Vorheriger Wert: block_some.
      • block_only_high: Ein Sicherheitsgrenzwert, der die Anzahl der Anfragen reduziert, die aufgrund von Sicherheitsfiltern blockiert werden. Diese Einstellung kann dazu führen, dass Imagen mehr anstößige Inhalte generiert. Vorheriger Wert: block_few.
    • SEED_NUMBER: integer. Optional. Jede nicht negative Ganzzahl, die Sie angeben, um Ausgabebilder deterministisch zu machen. Die Angabe derselben Quell-Nummer führt immer zu denselben Ausgabebildern. Wenn das von Ihnen verwendete Modell digitales Wasserzeichen unterstützt, müssen Sie "addWatermark": false festlegen, um dieses Feld zu verwenden. Zulässige Ganzzahlwerte: 12147483647.
    • OUTPUT_STORAGE_URI: String. Optional. Der Cloud Storage-Bucket, in dem die Ausgabebilder gespeichert werden sollen. Wenn nicht angegeben, werden base64-codierte Bildbyte in der Antwort zurückgegeben. Beispielwert: gs://image-bucket/output/.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

JSON-Text der Anfrage:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": 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/MODEL_VERSION: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/MODEL_VERSION:predict" | Select-Object -Expand Content
Die folgende Beispielantwort bezieht sich auf eine Anfrage mit "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"
    }
  ]
}

Wenn Sie ein Modell verwenden, das die Prompt-Optimierung unterstützt, enthält die Antwort ein zusätzliches prompt-Feld mit dem optimierten Prompt, der für die Generierung verwendet wurde:

{
  "predictions": [
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_1",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
    },
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_2",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
    }
  ]
}

  1. Ersetzen Sie Folgendes:

    • SEED_NUMBER: integer. Optional. Jede nicht negative Ganzzahl, die Sie angeben, um Ausgabebilder deterministisch zu machen. Die Angabe derselben Quell-Nummer führt immer zu denselben Ausgabebildern. Wenn das von Ihnen verwendete Modell digitales Wasserzeichen unterstützt, müssen Sie "addWatermark": false festlegen, um dieses Feld zu verwenden. Zulässige Ganzzahlwerte: 12147483647.
{
  "instances": [
    ...
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "seed": SEED_NUMBER,
    // required for model version 006 and greater only when using a seed number
    "addWatermark": false
  }
}

Nächste Schritte