Segment Anything Model 3
Integrer
sam-3/image
# 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/sam-3/image?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/sam-3/image?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/sam-3/image", 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/da/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": "sam-3/image",
"input": {
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
}
Kald Segment Anything Model 3-modellen (sam-3/image) via Doitong API. Dokumentation til agenter: https://doitong.com/da/developers/models/sam-3/image.md
POST https://api.doitong.com/v1/run/sam-3/image?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
Hvis svarstatus er "queued" eller "running", skal du forespørge GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 igen, indtil den er "succeeded"; filerne findes i outputs[].url. POST https://api.doitong.com/v1/quote/sam-3/image med samme body returnerer den nøjagtige pris før kørslen.
Denne anmodning: ≈0,005 $ 5 API-kreditter Kør den på denne side
Din nye API-nøgle. Den vises kun nu og findes allerede i koden og i feltet til API-nøglen nedenfor. Hold den hemmelig: Anbring den aldrig i kode, der kører i en browser.
Dit første resultat kommer her
Opret en anmodning nedenfor, og kør den med din API-nøgle. Output kopieres til vores lagring, gemt for altid eller 7 dage gratis.
Opret en anmodning
Kontrollerne genereres fra modellens skema. Koden og prisen opdateres, når du ændrer dem.
/run/sam-3/image?wait=20
pris → 0,005 $
# 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/sam-3/image?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/sam-3/image?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/sam-3/image", 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": "sam-3/image",
"input": {
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"wait_seconds": 20
}
}
}
Kør denne anmodning
Din nøgle forbliver i denne browser: Den sendes kun til Doitong API og gemmes kun i localStorage, hvis du markerer Husk. Hent en API-nøgle
Om Segment Anything Model 3
Segmenterer et billede med SAM 3 ud fra en tekstlig `prompt`, `point_prompts` eller `box_prompts`. Når `return_multiple_masks` er aktiveret, returneres op til `max_masks` masker (1 til 32). Valgfrie konfidensscorer og afgrænsningsbokse kan inkluderes. Outputformatet er jpeg, png eller webp.
Parametre
Send enten det kanoniske navn eller det oprindelige navn, ikke begge. Kanoniske navne
image_urlpåkrævet
image
promptvalgfri
text_promptvalgfri
point_promptsvalgfri
point_prompts[].xvalgfri
point_prompts[].yvalgfri
point_prompts[].labelvalgfri
point_prompts[].object_idvalgfri
point_prompts[].frame_indexvalgfri
box_promptsvalgfri
box_prompts[].x_minvalgfri
box_prompts[].y_minvalgfri
box_prompts[].x_maxvalgfri
box_prompts[].y_maxvalgfri
box_prompts[].object_idvalgfri
box_prompts[].frame_indexvalgfri
apply_maskvalgfri
output_formatvalgfri
return_multiple_masksvalgfri
max_masksvalgfri
include_scoresvalgfri
include_boxesvalgfri
Filparametre accepterer en offentlig https://-URL, en data:-URI på op til 10 MB eller file_url fra en upload. Filer
Output
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "sam-3/image",
"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": 5,
"usd": "0.005",
"charged": 5,
"refunded": 0
},
"input": {
"image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
},
"output": {
"image": {
"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
},
"masks": [
{
"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
}
],
"metadata": [
{
"index": 1,
"score": 1.0,
"box": [
1.0
]
}
],
"scores": [
1.0
],
"boxes": [
[
1.0
]
]
},
"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"
}
}
Outputfelter
- image
- object {url, content_type, file_name, file_size, width, height} | nullForhåndsvisning, der viser den primære segmenteringsmaske.
- masks
- array of object {url, content_type, file_name, file_size, width, height}Billeder, der indeholder segmenteringsmasker.
- metadata
- array of object {index, score, box} | nullMetadata for hver maske, inklusive dens score og boks.
- scores
- array of number | nullKonfidensscore for hver maske, angivet når det anmodes.
- boxes
- array of array of number | nullNormaliserede bokse for hver maske, udtrykt som [cx, cy, w, h], hvis det anmodes.
Andre Sam3-varianter
Flere modeller: Billedredigering
Til AI-agenter: Denne side som Markdown findes på https://doitong.com/da/developers/models/sam-3/image.md. Alle modeller og vejledninger: https://doitong.com/developers/llms.txt






