الانتقال إلى المحتوى الرئيسي
توليد نماذج ثلاثية الأبعاد من النصوص أو الصور باستخدام Tripo3D ومزودين آخرين. هذه API غير متزامنة. تعيد استجابة الإنشاء هوية المهمة، وقد تتضمن أيضًا poll_url مفضلًا عند توفره. يتم استنتاج عمليات 3D العامة من شكل الطلب: الطلبات التي تحتوي على prompt فقط تُعامل كـ text-to-3d، والطلبات التي تحتوي على image أو image_url تُعامل كـ image-to-3d. لا يعرّض هذا endpoint حقل طلب باسم operation؛ لا ترسل القيمة القديمة 3d-generation.

جسم الطلب

model
string
افتراضي:"tripo-h3.1"
النموذج المراد استخدامه، مثل tripo-h3.1 أو tripo-p1.0. استخدم GET /v1/models?recommended_for=3d قبل الاعتماد على نوع إدخال أو صيغة إخراج محددة.
prompt
string
مطلوب
وصف نصي للنموذج ثلاثي الأبعاد المراد توليده.
image
string
صورة بترميز Base64 لتوليد نموذج ثلاثي الأبعاد من صورة.
image_url
string
رابط (URL) الصورة لتوليد نموذج ثلاثي الأبعاد من صورة.
format
string
افتراضي:"glb"
تنسيق المخرجات: glb أو fbx أو obj أو usdz.
quality
string
افتراضي:"standard"
مستوى الجودة: draft أو standard أو high.
style
string
نمط مسبق الإعداد للنموذج.
seed
integer
بذرة (seed) لضمان توليد نتائج متطابقة.
user
string
معرف فريد للمستخدم النهائي.

الاستجابة

id
string
معرف المهمة (Task ID) للاستعلام عن الحالة.
task_id
string
الاسم البديل لمعرّف المهمة غير المتزامنة عندما يعيده المهايئ.
poll_url
string
رابط polling المفضّل عندما يكون متاحًا.
status
string
حالة المهمة: pending أو processing أو completed أو failed.
created
integer
طابع زمني بتنسيق Unix لوقت إنشاء المهمة.
curl -X POST "https://api.tokenlab.sh/v1/3d/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tripo-h3.1",
    "prompt": "A detailed medieval castle with towers",
    "format": "glb",
    "quality": "high"
  }'
import requests

response = requests.post(
    "https://api.tokenlab.sh/v1/3d/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "tripo-h3.1",
        "prompt": "A detailed medieval castle with towers",
        "format": "glb",
        "quality": "high"
    }
)

task_id = response.json()["id"]
print(f"Task ID: {task_id}")
const response = await fetch('https://api.tokenlab.sh/v1/3d/generations', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk-your-api-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'tripo-h3.1',
    prompt: 'A detailed medieval castle with towers',
    format: 'glb',
    quality: 'high'
  })
});

const data = await response.json();
console.log(`Task ID: ${data.id}`);
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "model":   "tripo-h3.1",
        "prompt":  "A detailed medieval castle with towers",
        "format":  "glb",
        "quality": "high",
    }
    body, _ := json.Marshal(payload)

    req, _ := http.NewRequest("POST", "https://api.tokenlab.sh/v1/3d/generations", bytes.NewBuffer(body))
    req.Header.Set("Authorization", "Bearer sk-your-api-key")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Printf("Task ID: %s\n", result["id"])
}
<?php
$ch = curl_init('https://api.tokenlab.sh/v1/3d/generations');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer sk-your-api-key'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'model' => 'tripo-h3.1',
        'prompt' => 'A detailed medieval castle with towers',
        'format' => 'glb',
        'quality' => 'high'
    ])
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
echo "Task ID: " . $data['id'];
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "created": 1706000000,
  "model": "tripo-h3.1"
}