Zum Hauptinhalt springen
Dieser Artikel beschreibt eine Integrationsanleitung für die SeeDream Bilder Generierung API, die es ermöglicht, offizielle SeeDream Bilder durch Eingabe benutzerdefinierter Parameter zu generieren.

Antragsprozess

Um die API zu nutzen, müssen Sie zunächst auf die entsprechende Seite der SeeDream Bilder Generierung API gehen und den entsprechenden Dienst beantragen. Nach dem Betreten der Seite klicken Sie auf die Schaltfläche „Acquire“, wie im Bild gezeigt: Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach der Anmeldung werden Sie automatisch zur aktuellen Seite zurückgeleitet. Bei der ersten Beantragung gibt es ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

Grundlegende Nutzung

Zunächst sollten Sie die grundlegende Nutzung verstehen, indem Sie das Eingabewort prompt, die Generierungsaktion action und die Bildgröße size eingeben, um das verarbeitete Ergebnis zu erhalten. Zuerst müssen Sie ein einfaches action-Feld übergeben, dessen Wert generate ist. Dann müssen wir auch das Eingabewort eingeben, die genauen Inhalte sind wie folgt:

Hier sehen wir, dass wir die Request-Header festgelegt haben, einschließlich:
  • accept: In welchem Format Sie die Antwort erhalten möchten, hier eingetragen als application/json, also im JSON-Format.
  • authorization: Der Schlüssel zur API-Nutzung, den Sie nach der Beantragung direkt auswählen können.
Zusätzlich haben wir den Request-Body festgelegt, einschließlich:
  • prompt: Eingabewort.
  • model: Generierungsmodell, standardmäßig doubao-seedream-4.0.
  • image: Eingabebildinformationen, unterstützt URL oder Base64-Codierung. Dabei unterstützen doubao-seedream-4.5, doubao-seedream-4.0 die Eingabe von Einzel- oder Mehrfachbildern, doubao-seededit-3.0-i2i unterstützt nur Einzelbilder, doubao-seededit-3.0-t2i unterstützt diesen Parameter nicht.
  • size: Gibt die Größeninformationen des zu generierenden Bildes an, unterstützt die folgenden zwei Methoden, die nicht gemischt werden können. Methode 1 | Geben Sie die Auflösung des zu generierenden Bildes an und beschreiben Sie das Seitenverhältnis, die Form oder den Verwendungszweck des Bildes in natürlicher Sprache im Prompt, das Modell entscheidet schließlich über die Größe des generierten Bildes. Methode 2 | Geben Sie die Pixelwerte für Breite und Höhe des zu generierenden Bildes an: Standardwert: 2048x2048, je nach Modell variiert der Standardwert.
  • seed: Zufallszahlensamen, um die Zufälligkeit des vom Modell generierten Inhalts zu steuern. Der Wertebereich liegt zwischen [-1, 2147483647]. Nur doubao-seedream-3.0-t2i, doubao-seededit-3.0-i2i unterstützen diesen Parameter.
  • sequential_image_generation: Bildgruppe: Basierend auf Ihren Eingaben wird eine Gruppe von inhaltlich verwandten Bildern generiert. Nur doubao-seedream-4.5, doubao-seedream-4.0 unterstützen diesen Parameter, standardmäßig disabled.
  • stream: Steuert, ob der Streaming-Ausgabemodus aktiviert ist. Nur doubao-seedream-4.5, doubao-seedream-4.0 unterstützen diesen Parameter, standardmäßig ist false.
  • guidance_scale: Der Grad der Übereinstimmung der Modellausgabe mit dem Prompt, die Freiheit des generierten Bildes, auch als Textgewicht bezeichnet; je größer der Wert, desto geringer die Freiheit des Modells und desto stärker die Relevanz zum eingegebenen Prompt. Wertebereich: [1, 10]. doubao-seedream-3.0-t2i Standardwert 2.5, doubao-seededit-3.0-i2i Standardwert 5.5, andere unterstützen dies nicht.
  • response_format: Gibt das Rückgabeformat des generierten Bildes an. Standard ist url, unterstützt auch b64_json.
  • watermark: Ob ein Wasserzeichen im generierten Bild hinzugefügt werden soll. Standard ist true.
  • callback_url: Die URL, an die die Ergebnisse zurückgerufen werden sollen.
Nach der Auswahl können Sie sehen, dass auf der rechten Seite auch der entsprechende Code generiert wurde, wie im Bild gezeigt:

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen, wie im obigen Bild gezeigt, hier haben wir folgendes Ergebnis erhalten:
{
  "success": true,
  "task_id": "25027ba3-0430-4a1b-91c8-d2297f19ba73",
  "trace_id": "8043a9e9-692f-43b0-82f7-5890f798be38",
  "data": [
    {
      "prompt": "a white siamese cat",
      "size": "2048x2048",
      "image_url": "https://platform.cdn.acedata.cloud/seedream/3c060029-69b1-406f-a957-fcd55ddc9386.jpg"
    }
  ]
}
Die Rückgabeergebnisse umfassen mehrere Felder, die wie folgt beschrieben werden:
  • success, der Status des Videoerzeugungsauftrags zu diesem Zeitpunkt.
  • task_id, die ID des Videoerzeugungsauftrags zu diesem Zeitpunkt.
  • trace_id, die Verfolgungs-ID des Videoerzeugungsauftrags zu diesem Zeitpunkt.
  • data, die Ergebnisliste des Bildgenerierungsauftrags zu diesem Zeitpunkt.
    • image_url, der Link zum Bildgenerierungsauftrag zu diesem Zeitpunkt.
    • prompt, Eingabewort.
    • size: Die Pixelgröße des generierten Bildes.
