Tạo lại texture 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 các
thuộc tính có 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 đượ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, tác vụ này phải có trạng thái 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 công khai: Một URL có thể truy cập được từ internet công khai.
Data URI: Một data URI 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 mã hóa base64 của bạn>.
Cần cung cấp chính xác một đầu vào phong cách: text_style_prompt, image_style_url, hoặc multiview_image_urls. multiview_image_urls không thể kết hợp với hai lựa chọn 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 bạn mong muốn cho đố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 công khai: Một URL có thể truy cập được từ internet công khai
Data URI: Một data URI mã hóa base64 của hình ảnh. Ví dụ về một data URI: data:image/jpeg;base64,<dữ liệu hình ảnh 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 cho thấy cùng một đối tượng từ các góc nhìn khác nhau để hướng dẫn quá trình 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 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 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ữ 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 một model_url trỏ đến đầu ra của Meshy), hãy đặt giá trị này thành true để sử dụng lại 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 triển khai UV mới (tốt nhất cho các mô hình chưa có 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) bên cạnh màu cơ bản. 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-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 ghi lại 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ạ đượ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 đặ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, phù hợp hơn vớ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 file 3D nào sẽ được bao gồm trong đầu ra. Chỉ các định dạng được yêu cầu sẽ đượ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ả cá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ả 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ẽ thêm việc render 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 chỉ định rõ ai_model: "meshy-7".
Mô hình chưa khả dụng: ai_model: "meshy-7" đang được triển khai từng bước 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 file 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 không thành công. 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 nhiệm vụ Tạo lại texture với một id nhiệm vụ hợp lệ.
Tham khảo Đối tượng Nhiệm vụ Tạo lại texture để xem
các thuộc tính nào được bao gồm trong đối tượng nhiệm vụ Tạo lại texture.
Tham số
Name
id
Type
path
Description
Định danh duy nhất cho nhiệm 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 Tạo lại Texture là một đơn vị công việc mà Meshy sử dụng để tạo ra một texture 3D từ đầu vào là 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 nhiệm vụ. Mặc dù chúng tôi sử dụng UUID có thể sắp xếp k cho id nhiệm vụ như là chi tiết triển khai, 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 nhiệm vụ Tạo lại Texture. Giá trị là retexture.
Name
model_urls
Type
object
Description
URL có thể tải xuống cho tệp mô hình 3D có texture được tạo bởi Meshy.
Name
glb
Type
string
Description
URL có thể tải xuống cho tệp GLB.
Name
fbx
Type
string
Description
URL có thể tải xuống cho tệp FBX.
Name
obj
Type
string
Description
URL có thể tải xuống cho tệp OBJ.
Name
usdz
Type
string
Description
URL có thể tải xuống cho tệp USDZ.
Name
mtl
Type
string
Description
URL có thể tải xuống cho tệp MTL, được trả về cùng với xuất OBJ khi có texture.
Name
stl
Type
string
Description
URL có thể tải xuống cho tệp STL.
Name
3mf
Type
string
Description
URL có thể tải xuống cho tệp 3MF. Chỉ có 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 nhiệm vụ texturing.
Name
image_style_url
Type
string
Description
Đây là đầu vào hình ảnh đã được sử dụng để tạo nhiệm vụ texturing.
Name
multiview_image_urls
Type
string[]
Description
Các URL có thể tải xuống cho các hình ảnh tham chiếu đa góc nhìn đã được sử dụng để tạo nhiệm vụ texturing. Chỉ có khi nhiệm vụ được tạo với multiview_image_urls.
Name
thumbnail_url
Type
string
Description
URL có thể tải xuống cho ảnh thu nhỏ của tệp mô hình.
Name
alpha_thumbnail_url
Type
string
Description
URL có thể tải xuống cho phiên bản nền trong suốt (RGBA) của thumbnail_url. Chỉ có khi nhiệm vụ được tạo với alpha_thumbnail: true và bản xem trước trong suốt đã được render thành công; nếu không, trường này sẽ bị bỏ qua.
Name
progress
Type
integer
Description
Tiến độ của nhiệm vụ. Nếu nhiệm vụ chưa bắt đầu, thuộc tính này sẽ là 0. Khi nhiệm 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 nhiệm vụ được bắt đầu, tính bằng mili giây. Nếu nhiệm 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 khi nhiệm 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ả nhiệm vụ hết hạn, tính bằng mili giây.
Name
finished_at
Type
timestamp
Description
Dấu thời gian khi nhiệm vụ được hoàn thành, tính bằng mili giây. Nếu nhiệm 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 nhiệm 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ừ nhiệm vụ. Thông thường, điều 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 cho hình ảnh bản đồ màu cơ bản.
Name
metallic
Type
string
Description
URL có thể tải xuống cho hình ảnh bản đồ kim loại.
Nếu nhiệm 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 cho hình ảnh bản đồ normal.
Nếu nhiệm 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 cho hình ảnh bản đồ độ nhám.
Nếu nhiệm 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 cho hình ảnh bản đồ phát sáng.
Nếu nhiệm 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 nhiệm vụ trước đó.
Thuộc tính này chỉ có khi trạng thái nhiệm vụ là PENDING.
Name
task_error
Type
object
Description
Chi tiết lỗi cho các nhiệm vụ thất bại. Xem Lỗi để tham khảo đầy đủ đối tượng task_error.
Name
consumed_credits
Type
integer
Description
Số lượng tín dụng đã tiêu thụ bởi nhiệm vụ này. Có khi trạng thái nhiệm vụ là PENDING, IN_PROGRESS, hoặc SUCCEEDED. Trả về 0 cho các nhiệm vụ FAILED (tín dụng được hoàn lại khi thất bại).
Ví dụ Mô hình Nhiệm vụ Tạo lại Texture
{"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}