SciFig

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.

Als Markdown anzeigen

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.

operationFunktionFelderCredits
instructBearbeitet das gesamte Bild nach Anweisung; mit einer Maske wird nur der maskierte Bereich neu gezeichnetinstruction mit 1–2.000 Zeichen, optional mask, quality50 / 75 / 100 nach Qualität; mit Maske 100
white_backgroundErsetzt den Hintergrund durch reines Weiß, nicht durch Transparenzquality50 / 75 / 100
aspect_ratioPasst die gesamte Abbildung an ein neues Seitenverhältnis an und erweitert den Hintergrundaspect_ratio (1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9), quality50 / 75 / 100
recolorWendet eine Palette auf die Abbildung an und erhält die Farben der BeschriftungenOptional palette mit 1–8 #RRGGBB-Farben; ohne Angabe wird eine Palette gewählt; quality50 / 75 / 100
replace_textÄndert Textbeschriftungen an Ort und Stelle und erhält Schrift und Positiontext_detection, replacements100

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-detections für dasselbe Bild auf. Dies ist kostenlos und gibt eine id sowie die texts mit ihrem index zurück.
  • Senden Sie operation: "replace_text", text_detection: <id> und replacements: [{"index": 0, "text": "Figure 1"}]. Nicht aufgeführte Texte bleiben unverändert.
  • Ein nicht in der Erkennung enthaltener Index führt zu 400 INVALID_REQUEST mit details.reason = TEXT_INDEX_OUT_OF_RANGE und 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())