Freigeben über


So verwenden Sie Azure OpenAI-Imagegenerierungsmodelle

Die Bildgenerierungsmodelle von OpenAI erstellen Bilder anhand von vom Benutzer bereitgestellten Textvorgaben und optionalen Bildern. In diesem Artikel wird erläutert, wie Sie diese Modelle verwenden, Optionen konfigurieren und von den erweiterten Bildgenerierungsfunktionen in Azure profitieren können.

Prerequisites

Überblick

Aspekt GPT-Image-1 DALL·E 3
Eingabe- / Ausgabemodalitäten & Format Akzeptiert Text + Bildeingaben ; Gibt Bilder nur in Base64 aus (keine URL-Option). Akzeptiert Texteingaben (primäre Eingabe); Eingeschränkte Bildbearbeitungseingaben (mit Maske). Gibt als URL oder Base64 aus.
Bildgrößen/Auflösungen 1024×1024, 1024×1536, 1536×1024 1024×1024, 1024×1792, 1792×1024
Qualitätsoptionen low, medium, high (Standard = hoch) standard, hd; Formatoptionen: natural, vivid
Anzahl der Bilder pro Anforderung 1–10 Bilder pro Anforderung (n Parameter) Nur 1 Bild pro Anforderung (n darf 1 sein)
Bearbeiten (Inpainting / Variationen) Ja – unterstützt Inpainting und Variationen mit Maske + Prompt Ja – unterstützt Inpainting und Variationen
Stärken Bessere Genauigkeit, Realismus, multimodale Kontextnutzung, stark bei der Bearbeitung von Anweisungen Stark bei schneller Reaktion, natürliche Textdarstellung, stilistische Vielfalt, kohärentes Bildgenerieren

Aufrufen der Bildgenerierungs-API

Der folgende Befehl zeigt die einfachste Methode zum Verwenden eines Bildmodells mit Code. Wenn Sie diese Modelle zum ersten Mal programmgesteuert verwenden, beginnen Sie mit der Schnellstartanleitung.

Senden Sie eine POST-Anforderung an:

https://<your_resource_name>.openai.azure.com/openai/deployments/<your_deployment_name>/images/generations?api-version=<api_version>

URL:

Ersetzen Sie die folgenden Werte:

  • <your_resource_name> ist der Name Ihrer Azure OpenAI-Ressource.
  • <your_deployment_name> ist der Name Ihrer DALL-E 3- oder GPT-image-1-Modellimplementierung.
  • <api_version> ist die Version der API, die Sie verwenden möchten. Beispiel: 2025-04-01-preview.

Erforderliche Header:

  • Content-Type: application/json
  • api-key: <your_API_key>

Body:

Es folgt ein Beispiel für den Anforderungstext. Sie geben eine Reihe von Optionen an, die in späteren Abschnitten definiert sind.

{
    "prompt": "A multi-colored umbrella on the beach, disposable camera",
    "model": "gpt-image-1",
    "size": "1024x1024", 
    "n": 1,
    "quality": "high"
}

Tip

Informationen zu Tokenkosten für die Bildgenerierung finden Sie unter Imagetoken.

Output

Die Antwort eines erfolgreichen API-Aufrufs zur Bilderzeugung sieht wie im folgenden Beispiel aus. Das b64_json Feld enthält die Ausgabebilddaten.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "b64_json": "<base64 image data>"
        }
    ]
} 

Note

Der Parameter response_format wird für GPT-image-1 nicht unterstützt, was immer base64-codierte Bilder zurückgibt.

Streaming

Sie können Bildgenerierungsanfragen an gpt-image-1 streamen, indem Sie den Parameter stream auf true und den Parameter partial_images auf einen Wert zwischen 0 und 3 setzen.

import base64
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

client = OpenAI(  
  base_url = "https://RESOURCE-NAME-HERE/openai/v1/",  
  api_key=token_provider,
  default_headers={"api_version":"preview"}
)

