Biến ảnh của bạn thành nam châm tủ lạnh tùy chỉnh — một bức phù điêu chiều
sâu được tô màu hình chữ nhật bo góc với mặt sau từ tính phẳng, có kích
thước phù hợp để gắn tủ lạnh — qua hai giai đoạn: prototype tạo ra một
ảnh concept được tô màu từ ảnh đầu vào của bạn, sau đó build biến ảnh
concept đó thành một mô hình 3D dạng phù điêu. Hai giai đoạn được liên kết
với nhau thông qua input_task_id.
POST /openapi/creative-lab/fridge-magnet/v1/prototype
Tạo một hình ảnh concept đã tô màu duy nhất từ ảnh nguồn. ID tác vụ trả về
là giá trị bạn truyền vào input_task_id cho endpoint build. Tham khảo
The Fridge Magnet Prototype Task Object
để biết cấu trúc phản hồi.
Tham số
Name
image_url
Type
string
Bắt buộc
Description
Ảnh nguồn để Meshy tô màu thành hình ảnh concept sẵn sàng cho nam châm tủ lạnh. Chúng tôi hiện hỗ trợ các định dạng .jpg, .jpeg, .png, và .webp.
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 khai.
Data URI: Một data URI được 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>.
Name
name
Type
string
Description
Tên tác vụ tùy chọn dùng cho mục đích hiển thị. Tối đa 100 ký tự.
Name
remove_background
Type
boolean
mặc định false
Description
Khi đặt là true, hình ảnh prototype được trả về dưới dạng PNG RGBA trong suốt với nền đã được loại bỏ, để bạn có thể ghép chủ thể vào bất kỳ nền nào.
Điều này chỉ kiểm soát hình ảnh mà endpoint này trả về. Nó độc lập với tùy chọn build cùng tên (mặc định true), vốn kiểm soát việc loại bỏ nền trước khi tạo relief.
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ụ fridge magnet prototype vừa được tạo. Poll endpoint Get a Task hoặc đăng ký stream cho đến khi tác vụ đạt SUCCEEDED, sau đó truyền ID đó vào build endpoint dưới dạng input_task_id.
Các trường hợp lỗi
Name
400 - Bad Request
Description
Yêu cầu không hợp lệ. Các nguyên nhân phổ biến:
Thiếu tham số: image_url là bắt buộc.
Định dạng hình ảnh không hợp lệ: image_url được cung cấp không thuộc định dạng được hỗ trợ (.jpg, .jpeg, .png, .webp).
Kích thước hình ảnh vượt phạm vi: Hình ảnh quá nhỏ, vượt quá kích thước file tối đa, hoặc vượt quá số lượng pixel tối đa.
URL không thể truy cập: image_url không thể tải xuống được (404 hoặc timeout).
Data URI không hợp lệ: Chuỗi base64 bị sai định dạng.
Nội dung bị đánh dấu: Hình ảnh đầu vào bị đánh dấu bởi moderation nội dung khiêu dâm hoặc sở hữu trí tuệ.
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/creative-lab/fridge-magnet/v1/prototype
# Stage 1: generate a colorized fridge magnet concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/fridge-magnet/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>" }'
Response
{"result":"01a3d8f1-8c2e-7d04-b223-3f3776a1c8c9"}
Ví dụ prototype
Bắt đầu với một ảnh nguồn, sau đó tạo hình ảnh prototype được sử dụng bởi giai đoạn build fridge magnet.
Tạo nam châm tủ lạnh 3D có thể in cuối cùng từ một task nguyên mẫu (prototype) đã thành công. Quá trình build chạy một pipeline phù điêu dựa trên bản đồ độ sâu (depth-map) trên ảnh concept đã tô màu của nguyên mẫu và trả về một artifact lưới duy nhất theo định dạng bạn yêu cầu. Tham khảo
Đối tượng Task Build Nam Châm Tủ Lạnh để biết cấu trúc phản hồi.
Tham số
Name
input_task_id
Type
string
Bắt buộc
Description
ID task của một task nguyên mẫu được tạo qua cùng endpoint OpenAPI này. Nguyên mẫu phải được tạo bằng cùng một khóa API, phải đã đạt trạng thái SUCCEEDED, và phải đã tạo ra chính xác một ảnh ứng viên.
Các task nguyên mẫu được tạo qua webapp sẽ không được chấp nhận — endpoint build chỉ chấp nhận các task nguyên mẫu được tạo bởi POST /openapi/creative-lab/fridge-magnet/v1/prototype và từ chối mọi nguồn khác với 404.
Name
name
Type
string
Description
Tên task tùy chọn dùng cho mục đích hiển thị. Tối đa 100 ký tự.
options
Các tham số điều chỉnh tùy chọn cho hình học phù điêu. Mỗi trường đều có giá trị mặc định hợp lý — chỉ cần gửi những trường bạn muốn ghi đè.
Name
badge_shape
Type
string
mặc định rounded-rect
Description
Hình dạng đường viền của nam châm tủ lạnh. Các giá trị khả dụng:
circle
rounded-rect (mặc định)
hexagon
shield
star
Name
size_mm
Type
number
mặc định 60
Description
Độ dài cạnh của hình vuông bao quanh nam châm tủ lạnh, tính bằng milimét. Phạm vi: (0, 400].
Name
relief_height_mm
Type
number
mặc định 3.3
Description
Chiều cao phù điêu tối đa so với mặt đế, tính bằng milimét. Phạm vi: [0, 20].
Name
relief_offset_mm
Type
number
mặc định 0
Description
Độ dịch chuyển theo phương dọc được áp dụng cho phần phù điêu trước khi đùn, tính bằng milimét. Phạm vi: [0, 20].
Name
base_thickness_mm
Type
number
mặc định 2.0
Description
Độ dày của tấm đế phẳng phía sau phần phù điêu, tính bằng milimét. Giá trị mặc định cho nam châm tủ lạnh là mức đế dày hơn 2 mm — giúp nam châm có đủ độ chắc chắn để bám vào tủ lạnh mà không khiến phần phù điêu bị mỏng manh. Phạm vi: [0, 20].
Name
has_closed_back
Type
boolean
mặc định true
Description
Xác định mặt sau của nam châm tủ lạnh có được bịt kín thành bề mặt đóng hay không (mặt bạn dán nam châm vào). Đặt thành false để có một khối vỏ mở.
Name
relief_curve
Type
string
mặc định linear
Description
Đường cong chuyển đổi ánh xạ giá trị bản đồ độ sâu sang chiều cao phù điêu. Các giá trị khả dụng:
linear (mặc định)
gamma
s-curve
Name
curve_param
Type
number
mặc định 1.0
Description
Tham số hình dạng cho đường cong chuyển đổi (chỉ có ý nghĩa khi relief_curve là gamma). Phạm vi: (0, 10].
Name
invert_depth
Type
boolean
mặc định false
Description
Đảo ngược cách diễn giải bản đồ độ sâu để các vùng tối hơn trở thành phần phù điêu cao hơn.
Name
smoothing
Type
number
mặc định 0.24
Description
Cường độ làm mịn được áp dụng cho bản đồ độ sâu trước khi trích xuất phù điêu. Phạm vi: [0, 10].
Name
relief_scale
Type
number
mặc định 1.0
Description
Hệ số nhân theo phương dọc được áp dụng bên cạnh relief_height_mm. Phạm vi: (0, 10].
Name
depth_threshold
Type
number
mặc định 0.1
Description
Ngưỡng lọc thấp cho các giá trị bản đồ độ sâu; bất kỳ giá trị nào dưới ngưỡng này sẽ bị kẹp về 0. Phạm vi: [0, 1].
Name
remove_background
Type
boolean
mặc định true
Description
Tự động loại bỏ nền của ảnh concept nguyên mẫu trước khi tạo phù điêu.
Khác với tham số cùng tên của nguyên mẫu (mặc định false), tham số này kiểm soát việc bản thân ảnh nguyên mẫu có được trả về với nền trong suốt hay không.
Name
export_resolution
Type
integer
mặc định 512
Description
Độ phân giải lưới được dùng khi xuất. Phạm vi: [64, 2048].
output
Bộ chọn định dạng truyền dữ liệu tùy chọn. Mặc định là glb.
Name
format
Type
string
mặc định glb
Description
Gói artifact được trả về bởi quá trình build. Các giá trị khả dụng:
glb (mặc định) — trả về một tệp model.glb duy nhất tại model_urls.glb.
obj — nén model.obj + model.mtl + texture.png và trả về gói nén tại model_urls.obj.
zip — nén mọi artifact mà trình tạo tạo ra và trả về gói nén tại model_urls.bundle_zip.
Kết quả trả về
Thuộc tính result của phản hồi chứa id task của task build nam châm tủ lạnh vừa được tạo. Hãy thăm dò (poll) endpoint Lấy thông tin một Task hoặc đăng ký luồng dữ liệu (stream) cho đến khi task đạt trạng thái SUCCEEDED, sau đó tải artifact về từ mục duy nhất trong model_urls.
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 thường gặp:
Thiếu tham số: input_task_id là bắt buộc.
UUID không hợp lệ: input_task_id không phải là một UUID hợp lệ.
Task cha chưa thành công: Task nguyên mẫu được tham chiếu chưa đạt trạng thái SUCCEEDED.
Không có ứng viên: Task nguyên mẫu đã thành công nhưng không tạo ra ảnh ứng viên nào.
Options nằm ngoài phạm vi: Một trong các trường của options nằm ngoài phạm vi cho phép hoặc tập giá trị enum cho phép.
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 task này.
Name
404 - Not Found
Description
Task nguyên mẫu được tham chiếu không tồn tại, thuộc về người dùng khác, hoặc được tạo qua webapp (chỉ các task nguyên mẫu ở chế độ API mới có thể được nối tiếp vào bước build).
Truy xuất một tác vụ prototype hoặc build với một id tác vụ hợp lệ. Đường dẫn URL
phải khớp với giai đoạn của tác vụ — một tác vụ build được truy xuất qua
/prototype/:id sẽ trả về 404, và ngược lại.
Hủy một tác vụ nam châm tủ lạnh. Nếu tác vụ vẫn đang ở trạng thái PENDING, số
tín dụng đã tiêu tốn tại thời điểm tạo sẽ được hoàn lại. Các tác vụ đã ở trạng thái
IN_PROGRESS sẽ bị hủy mà không được hoàn tín dụng (worker có thể đã bắt đầu
tiêu tốn tài nguyên). Các tác vụ đã đạt đến trạng thái cuối cùng
(SUCCEEDED, FAILED, CANCELED) không thể bị hủy.
Đường dẫn URL phải khớp với giai đoạn của tác vụ — DELETE trên
/prototype/:buildId sẽ trả về 404.
Tham số đường dẫn
Name
id
Type
path
Description
Định danh duy nhất của tác vụ nam châm tủ lạnh cần hủy.
Kết quả trả về
Trả về 204 No Content khi thành công với nội dung rỗng.
Các chế độ lỗi
Name
400 - Bad Request
Description
Tác vụ đã ở trạng thái cuối cùng và không thể bị hủy.
Name
404 - Not Found
Description
Tác vụ không tồn tại, thuộc về người dùng khác, hoặc giai đoạn của nó không khớp với đường dẫn URL.
Truyền trực tiếp các cập nhật theo thời gian thực cho tác vụ nam châm tủ lạnh thông qua Server-Sent Events (SSE).
Đường dẫn URL phải khớp với giai đoạn của tác vụ — mở một luồng tại
/prototype/:buildId/stream sẽ phát ra một payload event: error duy nhất với
status_code: 404 và đóng luồng lại.
Tham số
Name
id
Type
path
Description
Mã định danh duy nhất cho tác vụ nam châm tủ lạnh cần truyền trực tiếp.
Giá trị trả về
Trả về một luồng các đối tượng tác vụ Fridge Magnet Prototype
hoặc Fridge Magnet Build dưới dạng
Server-Sent Events. Mỗi khung dữ liệu mang theo toàn bộ đối tượng tác vụ của giai đoạn đó — cùng cấu trúc mà
endpoint Get trả về — vì vậy khi tác vụ đang ở trạng thái PENDING hoặc IN_PROGRESS thì các
trường đầu ra đơn giản là chưa được điền dữ liệu (null, [] hoặc {}) và
finished_at là null.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// Every frame is the full task object; fields not yet populated are null / empty.// The PENDING frame below is abbreviated to the fields that change.event: messagedata: {"id": "01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0","progress": 0,"status": "PENDING"}event: messagedata: {"id": "01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0","type": "creative-lab-fridge-magnet-build","status": "SUCCEEDED","progress": 100,"created_at": 1729543250000,"started_at": 1729543258000,"finished_at": 1729543285000,"expires_at": 1729802485000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0/output/model.glb?Expires=***" }}
Truy xuất danh sách phân trang các tác vụ nam châm tủ lạnh của bạn cho một giai đoạn duy nhất. Đường dẫn URL
chọn giai đoạn — /prototype trả về các tác vụ nguyên mẫu; /build
trả về các tác vụ tạo bản dựng. Các tác vụ từ giai đoạn còn lại không được đưa vào
phản hồi đó.
Path Parameters
Name
stage
Type
path
Bắt buộc
Description
Là prototype hoặc build. Bộ sưu tập chỉ trả về các tác vụ
có giai đoạn khớp với URL — truy xuất /prototype sẽ không bao giờ trả về
các tác vụ tạo bản dựng và ngược lại.
Query Parameters
Name
page_num
Type
integer
mặc định 1
Description
Số trang cho phân trang.
Name
page_size
Type
integer
mặc định 10
Description
Giới hạn kích thước trang. Tối đa cho phép là 100 mục.
Đối tượng Fridge Magnet Prototype Task là một đơn vị công việc mà Meshy theo dõi để
tạo ra một hình ảnh khái niệm (concept image) đã tô màu từ một ảnh nguồn. Đầu ra của
giai đoạn này được liên kết vào giai đoạn build
thông qua input_task_id.
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) cho id tác vụ như một 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 tác vụ. Giá trị là creative-lab-fridge-magnet-prototype.
Name
name
Type
string
Description
Tên tác vụ được cung cấp khi tác vụ được tạo. Là chuỗi rỗng nếu không có tên nào được cung cấp.
Name
status
Type
string
Description
Trạng thái của tác vụ. Các giá trị có thể là một trong các giá trị PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
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, giá trị này sẽ trở thành 100.
Name
created_at
Type
timestamp
Description
Dấu thời gian của thời điểm tác vụ được tạo, tính bằng mili giây.
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
started_at
Type
timestamp
Description
Dấu thời gian của thời điểm 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.
Name
finished_at
Type
timestamp
Description
Dấu thời gian của thời điểm 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
expires_at
Type
timestamp
Description
Dấu thời gian của thời điểm kết quả tác vụ hết hạn, tính bằng mili giây.
Name
preceding_tasks
Type
integer
Description
Số lượng các tác vụ đứng trước.
Giá trị của trường này chỉ có ý nghĩa 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. Có mặt 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).
Name
image_urls
Type
array of strings
Description
Các URL có thể tải xuống cho các ứng viên hình ảnh khái niệm được tạo bởi tác vụ prototype này. Hiện tại API luôn trả về đúng một ứng viên; trường này là một mảng để các phiên bản trong tương lai có thể hiển thị nhiều ứng viên mà không gây ra thay đổi phá vỡ tương thích.
Đối tượng Fridge Magnet Build Task là một đơn vị công việc mà Meshy theo dõi để tạo ra lưới nam châm tủ lạnh 3D cuối cùng từ một task nguyên mẫu đã thành công. Quá trình build chạy một pipeline nổi phù điêu bản đồ độ sâu (depth-map relief) trên hình ảnh khái niệm của nguyên mẫu và xuất bản một artifact lưới duy nhất theo định dạng mà bên gọi đã yêu cầu.
Thuộc tính
Name
id
Type
string
Description
Định danh duy nhất cho task.
Name
type
Type
string
Description
Loại của task. Giá trị là creative-lab-fridge-magnet-build.
Name
name
Type
string
Description
Tên task được cung cấp khi task được tạo. Là chuỗi rỗng nếu không có tên nào được cung cấp.
Name
status
Type
string
Description
Trạng thái của task. Các giá trị có thể là một trong PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Tiến độ 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
created_at
Type
timestamp
Description
Dấu thời gian khi task được tạo, tính bằng mili giây.
Name
started_at
Type
timestamp
Description
Dấu thời gian khi task được bắt đầu, tính bằng mili giây.
Name
finished_at
Type
timestamp
Description
Dấu thời gian khi task hoàn thành, tính bằng mili giây.
Name
expires_at
Type
timestamp
Description
Dấu thời gian khi kết quả của task hết hạn, tính bằng mili giây.
Name
preceding_tasks
Type
integer
Description
Số lượng task đứng trước. Chỉ có ý nghĩa khi status 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 đủ của đố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. 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).
Name
model_urls
Type
object
Description
Các URL có thể tải xuống cho artifact được tạo ra, được đánh khóa theo tên artifact. Luôn chứa chính xác một mục — định dạng đã được yêu cầu thông qua output.format của yêu cầu build. Khóa này khớp với định dạng đã yêu cầu:
Name
glb
Type
string
Description
URL có thể tải xuống của file GLB. Xuất hiện khi output.format là glb (giá trị mặc định).
Name
obj
Type
string
Description
URL có thể tải xuống của một gói zip chứa model.obj, model.mtl, và texture.png. Xuất hiện khi output.format là obj.
Name
bundle_zip
Type
string
Description
URL có thể tải xuống của một gói zip chứa toàn bộ artifact mà trình tạo phát ra. Xuất hiện khi output.format là zip.