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 với 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
Đối tượng Tác vụ Tạo lại Texture để xem những
thuộc tính nào được bao gồm với đối tượng tác vụ Tạo lại Texture.
Tham số
Chỉ một trong 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 tác vụ sau đây: Xem trước Văn bản sang 3D, Tinh chỉnh Văn bản sang 3D, Ảnh sang 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. Định dạng được hỗ trợ: .glb, .gltf, .obj, .fbx, .stl.
Có hai cách để cung cấp mô hình:
URL công khai: Một URL có thể truy cập từ internet công cộng.
Data URI: Một Data URI mã hóa base64 của mô hình. Sử dụng loại MIME application/octet-stream. Ví dụ: data:application/octet-stream;base64,<dữ liệu mô hình đã mã hóa base64 của bạn>.
Chính xác một đầu vào kiểu dáng là bắt buộc: text_style_prompt, image_style_url, hoặc multiview_image_urls. multiview_image_urls không thể được kết hợp với bất kỳ một trong hai cái khác; 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ả kiểu dáng texture mong muốn của đối tượng bằng văn bản. Tối đa 600 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 quy trình tạo texture. Hiện tại chúng tôi hỗ trợ định dạng .jpg, .jpeg, và .png.
Có hai cách để cung cấp hình ảnh:
URL công khai: Một URL có thể truy cập từ internet công cộng
Data URI: Một Data URI mã hóa base64 của hình ảnh. Ví dụ về Data URI: data:image/jpeg;base64,<dữ liệu hình ảnh đã mã hóa base64 của bạn>
Tạo lại texture từ hình ảnh có thể không hoạt động tối ưu nếu có sự khác biệt hình học đáng kể giữa asset gốc và hình ảnh được tải lên.
Name
multiview_image_urls
Type
string[]
Bắt buộc
Description
Cung cấp 1 đến 4 hình ảnh hiển thị cùng đố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 (phía 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 tương tự như image_style_url (một URL công khai hay một Data URI base64, .jpg/.jpeg/.png).
Yêu cầu ai_model: "meshy-7" (hoặc latest).
Name
ai_model
Type
string
mặc định latest
Description
ID của mô hình AI sẽ sử dụng để tạo lại texture. Các giá trị có sẵn: meshy-5, meshy-6, meshy-7, latest (Meshy 7).
Name
enable_original_uv
Type
boolean
mặc định false
Description
Giữ bố cục UV hiện có của mô hình thay vì tạo mới.
Nếu bạn đang tạo lại texture cho một mô hình mà Meshy đã tạo (qua input_task_id, hoặc một model_url chỉ đến sản phẩm đầu ra của Meshy), thiết lập thành true để tái sử dụng bố cục UV đã 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, thiết lập true khi nó đã có UV tốt mà bạn muốn giữ, hoặc để false để Meshy mở lại UV mới (tốt nhất cho các mô hình thiếu ánh xạ UV đúng cách).
Name
enable_pbr
Type
boolean
mặc định false
Description
Tạo bản đồ PBR (kim loại, độ thô, bản đồ normal) ngoài màu sắc cơ bản. Bản đồ phát sáng cũng được bao gồm khi ai_model là meshy-6, trừ khi ở texture_resolution: 8k. meshy-7 và latest không tạo ra bản đồ phát sáng.
Name
texture_resolution
Type
string
mặc định 2k
Description
Độ phân giải texture màu sắc cơ bản. Một trong số 2k (2048×2048), 4k (4096×4096), hoặc 8k (8192×8192). Độ phân giải cao hơn sẽ nắm bắt chi tiết bề mặt nhiều 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 sáng được sản xuất.
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 thiết lập, texture_resolution có quyền ư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 từ texture màu sắc cơ bản, tạo ra một kết quả sạch hơn và hoạt động tốt hơn dưới các cài đặt ánh sáng tùy chỉnh.
Chỉ hỗ trợ khi ai_model là meshy-6.
Name
target_formats
Type
string[]
Description
Xác định định dạng tệp 3D nào sẽ bao gồm trong đầu ra. Chỉ những định dạng được yêu cầu mới được tạo và trả về, điều này có thể giảm thời gian hoàn thành tác vụ. Khi bỏ qua, tất cả định dạng được hỗ trợ sẽ được bao gồm.
Các giá trị có sẵn: glb, obj, fbx, stl, usdz, 3mf
Khi bỏ qua, tất cả định dạng trừ 3mf sẽ được tạo. 3mf chỉ được bao gồm khi được chỉ định rõ ràng.
Name
alpha_thumbnail
Type
boolean
mặc định false
Description
Khi thiết lập thành true, tác vụ sẽ thêm vào một phiên bản bản xem trước nền trong suốt (RGBA) và trả về nó dưới dạng alpha_thumbnail_url trong phản hồi GET. Trường thumbnail_url hiện tại không thay đổi.
Trả về
Thuộc tính result của phản hồi chứa id của tác vụ mới được tạo.
Chế độ thất bại
Name
400 - Bad Request
Description
Yêu cầu không chấp nhận được. Nguyên nhân thường gặp:
Thiếu tham số: Phải cung cấp hoặc model_url hoặc input_task_id.
Thiếu kiểu dáng: Phải cung cấp một trong text_style_prompt, image_style_url hoặc multiview_image_urls.
Đầu vào kiểu dáng mâu thuẫn: multiview_image_urls không thể được 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 ai_model: "meshy-7" (hoặc latest).
Mô hình không có sẵn: 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ụ nhập không hợp lệ: input_task_id phải chỉ đến một tác vụ thành công từ mô hình hỗ trợ.
Định dạng mô hình không hợp lệ: model_url chỉ đến một tệp với phần mở rộng không được hỗ trợ.
URL không thể truy cập: model_url, image_style_url hoặc một phần tử multiview_image_urls không thể tải về.
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.
Yêu cầu
POST
/openapi/v1/retexture
# Tạo texture với văn bản gợi ýcurlhttps://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 }'# Tạo texture với kiểu dáng hình ảnh và 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 lấy 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 những
thuộc tính nào được bao gồm với đối tượng tác vụ Tạo lại Texture.
Tham số
Name
id
Type
path
Description
Định danh duy nhất cho tác vụ Tạo lại Texture để lấy.
{"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 }]
// Ví dụ sự kiện lỗievent: errordata: {"status_code": 404,"message": "Task not found"}// Các ví dụ sự kiện tin nhắn minh họa cho tiến độ tác vụ.// Đối với các tác vụ PENDING hoặc IN_PROGRESS, dòng phản hồi sẽ không bao gồm tất cả các trường.event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","progress": 0,"status": "PENDING"}event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","progress": 50,"status": "IN_PROGRESS"}event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","type": "retexture","progress": 100,"status": "SUCCEEDED","created_at": 1692771650657,"started_at": 1692771667037,"finished_at": 1692771669037,"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=***" },"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 Tác vụ Tạo lại Texture là một đơn vị công việc mà Meshy sử dụng để tạo 3D texture từ các đầu vào văn bản hoặc hình ảnh.
Mô hình 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 sắp xếp k-sort cho ID tác vụ là chi tiết triển khai, bạn nên không đưa ra bất kỳ giả định nào về định dạng của id.
Name
type
Type
string
Description
Loại tác vụ Tạo lại Texture. Giá trị là retexture.
Name
model_urls
Type
object
Description
URL tải về tệp mô hình 3D có texture được tạo bởi Meshy.
Name
glb
Type
string
Description
URL tải về tệp GLB.
Name
fbx
Type
string
Description
URL tải về tệp FBX.
Name
obj
Type
string
Description
URL tải về tệp OBJ.
Name
usdz
Type
string
Description
URL tải về tệp USDZ.
Name
mtl
Type
string
Description
URL tải về tệp MTL, trả về cùng xuất OBJ khi các texture có mặt.
Name
stl
Type
string
Description
URL tải về tệp STL.
Name
3mf
Type
string
Description
URL tải về tệp 3MF. Chỉ có mặt khi 3mf được yêu cầu qua target_formats.
Name
text_style_prompt
Type
string
Description
Đây là văn bản gợi ý được sử dụng để tạo tác vụ tạo texture.
Name
image_style_url
Type
string
Description
Đây là đầu vào hình ảnh được sử dụng để tạo tác vụ tạo texture.
Name
multiview_image_urls
Type
string[]
Description
URLs tải về 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ỉ có mặt khi tác vụ được tạo với multiview_image_urls.
Name
thumbnail_url
Type
string
Description
URL tải về hình ảnh thu nhỏ của tệp mô hình.
Name
alpha_thumbnail_url
Type
string
Description
URL tải về một phiên bản nền trong suốt (RGBA) của thumbnail_url. Chỉ có mặt khi tác vụ được tạo với alpha_thumbnail: true và bản xem trước trong suốt được tạo thành công; nếu không, trường này sẽ bị lược bỏ.
Name
progress
Type
integer
Description
Tiến độ 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, nó sẽ trở thành 100.
Name
started_at
Type
timestamp
Description
Dấu thời gian của khi tác vụ được bắt đầu, tính bằng mili giây. Nếu tác vụ chưa 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 12:00:00 PM 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 của 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 của 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 của khi tác vụ kết thúc, tính bằng mili giây. Nếu tác vụ chưa kết thúc, 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 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, 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 tải về hình ảnh bản đồ màu cơ bản.
Name
metallic
Type
string
Description
URL tải về 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ị lược bỏ.
Name
normal
Type
string
Description
URL tải về 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ị lược bỏ.
Name
roughness
Type
string
Description
URL tải về hình ảnh bản đồ độ thô.
Nếu tác vụ được tạo với enable_pbr: false, thuộc tính này sẽ bị lược bỏ.
Name
emission
Type
string
Description
URL tải về hình ảnh bản đồ phát sáng.
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ị lược bỏ.
Name
preceding_tasks
Type
integer
Description
Số lượng tác vụ trước đó.
Thuộc tính này chỉ có mặt 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. Tham khảo Lỗi để biết thông tin đầy đủ về đối tượng task_error.
Name
consumed_credits
Type
integer
Description
Số tín dụng đã dùng bởi tác vụ này. Có mặt khi trạng thái tác vụ là PENDING, IN_PROGRESS, hoặc SUCCEEDED. Trả về 0 cho các tác vụ FAILED (tín dụng sẽ được hoàn lại khi thất bại).
Mô Hình Tác vụ Tạo lại Texture Ví dụ
{"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}