Справочник API
3D-модели
Модели этого эндпоинта (1)
/v1/model3d/tasks/v1/model3d/tasks/{task_id}Асинхронная генерация и постобработка 3D. Что делает задача, определяет одно поле — operation: создать модель по тексту, изображению или нескольким ракурсам, затем текстурировать, сегментировать её, выполнить ретопологию или риггинг. Отправка возвращает task_id; опрашивайте задачу, пока URL модели не появится в теле задачи.
#Параметры запроса
modelstringобязательноID 3D-модели из каталога, например tripo-3d.
operationstringобязательноtext_to_model · image_to_model · multiview_to_model · texture · smart_segment · retopology · rig · animate.
promptstringнеобязательноЧто создать. Используется в text_to_model.
inputstringнеобязательноПубличный URL изображения для image_to_model или task_id готовой 3D-модели для texture, smart_segment, retopology, rig и animate.
inputsobject[]необязательноmultiview_to_model: [{"front": url}, {"left": url}, …] — вид спереди и как минимум ещё один ракурс.
texturebooleanнеобязательноСгенерировать текстуры вместе с моделью.
pbrbooleanнеобязательноСгенерировать PBR-материалы.
texture_promptobjectнеобязательноtexture: {"text": "weathered bronze"} описывает новую поверхность.
face_limitintegerнеобязательноretopology: максимальное число полигонов в результате.
quadbooleanнеобязательноretopology: четырёхугольная сетка вместо треугольников.
animationstringнеобязательноanimate: анимация, которая применяется к модели с ригом.
#Связанные ошибки
- 404 not_foundНеизвестный task_id, либо входная задача последующего шага не существует или ещё не завершена.
- 401Bearer-токен недействителен или отсутствует. На этом пути error.code нет — ориентируйтесь на статус.
- 402 insufficient_user_quotaБаланса кошелька не хватает на предварительно резервируемую сумму.
- 429Ограничение частоты для ключа. Тело пустое; дождитесь Retry-After. Если же в ответе 429 есть insufficient_user_quota, это дневной лимит расходов.
- 503 model_not_foundНеизвестная модель, или сейчас её не обслуживает ни один исправный канал.
#Пример запроса
# 1. make a model from text
curl https://www.aisplice.store/v1/model3d/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "tripo-3d", "operation": "text_to_model", "prompt": "A small ceramic fox", "texture": true}'
# 2. poll until status is completed; the file is in url
curl https://www.aisplice.store/v1/model3d/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# 3. texture it: pass the finished task_id as input
curl https://www.aisplice.store/v1/model3d/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "tripo-3d", "operation": "texture", "input": "'$TASK_ID'", "texture_prompt": {"text": "weathered bronze"}}'#Ответ
// POST /v1/model3d/tasks
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/model3d/tasks/{task_id} — after completion
{"task_id": "task_xxx", "status": "completed", "url": "https://…/model.glb", "output": {"model_url": "https://…/model.glb"}}Проблема не решена?
Пришлите нам ID запроса или текст ошибки, и мы разберёмся.