
Hakuna zinazolingana. Jaribu “video”, “FLUX” au “webhooks”.
Inapakia miundo…
nano-banana-2/edit
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/v1/run/nano-banana-2/edit?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog'\''s pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://vit.doitong.com/api/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/nano-banana-2/edit?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}),
});
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://vit.doitong.com/api/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png",
],
"resolution": "1K",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/nano-banana-2/edit", 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/sw/developers/docs/mcp)
claude mcp add --transport http doitong-models https://vit.doitong.com/api/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "nano-banana-2/edit",
"input": {
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}
}
Piga modeli ya Nano Banana 2 Edit (nano-banana-2/edit) kupitia Doitong API. Nyaraka za mawakala: https://doitong.com/sw/developers/models/nano-banana-2/edit.md
POST https://vit.doitong.com/api/v1/run/nano-banana-2/edit?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}
Ikiwa hali ya jibu ni "queued" au "running", piga GET https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20 mara kwa mara hadi iwe "succeeded"; faili ziko kwenye outputs[].url. POST https://vit.doitong.com/api/v1/quote/nano-banana-2/edit yenye mwili uleule hurejesha bei kamili kabla ya kuendesha.
Ombi hili: $ 0.08 salio za API 80 Iendeshe kwenye ukurasa huu
Ufunguo wako mpya wa API. Inaonyeshwa sasa tu na tayari iko kwenye msimbo na katika sehemu ya ufunguo wa API hapa chini. Iweke siri: usiwahi kuiweka kwenye msimbo unaoendeshwa kwenye kivinjari.
Vidhibiti vinazalishwa kutoka kwenye schema ya modeli. Msimbo na bei husasishwa unapovibadilisha.
/run/nano-banana-2/edit?wait=20
makadirio → $ 0.08
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/v1/run/nano-banana-2/edit?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog'\''s pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://vit.doitong.com/api/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/nano-banana-2/edit?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}),
});
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://vit.doitong.com/api/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png",
],
"resolution": "1K",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/nano-banana-2/edit", 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": "nano-banana-2/edit",
"input": {
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
},
"wait_seconds": 20
}
}
}
Key yako inabaki kwenye kivinjari hiki: inatumwa kwa Doitong API pekee na kuhifadhiwa (localStorage) tu ukiweka tiki kwenye Kumbuka. Pata ufunguo wa API
Hali ya uhariri ya Nano Banana 2: pitisha picha na eleza mabadiliko, au ruka picha na utoe video, faili la sauti au PDF (kila moja hadi MB 15) kama muktadha wa kuonyesha. Matokeo kutoka 0.5K hadi 4K yenye uwiano kutoka 1:8 hadi 8:1, utafutaji wa hiari wa wavuti na kufikiri kwa kiwango cha juu, hadi matokeo manne kwa ombi.
Tuma jina rasmi au jina asilia, si yote mawili. Majina rasmi
promptinahitajika
num_imagessi lazima
num_outputs
seedsi lazima
aspect_ratiosi lazima
output_formatsi lazima
safety_tolerancesi lazima
image_urlssi lazima
images
system_promptsi lazima
resolutionsi lazima
video_urlsi lazima
video
audio_urlsi lazima
audio
pdf_urlsi lazima
limit_generationssi lazima
enable_web_searchsi lazima
thinking_levelsi lazima
Vigezo vya faili vinakubali URL ya umma ya https://, data: URI ya hadi 10 MB, au file_url ya upakiaji. Faili
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "nano-banana-2/edit",
"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": 80,
"usd": "0.08",
"charged": 80,
"refunded": 0
},
"input": {
"prompt": "Turn this night street scene into a sunny morning, keep the sneaker and the puddle reflections",
"images": [
"https://content.doitong.com/images/showcase/v3/gen_sneaker_ad.jpg"
],
"resolution": "1K"
},
"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
}
],
"description": "string"
},
"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://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Kwa mawakala wa AI: ukurasa huu katika Markdown unapatikana kwenye https://doitong.com/sw/developers/models/nano-banana-2/edit.md. Modeli na miongozo yote: https://doitong.com/developers/llms.txt