API-Referenz
Bilder bearbeiten
Bearbeiten Sie ein Bild per Anweisung oder Bereich, ersetzen Sie den Hintergrund, ändern Sie das Seitenverhältnis oder die Farben oder ersetzen Sie Text.
Operationen#
POST /images/edits mit einem JSON-Anfrageinhalt. Erforderlicher Berechtigungsbereich: figures:generate. image ist eine file_id aus einem Upload oder früheren Ergebnis; operation wählt die Bearbeitung und ist standardmäßig instruct. Dieselben Werkzeuge finden Sie in der Ergebnisleiste der Website.
| operation | Funktion | Felder | Credits |
|---|---|---|---|
| instruct | Bearbeitet das gesamte Bild nach Anweisung; mit einer Maske wird nur der maskierte Bereich neu gezeichnet | instruction mit 1–2.000 Zeichen, optional mask, quality | 50 / 75 / 100 nach Qualität; mit Maske 100 |
| white_background | Ersetzt den Hintergrund durch reines Weiß, nicht durch Transparenz | quality | 50 / 75 / 100 |
| aspect_ratio | Passt die gesamte Abbildung an ein neues Seitenverhältnis an und erweitert den Hintergrund | aspect_ratio (1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9), quality | 50 / 75 / 100 |
| recolor | Wendet eine Palette auf die Abbildung an und erhält die Farben der Beschriftungen | Optional palette mit 1–8 #RRGGBB-Farben; ohne Angabe wird eine Palette gewählt; quality | 50 / 75 / 100 |
| replace_text | Ändert Textbeschriftungen an Ort und Stelle und erhält Schrift und Position | text_detection, replacements | 100 |
Eine Maske ist ein mit Verwendungszweck mask hochgeladenes PNG in derselben Größe wie das Bild. Weiß markiert die Bereiche, die geändert werden dürfen. Eine Bereichsbearbeitung verwendet unabhängig von quality immer das premium-Modell. replace_text akzeptiert kein quality: Es verwendet immer das Textbearbeitungsmodell und kostet den premium-Preis.
Text ersetzen#
- Rufen Sie
POST /images/text-detectionsfür dasselbe Bild auf. Dies ist kostenlos und gibt eineidsowie dietextsmit ihremindexzurück. - Senden Sie
operation: "replace_text",text_detection: <id>undreplacements: [{"index": 0, "text": "Figure 1"}]. Nicht aufgeführte Texte bleiben unverändert. - Ein nicht in der Erkennung enthaltener Index führt zu
400 INVALID_REQUESTmitdetails.reason = TEXT_INDEX_OUT_OF_RANGEund kostet nichts.
Credits#
Credits werden beim Erstellen des Auftrags reserviert, bei Erfolg einmal abgerechnet und bei einem Fehler vollständig zurückgegeben. Die Antwort ist ein Auftrag. Seine Felder und Status finden Sie unter Aufträge und begrenzte Wartezeit. Fehler sind unter Fehler aufgeführt.
cURL#
curl -X POST https://scifig.ai/api/v1/images/edits \
-H "Authorization: Bearer $SCIFIG_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Prefer: wait=25" \
-H "Content-Type: application/json" \
-d '{
"image": "<file_id>",
"operation": "aspect_ratio",
"aspect_ratio": "16:9"
}'JavaScript#
const response = await fetch('https://scifig.ai/api/v1/images/edits', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SCIFIG_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
Prefer: 'wait=25',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"image": "<file_id>",
"operation": "aspect_ratio",
"aspect_ratio": "16:9"
}),
});
const result = await response.json();
console.log(response.status, result);Python#
import os
import uuid
import requests
headers = {
"Authorization": f"Bearer {os.environ['SCIFIG_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
"Prefer": "wait=25",
}
response = requests.post(
"https://scifig.ai/api/v1/images/edits",
headers=headers,
json={
"image": "<file_id>",
"operation": "aspect_ratio",
"aspect_ratio": "16:9"
},
timeout=60,
)
print(response.status_code, response.json())