# Pixal3d API

> Hubadilisha picha moja kuwa modeli ya 3D ya GLB yenye tekstura na udhibiti wa kina wa kila hatua ya uzalishaji

Huchukua picha moja na kurejesha modeli ya GLB pamoja na mbegu iliyotumika. Hatua za muundo, umbo na tekstura zina mipangilio yake ya mwongozo, rescale, idadi ya hatua na ratiba ya kelele. `resolution` ni 1024 au 1536, `texture_size` ni 1024, 2048 au 4096, na `decimation_target` huweka idadi ya vertex kutoka 5000 hadi 1586021. `remesh` huunda upya topolojia.

- Model id: `pixal3d`
- Made by: Open model
- Category: Image to 3D
- Output: 3d
- Price: from $0.30 / request (cheapest run $0.30 (300 API credits))
- Run: `POST https://api.doitong.com/v1/run/pixal3d`
- Quote: `POST https://api.doitong.com/v1/quote/pixal3d`
- Docs page: https://doitong.com/sw/developers/models/pixal3d

## Pricing

Price: **from $0.30 / request** (the lowest tier; the quote prices your exact input). Billed once per request.

Price rules (the first rule that matches the input wins; a parameter you leave out counts as its default):

- When `resolution` = 1536: $0.42 (420 API credits) / request

The full example input below costs $0.30 = 300 API credits (1 request × 300 API credits).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). `POST https://api.doitong.com/v1/quote/pixal3d` with the same JSON body returns the exact price for that input; the quote is exactly what a run charges. Invalid input is never charged and failed or canceled requests are refunded automatically.

## Input parameters

Send either the canonical name or the native field name (not both). Canonical names are the same across models.

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `image_url` | `image` | string (image URL) | yes |  |  | URL inayoelekeza kwenye picha chanzo kwa ubadilishaji wa 3D. |
| `seed` |  | integer \| null | no |  |  | Seed inayotumika kwa uzalishaji wa nasibu unaoweza kurudiwa. |
| `resolution` |  | enum (integer) | no | `1024` | `1024`, `1536` | Mwonekano wa tokeo; kuuongeza huongeza maelezo lakini huchukua muda zaidi. |
| `ss_guidance_strength` |  | number | no | `7.5` | 0 – 10 | Udhibiti wa uaminifu wa muundo wa awali wa 3D: kuuongeza hupendelea ulinganifu wa karibu na picha ya ingizo, kwa hatari ya noise zaidi. |
| `ss_guidance_rescale` |  | number | no | `0.7` | 0 – 1 | Udhibiti wa vizalia vya mwongozo wa hatua ya 1, ukibadilisha athari thabiti za mwongozo katika mipangilio ya chini kwa tokeo thabiti zaidi katika mipangilio ya juu. |
| `ss_sampling_steps` |  | integer | no | `12` | 1 – 50 | Idadi ya hatua za kuondoa noise ya muundo wa awali: maboresho yanayowezekana ya ubora kutokana na hatua za ziada huambatana na uchakataji wa polepole. |
| `ss_rescale_t` |  | number | no | `5` | 1 – 6 | Weka ukali wa mabadiliko kupitia ratiba ya noise ya uzalishaji wa muundo: kuongeza thamani hii hufanya mabadiliko kuwa makali zaidi. |
| `shape_slat_guidance_strength` |  | number | no | `7.5` | 0 – 10 | Udhibiti wa uaminifu wa jiometri ya kina: kuongeza ufuasi wa picha ya ingizo huleta maelezo zaidi, kwa hatari ya noise iliyoongezwa. |
| `shape_slat_guidance_rescale` |  | number | no | `0.5` | 0 – 1 | Ongeza mpangilio huu jiometri inapoonekana kuwa na noise: hupunguza vizalia vinavyosababishwa na mwongozo thabiti wakati wa hatua ya umbo. |
| `shape_slat_sampling_steps` |  | integer | no | `12` | 1 – 50 | Idadi ya hatua za kuondoa noise za uboreshaji wa umbo: jiometri laini zaidi inayowezekana hugharimu kasi wakati wa kutumia hatua za ziada. |
| `shape_slat_rescale_t` |  | number | no | `3` | 1 – 6 | Weka ukali wa maelezo ya jiometri kupitia ratiba ya noise ya uboreshaji wa umbo; kuongeza thamani hii hutoa maelezo makali zaidi. |
| `tex_slat_guidance_strength` |  | number | no | `1` | 0 – 10 | Udhibiti wa uaminifu wa rangi ya texture: ufuasi wa karibu zaidi wa rangi katika picha ya ingizo kwenye mipangilio ya juu huongeza uangavu lakini unaweza kusababisha rangi kuzidi. |
| `tex_slat_guidance_rescale` |  | number | no | `0` | 0 – 1 | Ongeza mpangilio huu kushughulikia textures zenye noise au color banding: hupunguza vizalia vinavyosababishwa na mwongozo thabiti wakati wa hatua ya texture. |
| `tex_slat_sampling_steps` |  | integer | no | `12` | 1 – 50 | Idadi ya hatua za kuondoa noise zinazotumika kuzalisha textures. Kuongeza idadi ya hatua huchukua muda zaidi lakini kunaweza kutoa textures safi zaidi. |
| `tex_slat_rescale_t` |  | number | no | `3` | 1 – 6 | Weka ukali wa maelezo ya texture kupitia ratiba ya noise ya uzalishaji wa texture; kuongeza thamani hii hutoa maelezo makali zaidi. |
| `mesh_scale` |  | number | no | `1` | 0.1 – 4 | Pima mesh iliyokadiriwa ili kuathiri makadirio ya umbali wa kamera yanayotumiwa na modeli. |
| `max_num_tokens` |  | integer | no | `49152` | 4,096 – 131,072 | Kikomo cha tokeni za HR kwa sampler ya umbo ya cascaded, kikisawazisha jiometri laini zaidi katika mipangilio ya juu dhidi ya kuokoa kumbukumbu na muda wa uchakataji katika mipangilio ya chini. |
| `decimation_target` |  | integer | no | `200000` | 5,000 – 1,586,021 | Lengo la utata wa mesh, linaloonyeshwa kama idadi ya vertices za tokeo la mwisho. Kupunguza ukubwa wa faili kwa kushusha lengo hili pia hupunguza maelezo. |
| `texture_size` |  | enum (integer) | no | `2048` | `1024`, `2048`, `4096` | Mwonekano wa texture ya mesh kwa baking. Maelezo bora ya uso huja na faili kubwa zaidi mwonekano huu unapoongezwa. |
| `remesh` |  | boolean | no | `true` |  | Uundaji upya wa topolojia ya mesh ambao kwa kawaida hufaidi matumizi ya baadaye kwa kuunda pembetatu safi zaidi, kwa gharama ya uchakataji mrefu zaidi. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Ukaguzi unaweza kulegezwa kwa kuweka false, ikiwa mpigaji simu ameidhinishwa. |

