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

Antragsprozess

Um die API zu nutzen, müssen Sie zunächst auf die entsprechende Seite der Flux Images Generation 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 die Eingabeaufforderung 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 die Eingabeaufforderung eingeben, die spezifischen 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 Nutzung der API, den Sie nach der Beantragung direkt auswählen können.
Zusätzlich haben wir den Request-Body festgelegt, einschließlich:
  • action: Die Aktion dieser Bildgenerierungsaufgabe.
  • size: Die Größe des generierten Bildes.
  • count: Die Anzahl der zu generierenden Bilder, der Standardwert ist 1. Dieser Parameter ist nur bei der Generierung von Bildern gültig, bei Bearbeitungsaufgaben ist er ungültig.
  • prompt: Die Eingabeaufforderung.
  • model: Das Generierungsmodell, standardmäßig flux-dev.
  • callback_url: Die URL, an die das Ergebnis zurückgerufen werden soll.
Der Parameter size hat einige besondere Einschränkungen, die hauptsächlich in zwei Typen unterteilt sind: width x height und x:y Bildverhältnis, die spezifischen Details sind wie folgt:
ModellBereich
flux-2-flexUnterstützt Breiten-Höhen-Verhältnis x >= 64, muss ein Vielfaches von 32 sein
flux-2-proUnterstützt Breiten-Höhen-Verhältnis x >= 64, muss ein Vielfaches von 32 sein
flux-2-maxUnterstützt Breiten-Höhen-Verhältnis x >= 64, muss ein Vielfaches von 32 sein
flux-pro-1.1Unterstützt Breiten-Höhen-Verhältnis 256 <= x <= 1440, muss ein Vielfaches von 32 sein
flux-devUnterstützt Breiten-Höhen-Verhältnis 256 <= x <= 1440, muss ein Vielfaches von 32 sein
flux-pro-1.1-ultraUnterstützt kein Breiten-Höhen-Verhältnis, unterstützt Bildverhältnisse
flux-kontext-proUnterstützt kein Breiten-Höhen-Verhältnis, unterstützt Bildverhältnisse
flux-kontext-maxUnterstützt kein Breiten-Höhen-Verhältnis, unterstützt Bildverhältnisse
Referenzbildverhältnisse: “1:1”, “16:9”, “21:9”, “3:2”, “2:3”, “4:5”, “5:4”, “3:4”, “4:3”, “9:16”, “9:21”, 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 das folgende Ergebnis erhalten:
{
  "success": true,
  "task_id": "226eb763-9eab-4d06-ad57-d59753a03307",
  "trace_id": "089f8b46-0167-4f25-88ee-3c3f88d80e84",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/lion/NVhtlwwGYQD6HrGaEfrzu_341484fad6d84b21b73f4f8824a3f98a.png",
      "timings": 1752743801
    },
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/monkey/8UEQpFbQCYVOK1wKP3aV0_9bbc26fad64049b18d0244b99ef66ad1.png",
      "timings": 1752743801
    }
  ]
}
Die Rückgabe hat mehrere Felder, die wie folgt beschrieben sind:
  • success, der Status der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • task_id, die ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • trace_id, die Verfolgungs-ID der Videoerzeugung zu diesem Zeitpunkt.
  • data, die Ergebnisliste der Bildgenerierungsaufgabe zu diesem Zeitpunkt.
    • image_url, der Link zur Bildgenerierungsaufgabe zu diesem Zeitpunkt.
    • prompt, die Eingabeaufforderung.
Wir können sehen, dass wir zufriedenstellende Bildinformationen erhalten haben. Wir müssen nur die Bild-URL aus dem data-Ergebnis abrufen, um das generierte Flux-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/flux/images' \
-H 'authorization: Bearer {token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "prompt": "a white siamese cat",
  "model": "flux-kontext-pro",
  "count": 2
}'

Bildbearbeitungsaufgaben

Wenn Sie ein Bild bearbeiten möchten, muss zunächst der Parameter image_url die URL des zu bearbeitenden Bildes enthalten. Zu diesem Zeitpunkt unterstützt action nur edit, und Sie können die folgenden Inhalte angeben:
  • model: Das Modell, das für diese Bildbearbeitungsaufgabe verwendet wird. Diese Aufgabe unterstützt derzeit flux-kontext-max, flux-kontext-pro.
  • image_url: Die URL des hochzuladenden Bildes.
Ein Beispiel für die Eingabe ist wie folgt:

Nach dem Ausfüllen wird automatisch der folgende Code generiert:

Der entsprechende Code:
import requests

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

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

payload = {
    "action": "edit",
    "prompt": "a white siamese cat",
    "model": "flux-kontext-pro",
    "image_url": "https://cdn.acedata.cloud/ytj2qy.png"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Wenn Sie auf Ausführen klicken, werden Sie sofort ein Ergebnis erhalten, wie folgt:
{
  "success": true,
  "task_id": "2a7979ff-1f77-4380-92c6-a2dc37c3b4c8",
  "trace_id": "732b65c0-48d9-49f7-b568-64e5acffe4c0",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/monkey/aEUXJZ6Faj9YXUCQVs01Q_af0cea56c558441c9ba8df67b200812d.png",
      "timings": 1752744073
    }
  ]
}
Wir können sehen, dass der generierte Effekt eine Bearbeitung des Originalbildes ist, das Ergebnis ähnelt dem oben genannten.

Asynchrone Rückrufe

Aufgrund der relativ langen Generierungszeit der Flux Images Generation API, die etwa 1-2 Minuten dauert, 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 folgender: Wenn der Client eine Anfrage stellt, gibt er zusätzlich ein Feld callback_url an. Nach der API-Anfrage 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 der Bildgenerierung 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. Lassen Sie uns anhand eines Beispiels verstehen, wie dies konkret funktioniert. Zunächst ist der Webhook-Rückruf ein Dienst, der HTTP-Anfragen empfangen kann. Entwickler sollten die URL ihres eigenen HTTP-Servers angeben. Zur Vereinfachung der Demonstration verwenden wir eine öffentliche Webhook-Beispielwebsite https://webhook.site/, auf der Sie eine Webhook-URL erhalten können, wie im Bild gezeigt: Kopieren Sie diese URL, um sie als Webhook zu verwenden. Das Beispiel hier lautet https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab. Als Nächstes können wir das Feld callback_url auf die oben genannte Webhook-URL setzen und die entsprechenden Parameter ausfüllen, wie im Bild gezeigt:

Klicken Sie auf Ausführen, und Sie werden sofort ein Ergebnis erhalten, wie folgt:
{
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c"
}
Warten Sie einen Moment, und wir können das Ergebnis der Bildgenerierung unter https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab beobachten, wie im Bild gezeigt: Der Inhalt lautet wie folgt:
{
  "success": true,
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c",
  "trace_id": "9b4b1ff3-90f2-470f-b082-1061ec2948cc",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://sf-maas-uat-prod.oss-cn-shanghai.aliyuncs.com/outputs/f4f8d407-377a-408a-82d0-427a5a836f09_0.png",
      "seed": 1698551532,
      "timings": {
        "inference": 3.328
      }
    }
  ]
}
Im Ergebnis sehen wir ein Feld task_id, die anderen Felder sind ähnlich wie oben beschrieben, 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ültiger oder fehlender 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": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die Flux Images Generation API verwenden 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.