Markdown · OpenAPI

Retexture API

New PBR textures on a model you have, from a reference picture of the look. Given words instead of a picture, a picture model paints the reference first (image_model, its price added). Keeps the shape.

Tool id retexture on the REST API (POST https://3dvalley.com/api/v1/jobs); MCP tool edit_model on https://3dvalley.com/mcp. Paid in credits (1 credit = $0.01), taken when the job starts and given back if it fails. The general rules (keys, idempotency, waiting, webhooks) are in the API docs.

Models and prices

ModelNamePriceTimeWhat it is
trellis-2-texture (default)TRELLIS.2 Standard5 creditsabout 30 sBase colour, roughness and metallic painted onto your mesh from one reference picture. Keeps your UVs, size and position.
trellis-2-texture-proTRELLIS.2 Pro10 creditsabout 70 sThe same texturing at its highest settings: painted on a finer grid and baked into 4K textures.
tripo-textureTripo Standard20 creditsabout 60 sTripo's texturing model: crisp, consistent PBR materials all the way round, from one reference picture or your words.
tripo-texture-detailedTripo Detailed40 creditsabout 120 sTripo's texturing model at its detailed setting: finer surface detail in the textures, for a longer wait.
meshy-textureMeshy 750 creditsabout 690 sMeshy's texturing model: PBR materials from a picture or straight from your words, on your own UVs.

Input

FieldRequired
meshyesA mesh (GLB, glTF, OBJ, PLY or STL) as an https URL, an upload id (upl_...), a library id (ph:wooden_barrel_01) or an earlier job (job_... or its asset id 3dv:...).
imagenoThe look to paint on. A picture (PNG, JPEG or WebP) as an https URL, a data: URI, an upload id (upl_...) or an earlier job's picture (job_...).
promptnoThe look in words, when there is no picture: "weathered bronze with green patina".

Options

OptionTypeValues
seedintegerfrom 0 to 2147483647Fixes the randomness, so the same input makes the same result.
image_modelstringflux-2-klein, muse-image, gpt-image-2-5Paints the reference picture when only a prompt is given. Default flux-2-klein.

Output

Files: glb.

Example

curl -X POST https://3dvalley.com/api/v1/jobs \
  -H "Authorization: Bearer $THREEDVALLEY_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Prefer: wait=50" \
  -H "Content-Type: application/json" \
  -d '{"tool":"retexture","input":{"mesh":"ph:wooden_barrel_01","prompt":"weathered bronze with green patina"}}'

From an MCP client:

edit_model({"operation":"retexture","mesh":"ph:wooden_barrel_01","prompt":"weathered bronze with green patina"})

Limits

  • max_image_bytes: 10,485,760
  • max_mesh_bytes: 62,914,560