File parameters (`image`) take a public `https://` URL, a `data:` URI up to 10 MB, or the `file_url` of an upload from `POST /files`.

## Example input

Required parameters only:

```json
{
  "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

A fuller example:

```json
{
  "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

## Run it

Set `DOITONG_API_KEY` to a key from https://doitong.com/developers/dashboard#keys. `?wait=20` returns the finished request in the same call when it is ready within 20 seconds; otherwise poll `GET /requests/{id}` (it also accepts `?wait=`), or pass `webhook_url`.

### curl

```bash
# 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/pixal3d?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "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"
```

### JavaScript

```javascript
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/pixal3d?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "image_url": "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 + ")");
```

### Python

```python
import os
import requests

API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}

payload = {
    "image_url": "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/pixal3d", 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"])
```

### MCP

The MCP server at `https://api.doitong.com/v1/mcp` exposes the tools `search_models`, `get_model`, `quote`, `run`, `get_request`, `cancel_request`, `list_requests`, `create_upload` and `get_account`. A `run` call for this model:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "run",
    "arguments": {
      "model_id": "pixal3d",
      "input": {
        "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
      },
      "wait_seconds": 20
    }
  }
}
```

## Response

Every call returns a request object. `status` is one of `queued`, `running`, `succeeded`, `failed`, `canceled`. `outputs` lists the generated files with URLs on our storage (kept forever, or 7 days with `?storage=temporary`; `storage` says which); `output` is the model's own result object with the same URLs.

```json
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "pixal3d",
  "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
    },
    "seed": 42
  },
  "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"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `model_glb` | object {url, content_type, file_name, file_size} | Modeli ya 3D inayozalishwa katika muundo wa GLB. |
| `seed` | integer | Thamani ya seed iliyotumika kweli. |

## Related models

- [ReconViaGen 0.5](https://doitong.com/developers/models/reconviagen-0.5.md) (`reconviagen-0.5`): from $0.25 / request
- [Hi3D Image to 3D](https://doitong.com/developers/models/hitem3d/hi3d/image-to-3d.md) (`hitem3d/hi3d/image-to-3d`): $0.50 / run
- [Hi3D Image to 3D · v3.0](https://doitong.com/developers/models/hitem3d/hi3d/v3.0/image-to-3d.md) (`hitem3d/hi3d/v3.0/image-to-3d`): from $1.80 / run
- [Hi3D Multiview to 3D · Multi View to 3D](https://doitong.com/developers/models/hitem3d/hi3d/multi-view-to-3d.md) (`hitem3d/hi3d/multi-view-to-3d`): $0.50 / run
- [Hi3D Multiview to 3D · v3.0 · Multi View to 3D](https://doitong.com/developers/models/hitem3d/hi3d/v3.0/multi-view-to-3d.md) (`hitem3d/hi3d/v3.0/multi-view-to-3d`): from $1.80 / run
- [Hunyuan 3D Pro Image to 3D](https://doitong.com/developers/models/hunyuan-3d/v3.1/pro/image-to-3d.md) (`hunyuan-3d/v3.1/pro/image-to-3d`): $0.375 / run
- [Hunyuan 3D Rapid Image to 3D](https://doitong.com/developers/models/hunyuan-3d/v3.1/rapid/image-to-3d.md) (`hunyuan-3d/v3.1/rapid/image-to-3d`): from $0.225 / request
- [Hunyuan World · Image to World](https://doitong.com/developers/models/hunyuan_world/image-to-world.md) (`hunyuan_world/image-to-world`): $0.30 / request

## Links

- HTML page: https://doitong.com/developers/models/pixal3d
- All models and guides for AI agents: https://doitong.com/developers/llms.txt
- OpenAPI 3.1 with this model's typed request body: https://doitong.com/developers/openapi.json?model=pixal3d
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/pixal3d
