Trellis 2
Ενσωμάτωση
trellis-2
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/trellis-2?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/trellis-2?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/trellis-2", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/el/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "trellis-2",
"input": {
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
}
Καλέστε το μοντέλο Trellis 2 (trellis-2) μέσω του Doitong API. Τεκμηρίωση για πράκτορες: https://doitong.com/el/developers/models/trellis-2.md
POST https://api.doitong.com/v1/run/trellis-2?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
Αν η κατάσταση της απόκρισης είναι "queued" ή "running", εκτελέστε δημοσκόπηση με GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 μέχρι να γίνει "succeeded"· τα αρχεία βρίσκονται στο outputs[].url. Το POST https://api.doitong.com/v1/quote/trellis-2 με το ίδιο σώμα επιστρέφει την ακριβή τιμή πριν από την εκτέλεση.
Αυτό το αίτημα: 0,30 $ 300 πιστώσεις API Εκτέλεση σε αυτήν τη σελίδα
Το νέο σας κλειδί API. Εμφανίζεται μόνο τώρα και βρίσκεται ήδη στον κώδικα και στο παρακάτω πεδίο κλειδιού API. Κρατήστε το μυστικό: μην το εισάγετε ποτέ σε κώδικα που εκτελείται σε πρόγραμμα περιήγησης.
Το πρώτο σας αποτέλεσμα θα εμφανιστεί εδώ
Δημιουργήστε ένα αίτημα παρακάτω και εκτελέστε το με το κλειδί API σας. Οι έξοδοι αντιγράφονται στην αποθήκευσή μας και διατηρούνται για πάντα ή 7 ημέρες δωρεάν.
Δημιουργία αιτήματος
Τα στοιχεία ελέγχου δημιουργούνται από το σχήμα του μοντέλου. Ο κώδικας και η τιμή ενημερώνονται καθώς τα αλλάζετε.
/run/trellis-2?wait=20
προσφορά → 0,30 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/trellis-2?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/trellis-2?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/trellis-2", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "trellis-2",
"input": {
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"wait_seconds": 20
}
}
}
Εκτέλεση αυτού του αιτήματος
Το κλειδί σας παραμένει σε αυτό το πρόγραμμα περιήγησης: αποστέλλεται μόνο στο Doitong API και αποθηκεύεται (localStorage) μόνο αν ενεργοποιήσετε την επιλογή «Να απομνημονεύεται». Λήψη κλειδιού API
Σχετικά με το Trellis 2
Δημιουργεί ένα 3D αντικείμενο από μία εικόνα (`image_url`) και επιστρέφει αρχείο GLB. Το `resolution` είναι 512, 1024 ή 1536 και το `texture_size` είναι 1024, 2048 ή 4096. Καθένα από τα τρία στάδια (δομή, σχήμα, υφή) διαθέτει δικά του στοιχεία ελέγχου καθοδήγησης και βημάτων δειγματοληψίας. Το `decimation_target` ορίζει τον αριθμό κορυφών του πλέγματος (5,000 έως 2,000,000) και παρέχονται επιλογές επαναπλεγματοποίησης και αποτύλιξης UV.
Παράμετροι
Στείλτε είτε το κανονικό όνομα είτε το εγγενές όνομα, όχι και τα δύο. Κανονικά ονόματα
seedπροαιρετικό
resolutionπροαιρετικό
ss_guidance_strengthπροαιρετικό
ss_guidance_rescaleπροαιρετικό
ss_guidance_interval_startπροαιρετικό
ss_guidance_interval_endπροαιρετικό
ss_sampling_stepsπροαιρετικό
ss_rescale_tπροαιρετικό
shape_slat_guidance_strengthπροαιρετικό
shape_slat_guidance_rescaleπροαιρετικό
shape_slat_guidance_interval_startπροαιρετικό
shape_slat_guidance_interval_endπροαιρετικό
shape_slat_sampling_stepsπροαιρετικό
shape_slat_rescale_tπροαιρετικό
tex_slat_guidance_strengthπροαιρετικό
tex_slat_guidance_rescaleπροαιρετικό
tex_slat_guidance_interval_startπροαιρετικό
tex_slat_guidance_interval_endπροαιρετικό
tex_slat_sampling_stepsπροαιρετικό
tex_slat_rescale_tπροαιρετικό
decimation_targetπροαιρετικό
texture_sizeπροαιρετικό
remeshπροαιρετικό
remesh_bandπροαιρετικό
remesh_projectπροαιρετικό
uv_unwrap_angle_threshold_degπροαιρετικό
uv_unwrap_refine_iterationsπροαιρετικό
uv_unwrap_global_iterationsπροαιρετικό
uv_unwrap_smooth_strengthπροαιρετικό
image_urlαπαιτείται
image
Οι παράμετροι αρχείων δέχονται ένα δημόσιο URL https://, ένα URI data: έως 10 MB ή το file_url μιας μεταφόρτωσης. Αρχεία
Έξοδος
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "trellis-2",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 300,
"usd": "0.30",
"charged": 300,
"refunded": 0
},
"input": {
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"output": {
"model_glb": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
}
},
"outputs": [
{
"type": "file",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Πεδία εξόδου
- model_glb
- object {url, content_type, file_name, file_size}3D μοντέλο που παράγεται σε μορφή GLB.
Άλλες παραλλαγές του Trellis 2
Περισσότερα μοντέλα: Εικόνα σε 3D
Για πράκτορες AI: αυτή η σελίδα σε Markdown βρίσκεται στη διεύθυνση https://doitong.com/el/developers/models/trellis-2.md. Όλα τα μοντέλα και οι οδηγοί: https://doitong.com/developers/llms.txt