Beide Werkzeuge nehmen eine Datei als multipart/form-data.
Fotoverbesserung
POST /photo/enhance - Bereich tools:photo, Auftrag. Ein Foto pro Anfrage.
Formularteile:
| Teil | Beschreibung |
|---|---|
image | das Foto - Pflicht; JPEG, PNG oder WebP bis 25 MB |
mask | nur cleanup: eine PNG-Maske, Weiß markiert den zu ändernden Bereich |
data | Optionen als ein JSON-String - Pflicht |
Optionen in data:
| Feld | Beschreibung |
|---|---|
mode | enhance - Licht, Farbe, Schärfe; cleanup - Dinge entfernen; staging - einen leeren Raum einrichten. Standard cleanup |
prompt | Pflicht für cleanup und staging (3 bis 500 Zeichen): was entfernt oder wie eingerichtet werden soll; bei enhance optional |
intensity | light, medium (Standard), strong |
roomType | living, bedroom, kitchen, bathroom, dining, office, outdoor |
furnitureStyle | für staging: modern, scandinavian, industrial, luxury, minimalist, coastal |
autoMask | cleanup ohne eigene Maske: den Bereich automatisch finden |
seed | eine Zahl für ein reproduzierbares Ergebnis |
negativePrompt | was vermieden werden soll, bis 300 Zeichen |
objectId, objectType | Ihr Objekt, zu dem das Foto gehört (property oder complex) |
curl -X POST https://developers.grem.capital/api/v1/photo/enhance \
-H "Authorization: Bearer gsk_live_xxx" \
-F 'data={"mode":"cleanup","prompt":"Stuhl und Kartons entfernen"}' \
-F "[email protected]"
Eine Maske mit enhance oder staging wird abgelehnt - sie wirkt dort nicht, und es wird nichts berechnet. Der Preis hängt vom Modus ab. Ablehnungen: eine Maske außerhalb von cleanup - 422 mit code: MASK_NOT_SUPPORTED; ein anderer Dateityp oder eine Datei über 25 MB - 422 mit code: JOB_CREATE_FAILED; ein unbekannter Schlüssel in data - 400. Die Startantwort enthält sku und priceMinor - was der Aufruf kostet (fehlt, wenn das Tarifkontingent ihn deckt).
202 mit jobId. Der fertige Auftrag (GET /photo/enhance/jobs/{id}):
| Feld | Beschreibung |
|---|---|
results | Ergebnisvarianten |
results[].variant | Nummer der Variante |
results[].url | Bildadresse |
results[].width, results[].height | Größe |
metadata.error | bei einem fehlgeschlagenen Auftrag: der Grund als allgemeiner Text |
Datei einer Variante: GET /artifacts/v1/ai/photo-enhancement/jobs/{jobId}/download/{variant}. Ereignisse - photo.completed / photo.failed.
Grundrissbereinigung
POST /floorplan/create - Bereich tools:floorplan. Aus einem Foto oder Scan eines Grundrisses wird ein sauberer Grundriss mit Raumbezeichnungen und Flächen. Die Verarbeitung erfolgt sofort: Die 202 enthält bereits das Ergebnis.
| Teil | Beschreibung |
|---|---|
file | das Grundrissbild (JPEG, PNG, WebP, HEIC; bis 20 MB) - Pflicht; der Name image wird ebenfalls akzeptiert |
objectId | das Ergebnis an Ihr Objekt anhängen |
objectType | property, rental oder complex |
curl -X POST https://developers.grem.capital/api/v1/floorplan/create \
-H "Authorization: Bearer gsk_live_xxx" \
-F "[email protected]"
Antwort:
| Feld | Beschreibung |
|---|---|
jobId | Auftrags-ID |
status | done - Bezeichnungen automatisch übernommen; review - Ergebnis fertig, Bezeichnungen sollten geprüft werden; rejected - das Bild ist kein Grundriss; failed - Fehler |
state | completed bei done und review, failed bei rejected und failed |
rooms | Räume: label, area (m², wenn beschriftet), stable (die Beschriftung wurde in jedem Durchgang gleich gelesen), placement (wo die Beschriftung auf dem bereinigten Grundriss steht) |
totalArea | Gesamtfläche, m², wenn Flächen im Grundriss stehen |
cleanedFileId | das bereinigte Grundrissbild |
sourceFileId | der von Ihnen hochgeladene Grundriss |
Bericht: GET /artifacts/v1/ai/floor-plan/jobs/{id}/report.pdf. Ergebnis erneut abrufen - GET /floorplan/create/jobs/{id}. Ereignisse - floorplan.completed / floorplan.failed. Ist das Bild kein Grundriss, wird nichts berechnet.