Оба инструмента принимают файл в multipart/form-data.
Улучшение фото
POST /photo/enhance - область tools:photo, задача. Одно фото за запрос.
Части формы:
| Часть | Описание |
|---|---|
image | фото - обязательное; JPEG, PNG или WebP до 25 МБ |
mask | только для cleanup: PNG-маска, белое - область, которую нужно изменить |
data | параметры одной JSON-строкой - обязательное |
Параметры в data:
| Поле | Описание |
|---|---|
mode | enhance - свет, цвет, резкость; cleanup - убрать лишнее; staging - обставить пустую комнату. По умолчанию cleanup |
prompt | для cleanup и staging обязателен (3-500 символов): что убрать или как обставить; для enhance необязателен |
intensity | light, medium (по умолчанию), strong |
roomType | living, bedroom, kitchen, bathroom, dining, office, outdoor |
furnitureStyle | для staging: modern, scandinavian, industrial, luxury, minimalist, coastal |
autoMask | cleanup без своей маски: найти область автоматически |
seed | число для повторяемого результата |
negativePrompt | чего избегать, до 300 символов |
objectId, objectType | ваш объект, которому принадлежит фото (property или complex) |
curl -X POST https://developers.grem.capital/api/v1/photo/enhance \
-H "Authorization: Bearer gsk_live_xxx" \
-F 'data={"mode":"cleanup","prompt":"remove the chair and the boxes"}' \
-F "[email protected]"
Маска с режимом enhance или staging отклоняется - там она не работает, и деньги не списываются. Цена зависит от режима. Отказы: маска вне cleanup - 422 с code: MASK_NOT_SUPPORTED; другой тип файла или файл больше 25 МБ - 422 с code: JOB_CREATE_FAILED; неизвестный ключ в data - 400. Ответ на запуск содержит sku и priceMinor - сколько списывается за вызов (нет, если его покрывает квота плана).
Ответ 202 с jobId. Готовая задача (GET /photo/enhance/jobs/{id}):
| Поле | Описание |
|---|---|
results | варианты результата |
results[].variant | номер варианта |
results[].url | адрес изображения |
results[].width, results[].height | размер |
metadata.error | у задачи со сбоем: причина, общим текстом |
Файл варианта: GET /artifacts/v1/ai/photo-enhancement/jobs/{jobId}/download/{variant}. События - photo.completed / photo.failed.
Очистка планировки
POST /floorplan/create - область tools:floorplan. Фото или скан плана превращается в чистый план с подписями комнат и площадями. Обработка происходит сразу: ответ 202 уже содержит итог.
| Часть | Описание |
|---|---|
file | изображение плана (JPEG, PNG, WebP, HEIC; до 20 МБ) - обязательное; принимается и название image |
objectId | прикрепить результат к вашему объекту |
objectType | property, rental или complex |
curl -X POST https://developers.grem.capital/api/v1/floorplan/create \
-H "Authorization: Bearer gsk_live_xxx" \
-F "[email protected]"
Ответ:
| Поле | Описание |
|---|---|
jobId | id задачи |
status | done - подписи приняты автоматически; review - результат готов, но подписи стоит проверить; rejected - на изображении не план; failed - сбой |
state | completed для done и review, failed для rejected и failed |
rooms | комнаты: label, area (м², если подписана), stable (подпись прочитана одинаково при каждом проходе), placement (где подпись стоит на очищенном плане) |
totalArea | общая площадь, м², если площади подписаны на плане |
cleanedFileId | очищенное изображение плана |
sourceFileId | загруженный вами план |
Отчет: GET /artifacts/v1/ai/floor-plan/jobs/{id}/report.pdf. Повторно получить результат - GET /floorplan/create/jobs/{id}. События - floorplan.completed / floorplan.failed. Если на изображении не план, деньги не списываются.