PATINA
Интеграциялау
patina
# 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/patina?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/patina?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/patina", 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/kk/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": "patina",
"input": {
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
}
PATINA моделін (patina) Doitong API арқылы шақырыңыз. Агенттерге арналған құжаттама: https://doitong.com/kk/developers/models/patina.md
POST https://api.doitong.com/v1/run/patina?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" болса, ол "succeeded" болғанша GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 арқылы күйін тексеріңіз; файлдар outputs[].url ішінде болады. Дәл іске қосу бағасын алдын ала алу үшін POST https://api.doitong.com/v1/quote/patina сұрауын сол денемен жіберіңіз.
Мысалдағыдай файлдар: 0,06 $ 60 API кредиті файлдарыңыз іске қосу алдында өлшенеді Осы бетте іске қосу
Жаңа API кілтіңіз. Ол тек қазір көрсетіледі және кодта, сондай-ақ төмендегі API кілті өрісінде бар. Оны құпия сақтаңыз: браузерде орындалатын кодқа ешқашан енгізбеңіз.
Алғашқы нәтижеңіз осында пайда болады
Төменде сұрау құрып, оны API кілтіңізбен іске қосыңыз. Шығыстар сақтау орнымызға көшіріліп, мәңгі немесе 7 күн тегін сақталады.
Сұрау жасау
Басқару элементтері модель схемасынан жасалады. Оларды өзгерткен сайын код пен баға жаңартылады.
/run/patina?wait=20
бағасы → 0,06 $
# 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/patina?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/patina?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/patina", 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": "patina",
"input": {
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"wait_seconds": 20
}
}
}
Осы сұрауды іске қосу
Кілтіңіз осы браузерде қалады: ол тек Doitong API-ге жіберіледі және Remember параметрін белгілеcеңіз ғана localStorage ішінде сақталады. API кілтін алу
PATINA туралы
Фотосуретті немесе рендерді 3D және текстуралау жұмыстарына арналған материал карталарына түрлендіреді. Жасалатын basecolor, normal, roughness, metalness және height карталарын таңдау үшін `maps` қолданылады; әдепкіде бесеуі де жасалады. Шығыс PNG, JPEG немесе WebP болуы мүмкін, ал `seed` денойзингті қайталанатын етеді. Сұралған әр картаға бір кескін қайтарады.
Параметрлер
Канондық атауды немесе төл атауды жіберіңіз, екеуін қатар жібермеңіз. Канондық атаулар
image_urlміндетті
image
mapsміндетті емес
seedміндетті емес
enable_safety_checkerміндетті емес
output_formatміндетті емес
Файл параметрлері жалпыға қолжетімді https:// URL мекенжайын, 10 MB-қа дейінгі data: URI мекенжайын немесе жүктеп салынған файлдың file_url мәнін қабылдайды. Файлдар
Шығыс
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "patina",
"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": 60,
"usd": "0.06",
"charged": 60,
"refunded": 0
},
"input": {
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"output": {
"images": [
{
"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,
"width": 1024,
"height": 768,
"map_type": "basecolor"
}
],
"timings": {},
"seed": 42
},
"outputs": [
{
"type": "image",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768,
"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"
}
}
Шығыс өрістері
- images
- array of object {url, content_type, file_name, file_size, width, height, map_type}Болжау нәтижесінде жасалған PBR материал карталары.
- timings
- objectСекундпен берілген өңдеу уақыттары.
- seed
- integerШуды жою кезінде қолданылған seed.
Patina модельдерінің басқа нұсқалары
Қосымша модельдер: Кескінді өңдеу
AI агенттеріне: бұл беттің Markdown нұсқасы мына жерде: https://doitong.com/kk/developers/models/patina.md. Барлық модельдер мен нұсқаулықтар: https://doitong.com/developers/llms.txt






