Zum Hauptinhalt springen

Bearbeitungs-API-Lösung

Bearbeiten Sie das Bild, das Sie haben – nicht eines, das das Modell erfindet.

Bearbeitungs-Endpunkte nehmen mindestens zwei Eingaben: das Bild und die Anweisung. Genau am Bild scheitern die meisten Integrationen – als öffentliche URL, als bestätigter Upload oder als eingebettete Data-URI.

Die Herausforderung

Der schwierige Teil ist das Referenzbild

Der Prompt ist die leichte Hälfte. Die andere ist eine Datei auf dem Telefon Ihrer Nutzer, die das Modell erreichen muss, ohne einen privaten Bucket offenzulegen, und die Grenzen einhalten muss, die vor der Auftragserstellung geprüft werden.

01

Drei Wege hinein, drei Arten zu scheitern

Ein deklariertes Bildfeld akzeptiert eine öffentliche HTTPS-URL, eine bestätigte spicy://-Datei-URI oder eine eingebettete Data-URI. Eingebettet gilt: 1 MiB dekodiert und 8.388.608 Pixel je Bild, insgesamt 2 MiB Anfragekörper. Alles darüber braucht ein Upload-Ticket.

02

Signierte HTTPS-Links funktionieren bei erreichbarer Datei

Ein signierter Link kann auf einen privaten Bucket zeigen, wenn unsere Server die Datei ohne Cookies oder weitere Anmeldung laden können. Er muss während der Verarbeitung gültig bleiben. Private IPs, Loopback und user:password-URL-Zugangsdaten werden abgewiesen.

03

Bearbeiten ist nicht Erzeugen

Der öffentliche Aufrufname endet auf /edit, das Schema verlangt meist image_url oder image_urls, manche Endpunkte ergänzen mask_url oder strength. Ein text-to-image-Wert im Bearbeitungsablauf scheitert an der Prüfung, statt sich anzupassen.

Der Ansatz

Einmal hochladen, bestätigen, dann die Datei-URI referenzieren

Fordern Sie für Nutzerdateien ein Upload-Ticket an, senden Sie per PUT exakt die angegebene Byte-Zahl mit allen zurückgegebenen Headern, bestätigen Sie die Datei und übergeben Sie die spicy://-URI im Bildfeld des Modells. Die Referenz gehört dann zu Ihrem Konto, wird einmal geprüft und ist ohne erneuten Upload wiederverwendbar.

Ticket, PUT, Bestätigung, Erstellung. Öffentlich erreichbare Medien überspringen die ersten drei Schritte.

Ticket → PUT → commit → create

POST /api/v1/common/upload-url
{ "contentType": "image/png", "bytes": 482113 }
→ { "fileId": "fil_01k3…", "uploadUrl": "https://…", "method": "PUT", "headers": { … } }

PUT <uploadUrl>            # exactly 482113 bytes, every returned header replayed
POST /api/v1/files/fil_01k3…/commit
→ { "status": "ready", "uri": "spicy://f/fil_01k3…", "sha256": "…" }

POST /api/v1/jobs/createTask

{
  "model": "<publisher>/<model>/edit",
  "input": {
    "prompt": "Replace the background with an overcast beach at dusk",
    "image_urls": ["spicy://f/fil_01k3m8x9q2z4v7n5p6r8s0t1w3"]
  }
}

Vertrag

Was Sie früh festhalten sollten

Bildbearbeitungs-API: mit Referenzbild starten — Was Sie früh festhalten sollten
Feld oder HeaderWert oder Grenze
POST /api/v1/common/upload-urlJPEG · PNG · WebP · GIF ≤ 10 MiB
POST /api/v1/files/{fileId}/commitreturns spicy://f/fil_…
inline data URI≤ 1 MiB decoded · ≤ 8192 px per side
request body≤ 2 MiB · ≤ 16 images

Horizontal wischen, um alle Spalten zu sehen.

Integration

Vom ersten Aufruf bis in die Produktion

  1. 01POST /api/v1/common/upload-url mit contentType und exakter Byte-Zahl; Bilder bis 10 MiB als JPEG, PNG, WebP oder GIF.
  2. 02Die Bytes per PUT an die signierte URL senden, alle Header des Tickets wiederholen, dann POST /api/v1/files/{fileId}/commit.
  3. 03createTask mit dem Bearbeitungs-model-Wert senden und die spicy://-URI in image_url oder image_urls setzen.
  4. 04output.assets aus Callback oder recordInfo lesen und die bearbeitete Datei selbst speichern.

Passung

Wann dieser Weg der richtige ist

Dafür geeignet

  • Ihr Produkt startet bei Nutzerfotos: Retusche, Hintergrundwechsel, Stilwechsel, Objektentfernung.
  • Dieselbe Referenz wird über mehrere Aufträge genutzt und soll nicht jedes Mal neu hochgeladen werden.

Dafür nicht geeignet

  • Es gibt kein Ausgangsbild. Text-to-Image ist günstiger und einfacher.
  • Sie brauchen bildgenaue Videoschnitte. Bearbeitungs-Endpunkte liefern Standbilder.

Belege

Was Sie selbst prüfen können

Uploads gehören zum Konto und werden beim Bestätigen geprüft

Die Bestätigung vergleicht Byte-Zahl und Medientyp mit dem Ticket, prüft die Bildsignatur und berechnet einen SHA-256. Erst danach ist die Datei referenzierbar.

Eingebettete Bilder tauchen im Datensatz nicht wieder auf

Data-URIs werden als kontogebundene Dateien gespeichert. Die von recordInfo zurückgegebene normalisierte Eingabe enthält Datei-URIs, nie die ursprünglichen Base64-Bytes.

Ausgangsmaterial und Ergebnisse haben eigene Fristen

Hochgeladenes Material wird einen Tag vorgehalten, erzeugte Ergebnisse 14 Tage. Beide Fristen sind veröffentlicht und nicht kontoabhängig verhandelbar.

Vor dem Start

Plattformverhalten zum Bestätigen

  • Festlegen, wer die Rechte am Ausgangsbild bestätigt; die Plattform prüft das nicht für Sie.
  • Medientyp und Größe schon im Client prüfen – ein 413 ist billiger vermieden als behandelt.
  • spicy://-URIs im eigenen Datensatz behalten, wenn dieselbe Quelle erneut bearbeitet wird.
  • invalid_asset als Nutzerfehler behandeln, nicht als Störung.

Häufige Fragen

Was auf dieser Seite gefragt wird

Beides geht. Eine öffentlich erreichbare HTTPS-Medien-URL kann direkt ins Bildfeld. Upload-Tickets gibt es für nicht öffentliche Dateien und für alles oberhalb der Inline-Grenzen.