Meshy V6 Lite Retexture API Documentation

Meshy V6 Lite Retexture API Documentation

Playground

Try it on WaveSpeedAI!

Meshy 6 Lite Retexture applies new materials and textures to existing 3D models using a text prompt or reference image, with optional PBR maps for game assets, product visualization, 3D design, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Meshy 6 Lite Retexture applies new textures and materials to an existing 3D model using either a text description or a reference image. Keep the original geometry while changing the surface appearance, colors, materials, and finish, then export the result as a textured GLB model.

It is designed for creating material variations, refreshing existing assets, product visualization, game assets, and other workflows where you want a new look without regenerating the underlying 3D geometry.


Why Choose This?

  • Retexture existing 3D models
    Change the appearance of an existing asset without generating a new object.

  • Text-guided materials
    Describe the colors, materials, finish, wear, and surface style you want.

  • Image-guided texturing
    Use a reference image to guide the new texture appearance.

  • UV control
    Preserve the model’s existing UV mapping or generate new UVs when needed.

  • Optional PBR materials
    Generate metallic, roughness, and normal maps in addition to the base color texture.

  • Multiple 3D input formats
    Supports GLB, GLTF, OBJ, FBX, and STL models.


Parameters

ParameterRequiredDescription
modelYes3D model to retexture. Supports GLB, GLTF, OBJ, FBX, and STL.
promptConditionalText description of the desired materials and textures. Supports up to 600 characters. Required when texture_image is not provided.
texture_imageConditionalReference image used to guide texture appearance. Supports JPG, JPEG, and PNG. Required when prompt is not provided. If both are supplied, texture_image takes priority.
enable_original_uvNoPreserve the model’s existing UV mapping. Default: true. Disable it when new UV mapping should be generated.
enable_pbrNoGenerate metallic, roughness, and normal maps in addition to the base color texture. Default: false.

At least one of prompt or texture_image must be provided.


How to Use

  1. Upload the 3D model — Provide the existing asset you want to retexture.
  2. Choose texture guidance — Enter a material description or provide a reference image.
  3. Configure UV handling optional — Keep enable_original_uv=true when the existing UV mapping is suitable, or disable it to generate new UVs.
  4. Enable PBR optional — Turn on enable_pbr when additional material maps are needed.
  5. Submit — Generate and retrieve the retextured GLB model.

Pricing

Pricing is fixed at $0.36 per retextured model.

OutputCost
One retextured model$0.36

PBR maps are included at no additional charge.


Best Use Cases

  • Game assets — Create new material and color variations for existing meshes.
  • Product visualization — Explore finishes such as metal, wood, leather, ceramic, plastic, or fabric.
  • Asset variation — Produce multiple visual versions of the same 3D geometry.
  • Material prototyping — Test surface treatments without remodeling the asset.
  • E-commerce 3D — Create product colorways or material variants from an existing model.
  • Creative iteration — Compare different texture concepts on the same 3D asset.

Pro Tips

  • Describe surface materials, colors, finish, wear, and texture characteristics clearly in prompt.
  • Use a clean reference image with a clear material or surface style when using texture_image.
  • Keep enable_original_uv=true when the source model already has suitable UV mapping.
  • Disable enable_original_uv when the existing UVs are missing or unsuitable.
  • Enable enable_pbr when the model will be used in lighting-sensitive rendering, game-engine, or product-visualization workflows.
  • When both prompt and texture_image are supplied, remember that the reference image takes priority.

Notes

  • model is required.
  • At least one of prompt or texture_image must be provided.
  • prompt supports up to 600 characters.
  • texture_image supports JPG, JPEG, and PNG.
  • texture_image takes priority when both texture guidance methods are supplied.
  • enable_original_uv defaults to true.
  • enable_pbr defaults to false.
  • PBR generation does not add a separate charge.
  • The output is a textured GLB model.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "model": "example",
  "enable_original_uv": true,
  "enable_pbr": false
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/meshy/v6-lite/retexture" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
modelstringYes--3D model to retexture. Supports GLB, GLTF, OBJ, FBX, and STL.
promptstringNo-Describe the desired materials and texture style. Provide a prompt or texture_image.
texture_imagestringNo--Reference image for texture style. Takes priority when a prompt is also provided.
enable_original_uvbooleanNotrue-Keep the model's existing UV mapping. Disable when the model has no usable UVs.
enable_pbrbooleanNofalse-Generate metallic, roughness, and normal maps along with base color.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.statusstringTask status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses.
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.statusstringStatus: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.