stream = client.images.generate(
    model="gpt-image-1",
    prompt="A cute baby sea otter",
    n=1,
    size="1024x1024",
    stream=True,
    partial_images = 2
)

for event in stream:
    if event.type == "image_generation.partial_image":
        idx = event.partial_image_index
        image_base64 = event.b64_json
        image_bytes = base64.b64decode(image_base64)
        with open(f"river{idx}.png", "wb") as f:
            f.write(image_bytes)
 

API-Anrufablehnung

Prompts und Bilder werden gemäß unseren Inhaltsrichtlinien gefiltert. Die API gibt einen Fehler zurück, wenn ein Prompt oder ein Bild markiert ist.

Wenn Ihre Eingabeaufforderung gekennzeichnet ist, wird der error.code Wert in der Nachricht auf contentFilter gesetzt. Ein Beispiel:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Your task failed as a result of our safety system."
    }
}

Es ist auch möglich, dass das generierte Image selbst gefiltert wird. In diesem Fall wird die Fehlermeldung auf Das generierte Bild wurde von unserem Sicherheitssystem gefiltert. festgelegt. Ein Beispiel:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Generated image was filtered as a result of our safety system."
    }
}

Schreiben effektiver Text-zu-Bild-Prompts

Ihre Prompts sollten den Inhalt beschreiben, den Sie im Bild sehen möchten, sowie den visuellen Stil des Bilds.

Berücksichtigen Sie beim Schreiben von Eingabeaufforderungen, dass die Bild-APIs einen Inhaltsmoderationsfilter enthalten. Wenn der Dienst Ihren Prompt als schädlichen Inhalt erkennt, generiert er kein Bild. Weitere Informationen dazu finden Sie unter Inhaltsfilterung.

Tip

Einen ausführlichen Überblick darüber, wie Sie Ihre Textprompts optimieren können, um verschiedene Arten von Bildern zu generieren, finden Sie im Leitfaden zum Erstellen von Bildprompts.

Angeben von API-Optionen

Die folgenden API-Textkörperparameter sind für Bildgenerierungsmodelle verfügbar.

Size

Geben Sie die Größe der generierten Bilder an. Muss eines von 1024x1024, 1024x1536oder 1536x1024 für GPT-image-1-Modelle sein. Quadratische Bilder können schneller generiert werden.

Quality

Es gibt drei Optionen für die Bildqualität: low, medium, und high. Bilder mit geringerer Qualität können schneller generiert werden.

Der Standardwert ist high.

Number

Sie können zwischen einem und 10 Bildern in einem einzelnen API-Aufruf generieren. Der Standardwert ist 1.

Benutzer-ID

Verwenden Sie den Benutzerparameter , um einen eindeutigen Bezeichner für den Benutzer anzugeben, der die Anforderung stellt. Diese Kennung ist nützlich für die Verfolgung und Überwachung von Nutzungsmustern. Der Wert kann eine beliebige Zeichenfolge sein, z. B. eine Benutzer-ID oder E-Mail-Adresse.

Ausgabeformat

Verwenden Sie den parameter output_format , um das Format des generierten Bilds anzugeben. Unterstützte Formate sind PNG und JPEG. Der Standardwert lautet PNG.

Note

WEBP-Bilder werden in Azure OpenAI in Azure AI Foundry Models nicht unterstützt.

Compression

Verwenden Sie den parameter output_compression , um die Komprimierungsebene für das generierte Bild anzugeben. Geben Sie eine ganze Zahl zwischen 0 und 100 ein, wobei 0 keine Komprimierung und 100 maximale Komprimierung ist. Der Standardwert lautet 100.

Streaming

Verwenden Sie den Stream-Parameter , um Streamingantworten zu aktivieren. Wenn auf true gesetzt, gibt die API Teilbilder zurück, sobald sie generiert werden. Diese Funktion bietet Benutzern ein schnelleres visuelles Feedback und verbessert die wahrgenommene Latenz. Legen Sie den parameter partial_images fest, um zu steuern, wie viele Teilbilder generiert werden (1-3).

