Resize API
Đổi kích thước một mô hình 3D theo kích thước thực tế, tính bằng mét. Đặt chiều cao của nó hoặc chiều dài của cạnh dài nhất, hoặc để Meshy ước tính chiều cao thực tế của đối tượng.
Tạo một tác vụ Resize
Tạo một tác vụ Resize. Tác vụ này chạy ngầm. Để biết thời gian một tác vụ thường mất bao lâu, xem Thời gian xử lý.
Request
# Simple: resize to a specific height
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"resize_height": 1.8
}'
# Advanced: resize longest side with custom origin
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/model.glb",
"resize_longest_side": 2.0,
"origin_at": "center"
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Tham số
- Name
- input_task_id
- Type
- string
- Bắt buộc
- Description
Bắt buộc trừ khi bạn gửi
model_url. ID của một tác vụ đã tạo ra mô hình 3D, ví dụ một tác vụ Text to 3D, Image to 3D, Remesh, hoặc Retexture. Tác vụ phải đến từ API và có trạng tháiSUCCEEDED. Meshy trả về mô hình đã đổi kích thước dưới dạng tệp GLB.
- Name
- model_url
- Type
- string
- Bắt buộc
- Description
Bắt buộc trừ khi bạn gửi
input_task_id. Mô hình cần đổi kích thước, dưới dạng URL công khai hoặc data URI. Nếu bạn gửi cả hai, Meshy sẽ dùnginput_task_id.Mô hình phải là tệp GLB, glTF, OBJ, FBX, hoặc STL có dung lượng tối đa 400 MB từ URL
httphoặchttps, hoặc 100 MB nếu là data URI. Đối với data URI, dùng MIME typeapplication/octet-stream.Một tệp trên 100 MB cũng phải tuân theo các quy tắc sau:
- Một tệp GLB, glTF, FBX, hoặc OBJ có thể có tối đa 10.000.000 mặt. Meshy tính mặt theo tam giác, vì vậy một mặt tứ giác được tính là 2, và một lưới được vẽ nhiều lần sẽ được tính một lần cho mỗi bản sao.
- Một tệp FBX phải là FBX nhị phân phiên bản 7.1 trở lên.
- Một tệp GLB hoặc glTF không được dùng nén Draco.
Tệp GLB, OBJ, FBX, hoặc STL sẽ giữ nguyên định dạng trong kết quả. Một tệp
.gltfhoặc data URI sẽ được trả về dưới dạng GLB.
Gửi chính xác một trong các tham số resize_height, resize_longest_side, hoặc auto_size. Nếu không gửi tham số nào trong số đó, hoặc gửi nhiều hơn một, sẽ trả về 400.
- Name
- resize_height
- Type
- number
- Description
Chiều cao mới của mô hình tính bằng mét, lớn hơn 0. Giá trị âm sẽ trả về
400.
- Name
- resize_longest_side
- Type
- number
- Description
Độ dài mới của cạnh dài nhất của mô hình tính bằng mét, lớn hơn 0. Giá trị âm sẽ trả về
400. Meshy giữ nguyên tỉ lệ khung hình của mô hình.
- Name
- auto_size
- Type
- boolean
- Description
Có ước tính chiều cao thực tế của vật thể bằng AI thị giác và đổi kích thước mô hình theo chiều cao đó hay không. Trừ khi bạn thiết lập
origin_at, Meshy sẽ đặt gốc tọa độ ở đáy.
- Name
- origin_at
- Type
- string
- mặc định bottom
- Description
Vị trí đặt gốc tọa độ của mô hình sau khi đổi kích thước,
bottomhoặccenter.
Giá trị trả về
Trường result của phản hồi chứa ID của tác vụ Resize mới.
Các chế độ thất bại
- Name
400 - Bad Request- Description
Yêu cầu không thể chạy. Thông báo lỗi cho biết vấn đề nào đã được phát hiện. Ví dụ:
- Thiếu tham số: Không gửi cả
model_urllẫninput_task_id. - Thiếu mode resize: Không gửi tham số nào trong số
resize_height,resize_longest_side, vàauto_size. - Các tham số loại trừ lẫn nhau: Yêu cầu có nhiều hơn một trong số
resize_height,resize_longest_side, vàauto_size. Chỉ gửi một. - Kích thước âm:
resize_heighthoặcresize_longest_sidecó giá trị âm. - Tác vụ đầu vào không hợp lệ:
input_task_idkhông phải là một tác vụ API thành công có tệp mô hình. - Định dạng mô hình không hợp lệ: Tệp
model_urlcó phần mở rộng không được hỗ trợ. - URL không thể truy cập: Meshy không thể tải xuống tệp
model_url. - Tệp mô hình quá lớn: Tệp
model_urlvượt quá 400 MB từ URLhttphoặchttps, hoặc vượt quá 100 MB nếu là data URI. - Quá nhiều mặt: Tệp
model_urlvượt quá 100 MB và có nhiều hơn 10.000.000 mặt. Giảm số lượng mặt, sau đó gửi lại tệp. - ASCII FBX trên 100 MB: Tệp
model_urllà ASCII FBX vượt quá 100 MB. Hãy gửi dưới dạng FBX nhị phân hoặc GLB. - Tệp mô hình không đọc được: Tệp
model_urlvượt quá 100 MB, và Meshy không thể đọc phần header của tệp. Ví dụ, đó là một tệp GLB hoặc glTF được nén Draco, hoặc một FBX nhị phân cũ hơn phiên bản 7.1. - Header mô hình quá phức tạp: Tệp
model_urlvượt quá 100 MB, và phần header có quá nhiều lưới, node, hoặc bản ghi để kiểm tra. Giảm số lượng đối tượng trong tệp, sau đó gửi lại.
Sửa yêu cầu, sau đó gửi lại. Xem Lỗi.
- Thiếu tham số: Không gửi cả
- Name
401 - Unauthorized- Description
Thiếu khóa API hoặc khóa API không hợp lệ. Kiểm tra header
Authorization.
- Name
402 - Payment Required- Description
Ví dụ:
- Không đủ tín dụng: Tài khoản không có đủ tín dụng cho tác vụ này, hoặc tài khoản đã đạt giới hạn tín dụng. Kiểm tra số dư tín dụng của bạn, sau đó thử lại.
- Gói miễn phí: Việc tạo tác vụ yêu cầu gói trả phí. Nâng cấp gói của bạn trong cài đặt đăng ký, sau đó thử lại.
- Name
403 - Forbidden- Description
input_task_idlà một mô hình phù điêu, mà endpoint này không thể đổi kích thước. Thông báo làThis model type does not support this operation. Hãy gửi một mô hình khác.
- Name
404 - Not Found- Description
input_task_idkhông khớp với bất kỳ tác vụ nào của bạn. Kiểm tra ID tác vụ, sau đó gửi lại yêu cầu.
- Name
429 - Too Many Requests- Description
Bạn đã vượt quá giới hạn tốc độ. Hãy đợi, sau đó thử lại. Xem Giới hạn tốc độ.
Lấy một tác vụ Đổi kích thước
Trả về một tác vụ Đổi kích thước theo ID của nó.
Request
curl https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Tham số
- Name
- id
- Type
- path
- Description
ID của tác vụ từ phản hồi tạo tác vụ.
Giá trị trả về
Xóa một tác vụ Đổi kích thước
Xóa vĩnh viễn một tác vụ Đổi kích thước, bao gồm các mô hình và dữ liệu của nó. Bạn không thể hoàn tác việc xóa.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps 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."
}
Tham số đường dẫn
- Name
- id
- Type
- path
- Description
ID của tác vụ cần xóa.
Trạng thái tác vụ
Xóa một tác vụ PENDING sẽ hoàn lại số tín dụng đã sử dụng khi bạn tạo tác vụ đó.
Một tác vụ IN_PROGRESS không thể bị xóa. Yêu cầu sẽ trả về 409 Conflict,
và tác vụ vẫn tiếp tục chạy. Meshy không hoàn tín dụng cho một tác vụ đã bắt đầu chạy,
vì vậy việc xóa nó sẽ khiến bạn mất cả tín dụng lẫn kết quả. Hãy đợi cho đến khi
tác vụ đạt trạng thái SUCCEEDED, FAILED, hoặc CANCELED, sau đó mới xóa nó.
Việc xóa một tác vụ ở trạng thái cuối cùng (SUCCEEDED, FAILED, hoặc CANCELED)
sẽ không hoàn lại tín dụng.
Giá trị trả về
200 OK khi tác vụ được xóa, hoặc 409 Conflict khi tác vụ đang ở trạng thái
IN_PROGRESS.
Danh sách tác vụ Đổi kích thước
Trả về danh sách các tác vụ Đổi kích thước của bạn.
Request
curl https://api.meshy.ai/openapi/v1/resize?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
]
Tham số
- Name
- page_num
- Type
- integer
- mặc định 1
- Description
Số trang cần trả về, tối đa
255. Giá trị lớn hơn sẽ trả về400.
- Name
- page_size
- Type
- integer
- mặc định 10
- Description
Số lượng tác vụ trên mỗi trang, tối đa
100.
- Name
- sort_by
- Type
- string
- Description
Thứ tự sắp xếp.
Các giá trị khả dụng:
+created_at: cũ nhất trước-created_at: mới nhất trước
Giá trị trả về
Một danh sách có phân trang gồm đối tượng tác vụ Đổi kích thước.
Stream một tác vụ Resize
Truyền các cập nhật của tác vụ Resize dưới dạng Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Message event examples illustrate task progress.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Tham số
- Name
- id
- Type
- path
- Description
ID tác vụ từ phản hồi tạo.
Giá trị trả về
Một luồng các đối tượng tác vụ Resize dưới dạng Server-Sent Events.
Mỗi sự kiện chứa toàn bộ đối tượng tác vụ, theo cùng định dạng mà endpoint Get trả về. Trong khi tác vụ đang ở trạng thái PENDING hoặc IN_PROGRESS, các trường kết quả của nó chưa có giá trị.
Đối tượng tác vụ Resize
Đối tượng tác vụ Resize mô tả một lần đổi kích thước mô hình 3D. Nó lưu trạng thái, progress và tệp mô hình khi tác vụ thành công.
Thuộc tính
- Name
- id
- Type
- string
- Description
ID của tác vụ. Hãy xem đây là một chuỗi không minh bạch (opaque string), và đừng dựa vào định dạng của nó.
- Name
- type
- Type
- string
- Description
Loại tác vụ, luôn là
resize.
- Name
- model_urls
- Type
- object
- Description
URL tải xuống cho tệp mô hình đã đổi kích thước. Đối với
input_task_id, tệp luôn là GLB. Đối vớimodel_url, tệp GLB, OBJ, FBX hoặc STL sẽ giữ nguyên định dạng, còn tệp.gltfhoặc Data URI sẽ được trả về dưới dạng GLB.
- Name
- progress
- Type
- integer
- Description
Mức độ hoàn thành của tác vụ, tính theo phần trăm. Giá trị là
0cho đến khi tác vụ bắt đầu và100khi tác vụ thành công.
- Name
- status
- Type
- string
- Description
Trạng thái của tác vụ, là một trong các giá trị
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDhoặcCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Số lượng tác vụ đứng trước tác vụ này trong hàng đợi. Giá trị này chỉ có ý nghĩa khi tác vụ đang ở trạng thái
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Thời điểm tác vụ được tạo, tính bằng mili giây Unix.
- Name
- started_at
- Type
- timestamp
- Description
Thời điểm tác vụ bắt đầu, tính bằng mili giây Unix. Giá trị là
0cho đến khi tác vụ bắt đầu.
- Name
- finished_at
- Type
- timestamp
- Description
Thời điểm tác vụ kết thúc, tính bằng mili giây Unix. Giá trị là
0cho đến khi tác vụ kết thúc.
- Name
- expires_at
- Type
- timestamp
- Description
Thời điểm các URL tải xuống của tác vụ hết hạn, tính bằng mili giây Unix. Giá trị là
0cho đến khi tác vụ kết thúc.
- Name
- texture_urls
- Type
- array
- Description
URL tải xuống cho các texture map của mô hình, khi tác vụ thành công: một mảng các đối tượng, mỗi đối tượng ứng với một bộ texture. Mỗi đối tượng có một URL
base_color, và cũng có thể có các URLmetallic,roughness,normal,emissionvàmetallic_roughness. Giá trị lànullcho đến khi tác vụ thành công, và là một mảng rỗng khi mô hình không có texture map nào.
- Name
- task_error
- Type
- object
- Description
Chi tiết lỗi khi tác vụ thất bại. Xem Lỗi.
- Name
- consumed_credits
- Type
- integer
- Description
Số tín dụng mà tác vụ đã sử dụng, là
1đối với một tác vụ Resize. Giá trị là0đối với tác vụFAILED.