Zum Hauptinhalt springen

Bild-API-Lösung

Bilder erzeugen – mit den Reglern, die das Modell wirklich anbietet.

Jeder Bild-Endpunkt deklariert eigene Felder. Manche nehmen einen negativen Prompt, manche einen Seed, manche liefern vier Kandidaten pro Aufruf. Ein Einheitsformular verbirgt genau die Regler, die Ergebnisse wiederholbar machen.

Die Herausforderung

Einheitsformulare verlieren die entscheidenden Regler

Prompt rein, Bild raus stimmt etwa zehn Sekunden lang. Danach brauchen Sie dieselbe Figur ein zweites Mal, 3:2 statt quadratisch, vier Kandidaten pro Aufruf und einen Seed, den Sie notieren können.

01

Ein Seed hilft beim Vergleich, garantiert aber keine identischen Pixel

Speichern Sie einen unterstützten Seed mit Prompt, Modellversion, Größe und Referenzen. Manche Endpoints liefern auch bei gleichem Seed unterschiedliche Bilder.

02

Größe ist ein Feld, keine Voreinstellung

Manche Endpunkte nehmen resolution oder aspect_ratio, andere width und height in Pixeln. Das falsche Feld ergibt 400, und bei Abrechnung nach Megapixel ist die gewählte Größe zugleich der Preis.

03

Ein Aufruf kann mehrere Bilder liefern

Wo num_outputs existiert, folgt die Abrechnung der Anzahl der Bilder, nicht der Anzahl der Anfragen. Ein Standardwert von 4 kostet das Vierfache von 1, und dieser Unterschied ist vor dem Absenden nur in der Schätzung sichtbar.

Der Ansatz

Schema lesen, Felder behalten, Seed protokollieren

Erstellen Sie Eingaben nach dem Endpoint-Schema. Speichern Sie die genaue Anfrage, Referenzreihenfolge und Modellversion mit dem Ergebnis. Behalten Sie das Original; eine identische Neugenerierung ist nicht garantiert.

Bildaufträge nutzen denselben Vertrag aus Erstellen und Verfolgen wie Video. Der gesamte Unterschied steckt in input.

POST /api/v1/jobs/createTask

POST /api/v1/jobs/createTask
Authorization: Bearer $SPICY_API_KEY
Idempotency-Key: 7b1f0c2e-9a4d-4f31-8c67-2b5e0d9a1c44
Content-Type: application/json
{
  "model": "<publisher>/<model>/text-to-image",
  "input": {
    "prompt": "A ceramic teapot on linen, soft window light, muted palette",
    "aspect_ratio": "3:2",
    "num_outputs": 2,
    "seed": 1337
  }
}

GET /api/v1/jobs/recordInfo?taskId=…

{
  "code": 200,
  "msg": "success",
  "request_id": "req_example_record",
  "data": {
    "taskId": "job_01k3m8x9q2z4v7n5p6r8s0t1w3",
    "state": "succeeded",
    "output": {
      "assets": [
        {
          "mime": "image/png",
          "url": "https://…/result.png?X-Amz-Signature=…",
          "expiresAt": "2026-09-12T12:20:08Z"
        }
      ]
    },
    "cost": "0.040000",
    "settled": true
  }
}

Vertrag

Was Sie früh festhalten sollten

Bild-API: ein Aufruf, viele Modelle — Was Sie früh festhalten sollten
Feld oder HeaderWert oder Grenze
inputadditionalProperties: false
seed · num_outputs · aspect_ratiodeclared per endpoint
cost + settled: falsehold · final charge never exceeds it
errorCode9 stable values, content_rejected included

Horizontal wischen, um alle Spalten zu sehen.

Integration

Vom ersten Aufruf bis in die Produktion

  1. 01Modellseite öffnen und prüfen, welche der Felder seed, negative_prompt, num_outputs und Größenangaben deklariert sind.
  2. 02Den Körper aus input_schema bauen; additionalProperties ist geschlossen, ein unbekannter Schlüssel ergibt 400 statt stiller Wirkungslosigkeit.
  3. 03Schätzen, mit Idempotency-Key senden und taskId, Seed und den aufgelösten model-Wert neben dem Ergebnis ablegen.
  4. 04output.assets aus Callback oder recordInfo holen und die Dateien in den eigenen Bucket kopieren.

Passung

Wann dieser Weg der richtige ist

Dafür geeignet

  • Sie erzeugen aus Text und wollen mehrere Anbieter hinter einer Anfrageform, einem Guthaben und einer Rechnung.
  • Sie möchten Varianten mit dokumentierter Anfrage und Modellversion unter gleichen Bedingungen vergleichen.

Dafür nicht geeignet

  • Ihre Nutzer starten mit einem vorhandenen Bild. Bearbeitung ist eine eigene Aufgabe mit eigenem Referenzvertrag.
  • Sie wollen einen festen Hausstil über alle Modelle. Stil steckt im Modell, nicht in dieser Schicht.

Belege

Was Sie selbst prüfen können

Die Testanfrage ist die Produktionsanfrage

Der auf der Modellseite zusammengestellte Körper ist der Körper, den Ihr Server sendet: gleiche Felder, gleiche Prüfung, gleiche Schätzung. Es gibt keine vereinfachte Vorschau, die später abweicht.

Nicht deklarierte Felder scheitern hörbar

Die Eingabe wird gegen das Endpunktschema mit geschlossenem additionalProperties geprüft. Ein nicht deklarierter Parameter ergibt 400 mit stabilem errorCode statt stillem Ignorieren.

Ergebnisse kommen aus dem Plattformspeicher

Sie erscheinen als output.assets mit key, MIME-Typ, signierter url und expiresAt. Nichts verlinkt dorthin, wo das Modell ausgeführt wurde.

Vor dem Start

Plattformverhalten zum Bestätigen

  • Vor dem Start festlegen, wo Seeds gespeichert werden; ein nicht gespeicherter Seed nützt nichts.
  • Das für jeden neuen Schlüssel verpflichtende Tageslimit setzen, dazu Monats- und Gesamtlimit, wo sinnvoll.
  • Den geschlossenen errorCode-Satz einschließlich content_rejected als normalen Produktzustand behandeln.
  • Ergebnisse innerhalb der 14-tägigen Aufbewahrung in den eigenen Speicher spiegeln.

Häufige Fragen

Was auf dieser Seite gefragt wird

Verwenden Sie die ursprünglichen Eingaben, Version und gegebenenfalls den Seed erneut. Das garantiert keine identischen Pixel. Laden Sie das Original herunter, wenn Sie exakt dieses Bild benötigen.