Aufrufen der Bildbearbeitungs-API

Mit der Bildbearbeitungs-API können Sie vorhandene Bilder anhand von Textvorgaben, die Sie eingeben, ändern. Der API-Aufruf ähnelt dem API-Aufruf der Bildgenerierung, Sie müssen aber auch ein Eingabebild bereitstellen.

Important

Das Eingabebild muss kleiner als 50 MB sein und muss eine PNG- oder JPG-Datei sein.

Important

gpt-image-1-mini Unterstützt derzeit keine Bildbearbeitungen.

Senden Sie eine POST-Anforderung an:

https://<your_resource_name>.openai.azure.com/openai/deployments/<your_deployment_name>/images/edits?api-version=<api_version>

URL:

Ersetzen Sie die folgenden Werte:

  • <your_resource_name> ist der Name Ihrer Azure OpenAI-Ressource.
  • <your_deployment_name> ist der Name Ihrer DALL-E 3- oder GPT-image-1-Modellimplementierung.
  • <api_version> ist die Version der API, die Sie verwenden möchten. Beispiel: 2025-04-01-preview.

Erforderliche Header:

  • Content-Type: multipart/form-data
  • api-key: <your_API_key>

Body:

Es folgt ein Beispiel für den Anforderungstext. Sie geben eine Reihe von Optionen an, die in späteren Abschnitten definiert sind.

Important

Die Bildbearbeitungs-API verwendet mehrteilige/Formulardaten, nicht JSON-Daten. Das folgende Beispiel zeigt Beispielformulardaten, die an eine cURL-Anforderung angefügt werden.

-F "image[]=@beach.png" \
-F 'prompt=Add a beach ball in the center' \
-F "model=gpt-image-1" \
-F "size=1024x1024" \
-F "n=1" \
-F "quality=high"

API-Antwortausgabe

Die Antwort eines erfolgreichen API-Aufrufs für die Bildbearbeitung sieht wie im folgenden Beispiel aus. Das b64_json Feld enthält die Ausgabebilddaten.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "b64_json": "<base64 image data>"
        }
    ]
} 

Angeben von Bildbearbeitungs-API-Optionen

Die folgenden API-Textkörperparameter sind für Bildbearbeitungsmodelle verfügbar, zusätzlich zu den Parametern, die für Bildgenerierungsmodelle verfügbar sind.

Image

Der Bildwert gibt die Bilddatei an, die Sie bearbeiten möchten.

Eingabetreue

Der Parameter input_fidelity steuert, wie viel Aufwand das Modell in die Übereinstimmung mit dem Stil und den Features, insbesondere Gesichtsmerkmalen, von Eingabebildern einfügt.

Mit diesem Parameter können Sie subtile Bearbeitungen an einem Bild vornehmen, ohne dass nicht verwandte Bereiche geändert werden. Wenn Sie hohe Eingabetreue verwenden, bleiben Gesichter genauer als im Standardmodus erhalten.

Important

Die gpt-image-1-mini Eingabetreue wird vom Modell nicht unterstützt.

Mask

Der Parameter mask verwendet den gleichen Typ wie der Haupteingabeparameter image. Er definiert den Bereich des Bilds, den das Modell bearbeiten soll, wobei in diesen Bereichen vollständig transparente Pixel (Alpha von Null) verwendet werden. Die Maske muss eine PNG-Datei sein und dieselben Abmessungen wie das Eingabebild aufweisen.

Streaming

Verwenden Sie den Stream-Parameter , um Streamingantworten zu aktivieren. Wenn auf true gesetzt, gibt die API Teilbilder zurück, sobald sie generiert werden. Diese Funktion bietet Benutzern ein schnelleres visuelles Feedback und verbessert die wahrgenommene Latenz. Legen Sie den parameter partial_images fest, um zu steuern, wie viele Teilbilder generiert werden (1-3).