Wir können sehen, dass wir zufriedenstellende Bildinformationen erhalten haben, und wir müssen nur die Bild-URL aus dem data-Ergebnis abrufen, um das generierte SeeDream-Bild zu erhalten. Wenn Sie außerdem den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel der CURL-Code ist wie folgt:
curl -X POST 'https://api.acedata.cloud/seedream/images' \
-H 'accept: application/json' \
-H 'authorization: Bearer ${token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "doubao-seedream-4-0-250828",
  "prompt": "a white siamese cat"
}'

Bildbearbeitungsauftrag

Wenn Sie ein Bild bearbeiten möchten, muss zunächst der Parameter image die URL des zu bearbeitenden Bildes enthalten.
  • model: Das Modell, das für diesen Bildbearbeitungsauftrag verwendet wird. Dieser Auftrag unterstützt derzeit doubao-seedream-4.5, doubao-seedream-4.0 für Einzel- oder Mehrfachbilder, doubao-seededit-3.0-i2i unterstützt nur Einzelbilder.
  • image: Das hochzuladende Bild, ein oder mehrere.
Das Beispiel ist wie folgt:

Der entsprechende Code:
import requests

url = "https://api.acedata.cloud/flux/images"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "doubao-seedream-4-0-250828",
  "prompt": "Behalten Sie die Pose des Modells und die fließende Form des flüssigen Kleidungsstücks unverändert. Ändern Sie das Kleidungsmaterial von silbernem Metall zu vollständig transparentem Wasser (oder Glas). Durch den Flüssigkeitsfluss sind die Details der Modellhaut sichtbar. Der Licht- und Schatteneffekt verschiebt sich von Reflexion zu Brechung.",
  "image": ["https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_5_imageToimage.png"],
  "size": "2K",
  "watermark": False
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Klicken Sie auf Ausführen, und Sie werden sofort ein Ergebnis erhalten, wie folgt:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Behalten Sie die Pose des Modells und die fließende Form des flüssigen Kleidungsstücks unverändert. Ändern Sie das Kleidungsmaterial von silbernem Metall zu vollständig transparentem Wasser (oder Glas). Durch den Flüssigkeitsfluss sind die Details der Haut des Modells sichtbar. Der Licht- und Schatteneffekt wechselt von Reflexion zu Brechung.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
Es ist zu sehen, dass der generierte Effekt eine Bearbeitung des Originalbildes ist, das Ergebnis ähnelt dem oben genannten.

Asynchrone Rückrufe

Da die von der SeeDream Images Generation API benötigte Zeit relativ lang ist, etwa 1-2 Minuten, bleibt die HTTP-Anfrage bei längerer Nichtreaktion der API verbunden, was zu einem zusätzlichen Verbrauch von Systemressourcen führt. Daher bietet diese API auch Unterstützung für asynchrone Rückrufe. Der gesamte Ablauf ist: Wenn der Client die Anfrage stellt, gibt er zusätzlich ein Feld callback_url an. Nachdem der Client die API-Anfrage gestartet hat, gibt die API sofort ein Ergebnis zurück, das ein Feld task_id enthält, das die aktuelle Aufgaben-ID darstellt. Wenn die Aufgabe abgeschlossen ist, wird das Ergebnis des generierten Bildes in Form von POST JSON an die vom Client angegebene callback_url gesendet, wobei auch das Feld task_id enthalten ist, sodass das Aufgabenergebnis über die ID verknüpft werden kann. Im Folgenden werden wir anhand eines Beispiels verstehen, wie man konkret vorgeht. Klicken Sie auf Ausführen, und Sie werden sofort ein Ergebnis erhalten, wie folgt:
{
  "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde"
}
Der Inhalt lautet:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Behalten Sie die Pose des Modells und die fließende Form des flüssigen Kleidungsstücks unverändert. Ändern Sie das Kleidungsmaterial von silbernem Metall zu vollständig transparentem Wasser (oder Glas). Durch den Flüssigkeitsfluss sind die Details der Haut des Modells sichtbar. Der Licht- und Schatteneffekt wechselt von Reflexion zu Brechung.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
Es ist zu sehen, dass im Ergebnis ein Feld task_id vorhanden ist, die anderen Felder sind ähnlich wie oben, und über dieses Feld kann die Aufgabe verknüpft werden.

Fehlerbehandlung

Wenn beim Aufruf der API ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:
  • 400 token_mismatched: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 400 api_not_implemented: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 401 invalid_token: Unbefugt, ungültiges oder fehlendes Autorisierungstoken.
  • 429 too_many_requests: Zu viele Anfragen, Sie haben das Kontingent überschritten.
  • 500 api_error: Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

Beispiel für eine Fehlerantwort

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "Abruf fehlgeschlagen"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Fazit

Durch dieses Dokument haben Sie erfahren, wie Sie die SeeDream Images Generation API nutzen können, um Bilder durch Eingabe von Aufforderungswörtern zu generieren. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu nutzen. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.