Detail & Texture
Phase 4 detailer + texture endpoints — GPU-powered mesh refinement and retexturing.
Phase 4 takes a completed submission as the source mesh and produces a high-resolution textured model. You can also remesh or retexture an existing result without regenerating from scratch.
Endpoints split across two routers:
/api/v1/detailer/*— full detail + texture pass, geometry-only operations (remesh)./api/v1/texture/*— texture-only operations on an existing mesh (generate, rebake).
Detail and texture a model
POST /api/v1/detailer/submit
Requires API key.
Generate a high-resolution textured mesh from a parent submission. A reference image and prompt guide the texture style; if omitted, they are auto-generated from the parent.
Request Body
| Name | Type | Description |
|---|---|---|
parent_submission_id | string (required) | ID of the submission to detail. |
image | string | Reference image (base64 or HTTPS URL). Auto-generated if omitted. |
mesh | string | Override source mesh (base64 or URL). Defaults to the parent's GLB. |
prompt | string | Text description of the desired appearance. |
seed | integer | Random seed for reproducibility. 0–999,999. Default: 42. |
texture_size | integer | Output texture resolution. Values: 512, 768, 1024, 2048. Default: 768. |
decimation_target | integer | Target triangle count after decimation. 10,000–500,000. Default: 160000. |
preserve_parts | boolean | Keep separate mesh parts intact during decimation. Default: true. |
focus_on_node_names | string[] | Node names to focus the generation on. Empty = whole mesh. |
project_id | string | Assign to a project. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/detailer/submit \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{
"parent_submission_id": "a1b2c3d4-...",
"prompt": "weathered bronze, green patina",
"texture_size": 1024
}'Example Response
{
"submission_id": "e5f6a7b8-...",
"status": "queued",
"created_at": "2026-04-20T14:45:30Z",
"reference_image_url": "https://api.thrixel.com/api/v1/detailer/reference/e5f6a7b8-..."
}
Re-decimate a Phase 4 mesh
POST /api/v1/detailer/remesh
Requires API key.
Produce a new triangle count from an existing Phase 4 checkpoint without regenerating texture. Fast — reuses cached intermediate results.
Request Body
| Name | Type | Description |
|---|---|---|
parent_submission_id | string (required) | ID of a completed Phase 4 submission. |
decimation_target | integer | Target triangle count. 10,000–500,000. Default: 200000. |
remesh | boolean | Run quad remeshing before decimation. Default: true. |
project_id | string | Assign to a project. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/detailer/remesh \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{
"parent_submission_id": "e5f6a7b8-...",
"decimation_target": 80000
}'Generate textures for an existing mesh
POST /api/v1/texture/generate
Requires API key.
Produce fresh PBR textures from a reference image. Geometry is preserved; only materials change. Works on any completed submission (phase 1–5), not just Phase 4 output. Image priority: user-supplied → cached parent input → auto-generated from the GLB.
Request Body
| Name | Type | Description |
|---|---|---|
parent_submission_id | string (required) | ID of a completed submission to retexture. |
texture_size | integer | Output texture resolution. Values: 512, 768, 1024, 2048. Default: 1024. |
image | string | Reference image (base64 data URI). Auto-generated from the GLB if omitted. |
apply_to_node_names | string[] | Restrict texturing to specific mesh nodes. Empty = whole mesh. |
project_id | string | Assign to a project. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/texture/generate \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{
"parent_submission_id": "e5f6a7b8-...",
"texture_size": 1024
}'Rebake textures at a new resolution
POST /api/v1/texture/rebake
Requires API key.
Re-bake the existing texture at a different resolution. Picks the cheapest viable path
automatically: fast bake from a prior /texture/generate checkpoint when available,
otherwise the full reprocessing path.
Request Body
| Name | Type | Description |
|---|---|---|
parent_submission_id | string (required) | ID of a completed submission. |
texture_size | integer | Output texture resolution. Values: 512, 768, 1024, 2048. Default: 1024. |
project_id | string | Assign to a project. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/texture/rebake \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{
"parent_submission_id": "e5f6a7b8-...",
"texture_size": 2048
}'Fetch reference image
GET /api/v1/detailer/reference/{submission_id}
Public.
Returns the user-provided or auto-generated reference image used to guide the Phase 4 pipeline. PNG.
Path Parameters
| Name | Type | Description |
|---|---|---|
submission_id | string (required) | UUID of a Phase 4 submission. |
Example Request
curl -L -o reference.png \
https://api.thrixel.com/api/v1/detailer/reference/e5f6a7b8-...