Bilder mit Text-Prompts bearbeiten

Auf dieser Seite wird die maskenfreie Bearbeitung nur mit Text-Prompts beschrieben. Mit der maskenfreien Bearbeitung können Sie ein Bild ohne Maske bearbeiten. Diese Bearbeitungsmethode eignet sich für Änderungen, die sich auf das gesamte Bild beziehen, oder wenn der Ort der Änderungen für Ihren Anwendungsfall nicht so wichtig ist.

Beispiel für maskenfreie Bearbeitung (vollständiges Bild)

Sie können ein Basisbild (generiert oder hochgeladen) nur durch einen Text-Prompt bearbeiten. Sie müssen den zu ändernden Bereich nicht angeben und die Aktualisierung wird auf das gesamte Bild angewendet (auch als maskenfreie Bearbeitung bezeichnet).

Wenn Sie eine maskenfreie Bearbeitung vornehmen möchten, verwenden Sie einen Prompt, der beschreibt, was Sie sehen möchten, anstatt Anleitungen dazu, was geändert werden muss. Nehmen wir als Beispiel das Bild einer Katze, das Sie in einen Hund ändern möchten. Der maskenfreie Bearbeitungs-Prompt ein Hund ist möglicherweise effektiver als die Katze in einen Hund ändern. Ebenso können Sie ein Bild verwenden, das Sie mit dem Prompt eine Katze am Strand generieren. Wenn Sie dieses Bild ändern möchten, verwenden Sie den Bearbeitungs-Prompt ein Hund am Strand.

Originalbild einer Katze neben dem bearbeiteten Hundebild
Originalbild (links): Cédric VT auf Unsplash.
Bearbeiten Sie das Bild (rechts): Bild, das mit Imagen in Vertex AI mit dem ursprünglichen Basisbild und dem Prompt ein Hund generiert wurde.

Modellkarte für Imagen for Editing and Customization ansehen

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. Richten Sie die Authentifizierung für Ihre Umgebung ein.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    Python

    Wenn Sie die Python Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

    1. Install the Google Cloud CLI.

    2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    3. To initialize the gcloud CLI, run the following command:

      gcloud init
    4. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

    Maskenfreie Bearbeitung verwenden

    In den folgenden Beispielen wird das gesamte Bild ohne Maskenbereich bearbeitet.

    Console

    1. Rufen Sie in der Google Cloud Console die Seite Vertex AI> Media Studio auf.

      Zu Media Studio
    2. Klicken Sie im unteren Textbereich auf Bild bearbeiten.
    3. Rufen Sie den Bildschirm Bild bearbeiten auf.

      Generiertes Bild bearbeiten

      1. Bilder mit einem Text-Prompt generieren
      2. Klicken Sie auf ein generiertes Bild.
      3. Klicken Sie auf Bild bearbeiten.

      Hochgeladenes Bild bearbeiten

      1. Klicken Sie auf Bild hochladen.
      2. Wählen Sie die lokale Datei aus, die Sie bearbeiten möchten.
    4. Geben Sie einen neuen Prompt zum Ändern des Bildes ein.

    5. Optional. Ändern Sie beliebige Parameter.
    6. Klicken Sie auf Erstellen.

      Beispiel für ein Bearbeitungsbild, das nur Text verwendet
      Ansicht Bild bearbeiten eines Bildes, das mit Imagen in Vertex AI über den Prompt ein Matcha-Cake bearbeitet wurde. Das Originalbild wird oben rechts angezeigt. Originalbildnachweis: David Holifield auf Unsplash (in der Google Cloud Console angezeigt).

    Python

    Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python-API-Referenzdokumentation.

    In diesem Beispiel verwenden Sie die Methode load_from_file, um auf eine lokale Datei als Basis-Image zu verweisen, die geändert werden soll. Nachdem Sie das Basisbild angegeben haben, verwenden Sie die Methode edit_image im ImageGenerationModel und speichern das bearbeitete Bild lokal. Anschließend haben Sie die Möglichkeit, sich mit der Methode show() in einem Notebook das bearbeitete Bild anzeigen zu lassen.

    
    import vertexai
    from vertexai.preview.vision_models import Image, ImageGenerationModel
    
    # TODO(developer): Update and un-comment below lines
    # PROJECT_ID = "your-project-id"
    # input_file = "input-image.png"
    # output_file = "output-image.png"
    # prompt = "" # The text prompt describing what you want to see.
    
    vertexai.init(project=PROJECT_ID, location="us-central1")
    
    model = ImageGenerationModel.from_pretrained("imagegeneration@002")
    base_img = Image.load_from_file(location=input_file)
    
    images = model.edit_image(
        base_image=base_img,
        prompt=prompt,
        # Optional parameters
        seed=1,
        # Controls the strength of the prompt.
        # -- 0-9 (low strength), 10-20 (medium strength), 21+ (high strength)
        guidance_scale=21,
        number_of_images=1,
    )
    
    images[0].save(location=output_file, include_generation_parameters=False)
    
    # Optional. View the edited image in a notebook.
    # images[0].show()
    
    print(f"Created output image using {len(images[0]._image_bytes)} bytes")
    # Example response:
    # Created output image using 1234567 bytes
    

    REST

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: Ihre Google Cloud Projekt-ID.
    • 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.
    • 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.
    • EDIT_IMAGE_COUNT: Die Anzahl der bearbeiteten Bilder. Standardwert: 4

    HTTP-Methode und URL:

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

    JSON-Text der Anfrage:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT",
          "image": {
            "bytesBase64Encoded": "B64_BASE_IMAGE"
          }
        }
      ],
      "parameters": {
        "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/imagegeneration@002: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/imagegeneration@002: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"
        }
      ]
    }
    

    Nächste Schritte

    Artikel zu Imagen und anderen Produkten für generative KI in Vertex AI: