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 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 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,<your base64-encoded model data>.
Chính xác một đầu vào phong cách là bắt buộc: text_style_prompt, image_style_url, hoặc multiview_image_urls. multiview_image_urls không thể kết hợp với một trong hai cái 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 để hướng dẫn quá trình tạo texture. Chúng tôi hiện 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,<your base64-encoded image data>
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 1 đến 4 hình ảnh cho thấy cùng một đối tượng từ các góc nhìn khác nhau để hướng dẫn 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ùng định dạng như image_style_url (một URL truy cập công khai hoặc data URI base64, .jpg/.jpeg/.png).
Yêu cầu phải 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-6-lite, meshy-6, meshy-7, latest (Meshy 7).
Name
enable_original_uv
Type
boolean
mặc định false
Description
Giữ lại 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 mà Meshy đã tạo (thông qua input_task_id, hoặc một model_url trỏ đến đầu ra của Meshy), hãy đặt giá trị này thành 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 của 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 tự bung UV mới (tốt nhất cho các mô hình thiếu bố cục 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 (base color). Một bản đồ phát xạ (emission map) cũng được bao gồm khi ai_model là meshy-6, ngoại trừ khi texture_resolution: 8k. meshy-6-lite, 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 sẽ 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. Ở mức 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 đều được đặt, 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 cần đưa vào kết quả đầ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 thành 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 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 phong cách: 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 phong cách 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 phải chỉ định rõ ai_model: "meshy-7".
Mô hình chưa khả dụng: ai_model: "meshy-7" và ai_model: "meshy-6-lite" đang được triển khai dần dần và có thể 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 độ của mình.
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 id tác vụ hợp lệ.
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ố
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}
Endpoint này xóa vĩnh viễn một tác vụ Tạo lại texture, bao gồm tất cả các model và dữ liệu liên quan. Hành động này không thể hoàn tác.
Tham số đường dẫn
Name
id
Type
path
Description
ID của tác vụ Tạo lại texture cần xóa.
Trạng thái tác vụ
Một tác vụ vẫn đang ở trạng thái PENDING sẽ bị xóa và số tín dụng đã bị
tiêu tốn tại thời điểm tạo sẽ được hoàn lại.
Một tác vụ đã ở trạng thái IN_PROGRESS không thể bị xóa: yêu cầu sẽ bị
từ chối với mã 409 Conflict và tác vụ vẫn tiếp tục chạy. Tín dụng cho một
tác vụ mà worker đã bắt đầu xử lý sẽ không được hoàn lại, vì vậy việc xóa
nó giữa chừng sẽ khiến bạn mất cả tín dụng lẫn kết quả. Hãy đợi cho đến khi
nó đạt trạng thái SUCCEEDED, FAILED hoặc CANCELED, sau đó mới xóa nó.
Một tác vụ ở trạng thái cuối cùng (SUCCEEDED, FAILED hoặc CANCELED)
sẽ bị xóa mà không được hoàn tín dụng.
Kết quả trả về
Trả về 200 OK khi thành công, hoặc 409 Conflict khi tác vụ đang ở
trạng thái IN_PROGRESS.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS — the task is left running:{"message":"Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."}
[ {"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 }]
Retexture Task object 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 này có các thuộc tính sau:
Thuộc tính
Name
id
Type
string
Description
Định danh duy nhất cho task. Mặc dù chúng tôi sử dụng UUID có thể sắp xếp theo k (k-sortable) làm chi tiết triển khai cho id của task, 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 Retexture task. Giá trị là retexture.
Name
model_urls
Type
object
Description
URL có thể tải xuống trỏ tới 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 trỏ tới tệp GLB.
Name
fbx
Type
string
Description
URL có thể tải xuống trỏ tới tệp FBX.
Name
obj
Type
string
Description
URL có thể tải xuống trỏ tới tệp OBJ.
Name
usdz
Type
string
Description
URL có thể tải xuống trỏ tới tệp USDZ.
Name
mtl
Type
string
Description
URL có thể tải xuống trỏ tới tệp MTL, được trả về cùng với các bản xuất OBJ khi có texture.
Name
stl
Type
string
Description
URL có thể tải xuống trỏ tới tệp STL.
Name
3mf
Type
string
Description
URL có thể tải xuống trỏ tới 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 task tạo texture này.
Name
image_style_url
Type
string
Description
Đây là hình ảnh đầu vào đã được sử dụng để tạo task tạo texture này.
Name
multiview_image_urls
Type
string[]
Description
URL có thể tải xuống trỏ tới các hình ảnh tham chiếu đa góc nhìn đã được sử dụng để tạo task tạo texture này. Chỉ xuất hiện khi task được tạo với multiview_image_urls.
Name
thumbnail_url
Type
string
Description
URL có thể tải xuống trỏ tới ảnh thu nhỏ của tệp model.
Name
alpha_thumbnail_url
Type
string
Description
URL có thể tải xuống trỏ tới phiên bản nền trong suốt (RGBA) của thumbnail_url. Chỉ xuất hiện khi task được tạo với alpha_thumbnail: true và bản xem trước trong suốt đã được kết xuất (render) thành công; nếu không, trường này sẽ bị bỏ qua.
Name
progress
Type
integer
Description
Tiến trình của task. Nếu task chưa bắt đầu, thuộc tính này sẽ là 0. Khi task đã thành công, giá trị này sẽ trở thành 100.
Name
started_at
Type
timestamp
Description
Dấu thời gian cho biết thời điểm task bắt đầu, tính bằng mili giây. Nếu task chưa bắt đầu, thuộc tính này sẽ là 0.
Một dấu thời gian biểu thị số mili giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 UTC, tuân 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 CH GMT được biểu thị 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 cho biết thời điểm task được tạo, tính bằng mili giây.
Name
expires_at
Type
timestamp
Description
Dấu thời gian cho biết thời điểm kết quả task hết hạn, tính bằng mili giây.
Name
finished_at
Type
timestamp
Description
Dấu thời gian cho biết thời điểm task hoàn thành, tính bằng mili giây. Nếu task 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 task. Các giá trị có thể là một trong các giá trị 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ừ task. 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 trỏ tới hình ảnh bản đồ màu cơ bản (base color).
Name
metallic
Type
string
Description
URL có thể tải xuống trỏ tới hình ảnh bản đồ metallic.
Nếu task đượ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 trỏ tới hình ảnh bản đồ normal.
Nếu task đượ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 trỏ tới hình ảnh bản đồ độ nhám (roughness).
Nếu task đượ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 trỏ tới hình ảnh bản đồ phát xạ (emission).
Nếu task được tạo với enable_pbr: false, hoặc ai_model là meshy-6-lite, thuộc tính này sẽ bị bỏ qua.
Name
preceding_tasks
Type
integer
Description
Số lượng các task đang xếp trước.
Thuộc tính này chỉ xuất hiện khi trạng thái của task là PENDING.
Name
task_error
Type
object
Description
Chi tiết lỗi cho các task 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 task này. Xuất hiện khi trạng thái task là PENDING, IN_PROGRESS, hoặc SUCCEEDED. Trả về 0 đối với các task FAILED (tín dụng sẽ đượ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}