Retexture API là một tính năng cho phép bạn tích hợp khả năng tạo lại texture bằng AI của Meshy vào ứng dụng của riêng bạn. Trong phần này, bạn sẽ tìm thấy tất cả thông tin
cần thiết để bắt đầu sử dụng API này.
Endpoint này cho phép bạn tạo một tác vụ Tạo lại texture mới. Tham khảo
The Retexture Task Object để xem những
thuộc tính nào được bao gồm trong đối tượng tác vụ Tạo lại texture.
Tham số
Chỉ một trong hai giá trị input_task_id hoặc model_url là bắt buộc. Nếu cả hai đều được cung cấp, input_task_id sẽ được ưu tiên.
Name
input_task_id
Type
string
Bắt buộc
Description
ID của tác vụ Ảnh sang 3D hoặc Văn bản sang 3D đã hoàn thành mà bạn muốn tạo lại texture.
Tác vụ này phải là một trong các loại tác vụ sau: Text to 3D Preview, Text to 3D Refine, Image to 3D hoặc Remesh. Ngoài ra, nó phải có trạng thái là SUCCEEDED.
Name
model_url
Type
string
Bắt buộc
Description
Cung cấp một mô hình 3D để Meshy tạo texture. Các định dạng được hỗ trợ: .glb, .gltf, .obj, .fbx, .stl.
Có hai cách để cung cấp mô hình:
URL truy cập công khai: Một URL có thể truy cập được từ internet công cộng.
Data URI: Một data URI được mã hóa base64 của mô hình. Sử dụng MIME type application/octet-stream. Ví dụ: data:application/octet-stream;base64,<dữ liệu mô hình được mã hóa base64 của bạn>.
Cần cung cấp chính xác một đầu vào kiểu dáng: text_style_prompt, image_style_url, hoặc multiview_image_urls. multiview_image_urls không thể kết hợp với bất kỳ đầu vào nào trong hai đầu vào còn lại; nếu cả text_style_prompt và image_style_url đều được cung cấp, image_style_url sẽ được ưu tiên.
Name
text_style_prompt
Type
string
Bắt buộc
Description
Mô tả phong cách texture mong muốn của đối tượng bằng văn bản. Tối đa 800 ký tự.
Name
image_style_url
Type
string
Bắt buộc
Description
Cung cấp một hình ảnh 2D để định hướng quá trình tạo texture. Hiện tại chúng tôi hỗ trợ các định dạng .jpg, .jpeg, và .png.
Có hai cách để cung cấp hình ảnh:
URL truy cập công khai: Một URL có thể truy cập được từ internet công cộng
Data URI: Một data URI được mã hóa base64 của hình ảnh. Ví dụ về data URI: data:image/jpeg;base64,<dữ liệu hình ảnh được mã hóa base64 của bạn>
Việc tạo texture từ hình ảnh có thể không hoạt động tối ưu nếu có sự khác biệt đáng kể về hình học giữa asset gốc và hình ảnh đã tải lên.
Name
multiview_image_urls
Type
string[]
Bắt buộc
Description
Cung cấp từ 1 đến 4 hình ảnh thể hiện cùng một đối tượng từ các góc nhìn khác nhau để định hướng việc tạo texture. Hình ảnh đầu tiên là góc nhìn chính (mặt trước); thứ tự của các góc nhìn còn lại (trái, sau, phải) không quan trọng.
Mỗi phần tử chấp nhận các định dạng giống như image_style_url (một URL truy cập công khai hoặc một data URI base64, .jpg/.jpeg/.png).
Yêu cầu chỉ định rõ ai_model: "meshy-7".
Name
ai_model
Type
string
mặc định latest
Description
ID của mô hình AI được sử dụng để tạo lại texture. Các giá trị khả dụng: meshy-5, meshy-6, meshy-7, latest (Meshy 7).
Name
enable_original_uv
Type
boolean
mặc định false
Description
Giữ nguyên bố cục UV hiện có của mô hình thay vì tạo một bố cục mới.
Nếu bạn đang tạo lại texture cho một mô hình do Meshy tạo ra (thông qua input_task_id, hoặc model_url trỏ đến đầu ra của Meshy), hãy đặt giá trị này là true để tái sử dụng bố cục UV đã được tối ưu hóa của nó.
Nếu bạn đang tạo lại texture cho một mô hình bên thứ ba mà bạn đã tải lên, hãy đặt true khi mô hình đã có UV tốt mà bạn muốn giữ lại, hoặc để false để Meshy trải UV mới (tốt nhất cho các mô hình thiếu ánh xạ UV phù hợp).
Name
enable_pbr
Type
boolean
mặc định false
Description
Tạo bản đồ PBR (metallic, roughness, normal) ngoài màu cơ bản. Bản đồ phát xạ (emission map) cũng được bao gồm khi ai_model là meshy-6, ngoại trừ ở texture_resolution: 8k. meshy-7 và latest không tạo ra bản đồ phát xạ.
Name
texture_resolution
Type
string
mặc định 2k
Description
Độ phân giải texture màu cơ bản. Một trong các giá trị 2k (2048×2048), 4k (4096×4096), hoặc 8k (8192×8192). Độ phân giải cao hơn nắm bắt được nhiều chi tiết bề mặt hơn.
4k và 8k yêu cầu ai_model là meshy-6, meshy-7 hoặc latest. Ở 8k, không có bản đồ phát xạ nào được tạo ra.
Name
hd_texture
Type
boolean
⚠ không dùng nữa
mặc định false
Description
Sử dụng texture_resolution thay thế — tương đương với texture_resolution: "4k". Khi cả hai được thiết lập, texture_resolution sẽ được ưu tiên.
Name
remove_lighting
Type
boolean
mặc định true
Description
Loại bỏ các điểm sáng và bóng đổ khỏi texture màu cơ bản, tạo ra kết quả sạch hơn, hoạt động tốt hơn dưới các thiết lập ánh sáng tùy chỉnh.
Chỉ được hỗ trợ khi ai_model là meshy-6.
Name
target_formats
Type
string[]
Description
Chỉ định các định dạng tệp 3D nào sẽ được bao gồm trong đầu ra. Chỉ những định dạng được yêu cầu mới được tạo ra và trả về, điều này có thể giảm thời gian hoàn thành tác vụ. Khi bỏ trống, tất cả các định dạng được hỗ trợ sẽ được bao gồm.
Các giá trị khả dụng: glb, obj, fbx, stl, usdz, 3mf
Khi bỏ trống, tất cả các định dạng ngoại trừ 3mf sẽ được tạo ra. 3mf chỉ được bao gồm khi được chỉ định rõ ràng.
Name
alpha_thumbnail
Type
boolean
mặc định false
Description
Khi được đặt là true, tác vụ sẽ tạo thêm một phiên bản nền trong suốt (RGBA) của bản xem trước và trả về dưới dạng alpha_thumbnail_url trong phản hồi GET. Trường thumbnail_url hiện có không thay đổi.
Kết quả trả về
Thuộc tính result của phản hồi chứa id tác vụ của tác vụ Tạo lại texture vừa được tạo.
Các chế độ lỗi
Name
400 - Bad Request
Description
Yêu cầu không được chấp nhận. Các nguyên nhân phổ biến:
Thiếu tham số: Phải cung cấp model_url hoặc input_task_id.
Thiếu kiểu dáng: Phải cung cấp một trong các giá trị text_style_prompt, image_style_url hoặc multiview_image_urls.
Đầu vào kiểu dáng xung đột: multiview_image_urls không thể kết hợp với text_style_prompt hoặc image_style_url.
Mô hình không được hỗ trợ cho đa góc nhìn: multiview_image_urls yêu cầu chỉ định rõ ai_model: "meshy-7".
Mô hình chưa khả dụng: ai_model: "meshy-7" đang được triển khai dần dần và chưa được kích hoạt cho tài khoản của bạn.
Tác vụ đầu vào không hợp lệ: input_task_id phải tham chiếu đến một tác vụ thành công từ một mô hình được hỗ trợ.
Định dạng mô hình không hợp lệ: model_url trỏ đến một tệp có phần mở rộng không được hỗ trợ.
URL không thể truy cập: Không thể tải xuống model_url, image_style_url hoặc một phần tử trong multiview_image_urls.
Name
401 - Unauthorized
Description
Xác thực thất bại. Vui lòng kiểm tra khóa API của bạn.
Name
402 - Payment Required
Description
Không đủ tín dụng để thực hiện tác vụ này.
Name
429 - Too Many Requests
Description
Bạn đã vượt quá giới hạn tốc độ.
Request
POST
/openapi/v1/retexture
# Retexture with text promptcurlhttps://api.meshy.ai/openapi/v1/retexture \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "model_url": "https://cdn.meshy.ai/model/example_model_2.glb", "text_style_prompt": "red fangs, Samurai outfit that fused with japanese batik style", "enable_original_uv": true, "enable_pbr": true }'# Retexture with image style and PBRcurlhttps://api.meshy.ai/openapi/v1/retexture \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "model_url": "https://cdn.meshy.ai/model/example_model_2.glb", "image_style_url": "https://cdn.meshy.ai/image/example_image.jpg", "ai_model": "latest", "enable_pbr": true, "enable_original_uv": true }'
Endpoint này cho phép bạn truy xuất một tác vụ Tạo lại texture với một id tác vụ hợp lệ.
Tham khảo Đối tượng tác vụ Tạo lại texture để xem các
thuộc tính có trong đối tượng tác vụ Tạo lại texture.
Tham số
Name
id
Type
path
Description
Định danh duy nhất của tác vụ Tạo lại texture cần truy xuất.
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***","fbx":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***","obj":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***","mtl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***","stl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***" },"thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","texture_image_url":"","progress":100,"started_at":1692771667037,"created_at":1692771650657,"expires_at":1692771679037,"finished_at":1692771669037,"status":"SUCCEEDED","texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" } ],"task_error": {"message":"" },"consumed_credits":10}
[ {"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***","fbx":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***" },"thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","progress":100,"started_at":1692771667037,"created_at":1692771650657,"expires_at":1692771679037,"finished_at":1692771669037,"status":"SUCCEEDED","texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" } ],"preceding_tasks":0,"task_error": {"message":"" },"consumed_credits":10 }]
Đối tượng Retexture Task là một đơn vị công việc mà Meshy sử dụng để tạo texture 3D từ đầu vào là văn bản hoặc hình ảnh.
Model có các thuộc tính sau:
Thuộc tính
Name
id
Type
string
Description
Định danh duy nhất cho tác vụ. Mặc dù chúng tôi sử dụng UUID có thể sắp xếp theo k (k-sortable UUID) làm chi tiết triển khai cho id của tác vụ, bạn không nên đưa ra bất kỳ giả định nào về định dạng của id.
Name
type
Type
string
Description
Loại của tác vụ Retexture. Giá trị là retexture.
Name
model_urls
Type
object
Description
URL có thể tải xuống của tệp model 3D đã được tạo texture do Meshy tạo ra.
Name
glb
Type
string
Description
URL có thể tải xuống của tệp GLB.
Name
fbx
Type
string
Description
URL có thể tải xuống của tệp FBX.
Name
obj
Type
string
Description
URL có thể tải xuống của tệp OBJ.
Name
usdz
Type
string
Description
URL có thể tải xuống của tệp USDZ.
Name
mtl
Type
string
Description
URL có thể tải xuống của tệp MTL, được trả về cùng với các tệp xuất OBJ khi có texture.
Name
stl
Type
string
Description
URL có thể tải xuống của tệp STL.
Name
3mf
Type
string
Description
URL có thể tải xuống của tệp 3MF. Chỉ xuất hiện khi 3mf được yêu cầu thông qua target_formats.
Name
text_style_prompt
Type
string
Description
Đây là prompt văn bản đã được sử dụng để tạo tác vụ tạo texture.
Name
image_style_url
Type
string
Description
Đây là hình ảnh đầu vào đã được sử dụng để tạo tác vụ tạo texture.
Name
multiview_image_urls
Type
string[]
Description
URL có thể tải xuống của các hình ảnh tham chiếu đa góc nhìn đã được sử dụng để tạo tác vụ tạo texture. Chỉ xuất hiện khi tác vụ được tạo với multiview_image_urls.
Name
thumbnail_url
Type
string
Description
URL có thể tải xuống của ảnh thu nhỏ của tệp model.
Name
alpha_thumbnail_url
Type
string
Description
URL có thể tải xuống của phiên bản nền trong suốt (RGBA) của thumbnail_url. Chỉ xuất hiện khi tác vụ được tạo với alpha_thumbnail: true và bản xem trước trong suốt được kết xuất thành công; nếu không, trường này sẽ bị bỏ qua.
Name
progress
Type
integer
Description
Progress của tác vụ. Nếu tác vụ chưa được bắt đầu, thuộc tính này sẽ là 0. Khi tác vụ đã thành công, giá trị này sẽ trở thành 100.
Name
started_at
Type
timestamp
Description
Dấu thời gian khi tác vụ được bắt đầu, tính bằng mili giây. Nếu tác vụ chưa được bắt đầu, thuộc tính này sẽ là 0.
Một dấu thời gian đại diện cho số mili giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 UTC, theo
tiêu chuẩn RFC 3339.
Ví dụ, thứ Sáu, ngày 1 tháng 9 năm 2023 lúc 12:00:00 chiều GMT được biểu diễn là 1693569600000. Điều này áp dụng
cho tất cả các dấu thời gian trong Meshy API.
Name
created_at
Type
timestamp
Description
Dấu thời gian khi tác vụ được tạo, tính bằng mili giây.
Name
expires_at
Type
timestamp
Description
Dấu thời gian khi kết quả tác vụ hết hạn, tính bằng mili giây.
Name
finished_at
Type
timestamp
Description
Dấu thời gian khi tác vụ hoàn thành, tính bằng mili giây. Nếu tác vụ chưa hoàn thành, thuộc tính này sẽ là 0.
Name
status
Type
string
Description
Trạng thái của tác vụ. Các giá trị có thể là một trong số PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
texture_urls
Type
array
Description
Một mảng các đối tượng URL texture được tạo ra từ tác vụ. Thông thường mảng này chỉ chứa một đối tượng URL texture. Mỗi URL texture có các thuộc tính sau:
Name
base_color
Type
string
Description
URL có thể tải xuống của hình ảnh bản đồ màu cơ bản.
Name
metallic
Type
string
Description
URL có thể tải xuống của hình ảnh bản đồ kim loại.
Nếu tác vụ được tạo với enable_pbr: false, thuộc tính này sẽ bị bỏ qua.
Name
normal
Type
string
Description
URL có thể tải xuống của hình ảnh bản đồ normal.
Nếu tác vụ được tạo với enable_pbr: false, thuộc tính này sẽ bị bỏ qua.
Name
roughness
Type
string
Description
URL có thể tải xuống của hình ảnh bản đồ độ nhám.
Nếu tác vụ được tạo với enable_pbr: false, thuộc tính này sẽ bị bỏ qua.
Name
emission
Type
string
Description
URL có thể tải xuống của hình ảnh bản đồ phát xạ.
Nếu tác vụ được tạo với enable_pbr: false, hoặc ai_model là meshy-5, thuộc tính này sẽ bị bỏ qua.
Name
preceding_tasks
Type
integer
Description
Số lượng tác vụ đứng trước.
Thuộc tính này chỉ xuất hiện khi trạng thái tác vụ là PENDING.
Name
task_error
Type
object
Description
Chi tiết lỗi cho các tác vụ thất bại. Xem Lỗi để biết tham chiếu đầy đủ về đối tượng task_error.
Name
consumed_credits
Type
integer
Description
Số lượng tín dụng đã tiêu thụ bởi tác vụ này. Xuất hiện khi trạng thái tác vụ là PENDING, IN_PROGRESS, hoặc SUCCEEDED. Trả về 0 đối với các tác vụ FAILED (tín dụng được hoàn lại khi thất bại).
Example Retexture Task Model
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***","fbx":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***" },"text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","image_style_url":"https://assets.meshy.ai/***/image/example_image.jpg?Expires=***","thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","progress":100,"started_at":1692771667037,"created_at":1692771650657,"expires_at":1692771679037,"finished_at":1692771669037,"status":"SUCCEEDED","texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" } ],"preceding_tasks":0,"task_error": {"message":"" },"consumed_credits":10}