Text to 3D API

Văn bản sang 3D API là một tính năng cho phép bạn tích hợp khả năng Văn bản sang 3D 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 bạn cần để bắt đầu với API này.

Văn bản sang 3D sử dụng quy trình hai bước. Đầu tiên, tạo một tác vụ preview (mode: "preview") để tạo ra một lưới 3D không có texture, để bạn có thể đánh giá hình dạng. Sau đó, truyền ID tác vụ của preview đã hoàn thành vào một tác vụ refine (mode: "refine") để áp dụng texture cho lưới. Cả hai bước đều dùng chung một endpoint.


POST/openapi/v2/text-to-3d

Tạo tác vụ Text to 3D Preview

Endpoint này tạo một tác vụ Text to 3D preview, tạo ra một lưới 3D chưa có texture (chỉ có hình học) từ một prompt văn bản. Đây là bước đầu tiên trong quy trình gồm hai bước. Sau khi preview thành công, sử dụng ID tác vụ được trả về để tạo một tác vụ refine để tạo texture. Tham khảo Đối tượng tác vụ Text to 3D để biết đầy đủ schema phản hồi.

Tham số

  • Name
    mode
    Type
    string
    Bắt buộc
    Description

    Trường này nên được đặt là "preview" khi tạo một tác vụ preview.

  • Name
    prompt
    Type
    string
    Bắt buộc
    Description

    Mô tả loại vật thể của mô hình 3D. Tối đa 800 ký tự.

  • Name
    model_type
    Type
    string
    mặc định standard
    Description

    Chỉ định loại tạo lưới 3D.

    Các giá trị khả dụng:

    • standard: Tạo lưới 3D chi tiết cao thông thường.
    • smart-topology: Chọn mô hình Smart Topology với ai_model (meshy-t2).
    • lowpoly (không dùng nữa): Tạo lưới low-poly được tối ưu hóa cho các đa giác sạch hơn. Chúng tôi khuyến nghị sử dụng smart-topology thay thế.
  • Name
    ai_model
    Type
    string
    mặc định latest
    Description

    ID của mô hình cần sử dụng. Các giá trị khả dụng phụ thuộc vào model_type.

    Tạo standard (model_type: standard):

    • meshy-6-lite, meshy-6, meshy-7.1, latest (Meshy 7.1)
    • meshy-7 (không dùng nữa): sử dụng meshy-7.1 thay thế.

    Tạo Smart Topology (model_type: smart-topology):

    • meshy-t2 (mặc định): mô hình Smart Topology — topology sạch hơn, các bộ phận được tách biệt tự nhiên, đầu ra dạng tam giác, và số lượng mặt bạn có thể đặt bằng target_polycount.
  • Name
    geometry_resolution
    Type
    string
    mặc định standard
    Description

    Bước tạo hình học. 2k chạy pass Ultra ở 2048³; 4k chạy pass này ở 4096³ để có chi tiết bề mặt tinh xảo nhất.

    Các giá trị khả dụng: standard, 2k, 4k

  • Name
    ultra_mode
    Type
    boolean
    ⚠ không dùng nữa
    mặc định false
    Description

    Sử dụng geometry_resolution thay thế. ultra_mode: true tương đương với geometry_resolution: "2k".

  • Name
    should_remesh
    Type
    boolean
    mặc định false (Meshy 6 and Meshy 7 models), true (others)
    Description

    Kiểm soát việc có bật giai đoạn remesh hay không. Đối với mô hình có chất lượng cao nhất, chúng tôi khuyến nghị đặt should_remesh là false.

Chỉ áp dụng khi should_remesh = true
  • Name
    topology
    Type
    string
    mặc định triangle
    Description

    Chỉ định topology của mô hình được tạo ra.

    Các giá trị khả dụng:

    • quad: Tạo lưới chủ yếu dạng tứ giác.
    • triangle: Tạo lưới tam giác đã được giảm số đa giác.
  • Name
    decimation_mode
    Type
    integer
    Description

    Bật chế độ giảm số đa giác thích ứng bằng cách đặt một mức số đa giác. Khi được đặt, target_polycount sẽ bị bỏ qua.

    Các giá trị khả dụng:

    • 1: Thích ứng — số đa giác cực cao (ultra).
    • 2: Thích ứng — số đa giác cao.
    • 3: Thích ứng — số đa giác trung bình.
    • 4: Thích ứng — số đa giác thấp.
  • Name
    target_polycount
    Type
    integer
    Description

    Số lượng đa giác (mặt) mục tiêu trong đầu ra. Số lượng thực tế có thể lệch so với mục tiêu tùy thuộc vào hình học.

    target_polycount có hiệu lực trong hai trường hợp độc lập:

    • Remesh — với should_remesh: true trên một mô hình standard. Lưới sẽ được remesh (giảm số đa giác) đến gần bằng số lượng này. Phạm vi từ 100 đến 300.000, mặc định là 30.000. Nếu decimation_mode được đặt, nó sẽ được ưu tiên hơn và target_polycount sẽ bị bỏ qua.
    • Smart Topology — với model_type: smart-topology và ai_model: meshy-t2. Mô hình được tạo trực tiếp với số lượng mặt này; không có remesh nào chạy và không yêu cầu should_remesh. Phạm vi từ 100 đến 15.000, mặc định là 4.000.
  • Name
    symmetry_mode
    Type
    string
    ⚠ không dùng nữa
    mặc định auto
    Description

    Không dùng nữa. Tham số này không còn ảnh hưởng đến đầu ra.

    Trường symmetry_mode kiểm soát hành vi đối xứng trong quá trình tạo mô hình.

    Các giá trị hợp lệ là:

    • off: Tắt tính năng đối xứng.
    • auto: Tự động xác định và áp dụng tính đối xứng dựa trên hình học đầu vào.
    • on: Áp đặt tính đối xứng trong khi tạo.
  • Name
    pose_mode
    Type
    string
    mặc định ""
    Description

    Chỉ định pose_mode cho mô hình được tạo ra.

    Các giá trị khả dụng:

    • a-pose: Tạo mô hình ở dáng chữ A (A pose).
    • t-pose: Tạo mô hình ở dáng chữ T (T pose).
    • "" (chuỗi rỗng): Không áp dụng dáng cụ thể nào.
  • Name
    is_a_t_pose
    Type
    boolean
    ⚠ không dùng nữa
    mặc định false
    Description

    Sử dụng pose_mode thay thế. Có tạo mô hình ở dáng A/T hay không.

  • Name
    art_style
    Type
    string
    ⚠ không dùng nữa
    mặc định realistic
    Description

    Không được hỗ trợ bởi Meshy-6. Các yêu cầu sử dụng Meshy-6 sẽ bỏ qua art_style, và một số kết hợp có thể gây ra lỗi. Các giá trị khả dụng: realistic, sculpture.

  • Name
    moderation
    Type
    boolean
    mặc định false
    Description

    Khi được đặt là true, nội dung đầu vào sẽ tự động được kiểm duyệt để phát hiện nội dung có khả năng gây hại. Nếu phát hiện nội dung gây hại, tác vụ sẽ không tiếp tục thực hiện việc tạo.

    Văn bản từ prompt sẽ được kiểm duyệt.

  • Name
    target_formats
    Type
    string[]
    Description

    Chỉ định các định dạng file 3D nào cần 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ề, giúp giảm thời gian hoàn thành tác vụ. Khi bị bỏ qua, 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

  • Name
    alpha_thumbnail
    Type
    boolean
    mặc định false
    Description

    Khi được đặt là true, tác vụ sẽ render thêm một phiên bản preview có nền trong suốt (RGBA) 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.

  • Name
    auto_size
    Type
    boolean
    mặc định false
    Description

    Khi được đặt là true, dịch vụ sẽ sử dụng AI vision để tự động ước tính chiều cao thực tế của vật thể và đổi kích thước mô hình cho phù hợp. Gốc tọa độ sẽ mặc định là bottom trừ khi origin_at được đặt rõ ràng.

Chỉ áp dụng khi auto_size = true
  • Name
    origin_at
    Type
    string
    mặc định bottom
    Description

    Vị trí của gốc tọa độ khi auto_size được bật.

    Các giá trị khả dụng: bottom, center.

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ụ Text to 3D 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ố: Thiếu một tham số bắt buộc (ví dụ: prompt, mode).
    • Tham số không hợp lệ: art_style không phải là một trong các giá trị được cho phép.
    • Prompt quá dài: prompt vượt quá giới hạn ký tự.
    • Mô hình không được hỗ trợ cho low poly: ai_model: "meshy-6-lite" không hỗ trợ model_type: "lowpoly".
    • Mô hình không được hỗ trợ cho Ultra: geometry_resolution yêu cầu meshy-7.1 hoặc latest.
  • 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/v2/text-to-3d
# Simple preview with required params only
curl https://api.meshy.ai/openapi/v2/text-to-3d \
  -H 'Authorization: Bearer ${YOUR_API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{
  "mode": "preview",
  "prompt": "a monster mask"
}'

# Preview with Ultra 4K geometry, remesh and A-pose
curl https://api.meshy.ai/openapi/v2/text-to-3d \
  -H 'Authorization: Bearer ${YOUR_API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{
  "mode": "preview",
  "prompt": "a futuristic robot warrior",
  "ai_model": "meshy-7.1",
  "geometry_resolution": "4k",
  "should_remesh": true,
  "target_polycount": 100000,
  "pose_mode": "a-pose",
  "target_formats": ["glb"]
}'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

POST/openapi/v2/text-to-3d

Tạo tác vụ Refine cho Văn bản sang 3D

Endpoint này tạo một tác vụ refine cho Văn bản sang 3D, áp dụng texture lên một lưới xem trước (preview mesh) đã hoàn thành. Bạn phải cung cấp preview_task_id từ một tác vụ preview thành công. Đây là bước thứ hai trong quy trình hai bước.

Tham số

  • Name
    mode
    Type
    string
    Bắt buộc
    Description

    Trường này phải được đặt là "refine" khi tạo một tác vụ refine.

  • Name
    preview_task_id
    Type
    string
    Bắt buộc
    Description

    ID của tác vụ preview tương ứng.

    Trạng thái của tác vụ preview đã cho phải là SUCCEEDED.

  • 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 emission map cũng được bao gồm khi ai_model là meshy-6, ngoại trừ ở texture_resolution: 8k (không tạo emission map). meshy-6-lite, meshy-7.1 và latest không tạo emission map.

  • 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. Chỉ áp dụng cho mode refine.

  • 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
    texture_prompt
    Type
    string
    Description

    Cung cấp thêm một prompt văn bản để định hướng quá trình tạo texture. Tối đa 800 ký tự.

  • Name
    texture_image_url
    Type
    string
    Description

    Cung cấp một hình ảnh 2D để định hướng quá trình tạo texture. Hiện tại chúng tôi 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ủa hình ảnh được mã hóa base64. Ví dụ về data URI: data:image/jpeg;base64,<your base64-encoded image data>
  • Name
    ai_model
    Type
    string
    mặc định inherited from the preview task
    Description

    ID của mô hình được sử dụng để refine.

    Các giá trị khả dụng:

    • meshy-6-lite, meshy-6, meshy-7.1, latest (Meshy 7.1)
    • meshy-7 (không dùng nữa): hãy sử dụng meshy-7.1 thay thế.

    Bỏ qua tham số này để kế thừa mô hình được sử dụng bởi tác vụ preview, giúp preview và refine của nó luôn dùng cùng một mô hình xuyên suốt. Truyền một giá trị rõ ràng để ghi đè sự kế thừa đó.

  • Name
    moderation
    Type
    boolean
    mặc định false
    Description

    Khi được đặt thành true, nội dung đầu vào sẽ tự động được sàng lọc để phát hiện nội dung có khả năng gây hại. Nếu phát hiện nội dung gây hại, tác vụ sẽ không tiếp tục tạo.

    Cả văn bản từ texture_prompt và hình ảnh từ texture_image_url đều sẽ được sàng lọc.

  • Name
    remove_lighting
    Type
    boolean
    mặc định true
    Description

    Loại bỏ vùng 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.

  • Name
    target_formats
    Type
    string[]
    Description

    Chỉ định các định dạng tệp 3D nào sẽ được 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ả 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

  • Name
    alpha_thumbnail
    Type
    boolean
    mặc định false
    Description

    Khi được đặt thành true, tác vụ sẽ render 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.

  • Name
    auto_size
    Type
    boolean
    mặc định false
    Description

    Khi được đặt thành true, dịch vụ sử dụng thị giác AI để tự động ước tính chiều cao thực tế của đối tượng và thay đổi kích thước mô hình cho phù hợp. Gốc tọa độ sẽ mặc định là bottom trừ khi origin_at được đặt rõ ràng.

Chỉ áp dụng khi auto_size = true
  • Name
    origin_at
    Type
    string
    mặc định bottom
    Description

    Vị trí của gốc tọa độ khi auto_size được bật.

    Các giá trị khả dụng: bottom, center.

Kết quả trả về

Thuộc tính result của phản hồi chứa id của tác vụ Văn bản sang 3D 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:

    • ID tác vụ không hợp lệ: preview_task_id không hợp lệ hoặc không tồn tại.
    • Tác vụ chưa sẵn sàng: Tác vụ preview chưa hoàn thành thành công.
    • Không khớp mô hình: Mô hình AI của tác vụ preview không tương thích với mô hình refine được yêu cầu.
  • 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
    404 - Not Found
    Description

    Không tìm thấy tác vụ preview được chỉ định bởi preview_task_id.

  • Name
    429 - Too Many Requests
    Description

    Bạn đã vượt quá giới hạn tốc độ.

Request

POST
/openapi/v2/text-to-3d
# Basic refine task
curl https://api.meshy.ai/openapi/v2/text-to-3d \
  -H 'Authorization: Bearer ${YOUR_API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{
  "mode": "refine",
  "preview_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "enable_pbr": true
}'

# Refine with auto-size and GLB format
curl https://api.meshy.ai/openapi/v2/text-to-3d \
  -H 'Authorization: Bearer ${YOUR_API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{
  "mode": "refine",
  "preview_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "target_formats": ["glb"],
  "auto_size": true
}'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

GET/openapi/v2/text-to-3d/:id

Lấy thông tin một tác vụ Text to 3D

Endpoint này cho phép bạn lấy thông tin một tác vụ Văn bản sang 3D dựa trên id tác vụ hợp lệ. Tham khảo Đối tượng tác vụ Text to 3D để xem các thuộc tính có trong đối tượng tác vụ Text to 3D.

Endpoint này hoạt động cho cả tác vụ preview và refine.

Tham số

  • Name
    id
    Type
    path
    Description

    Định danh duy nhất của tác vụ Text to 3D cần lấy thông tin.

Kết quả trả về

Phản hồi chứa đối tượng tác vụ Text to 3D. Xem phần Đối tượng tác vụ Text to 3D để biết chi tiết.

Ví dụ

ModeMẫu mô hình
PreviewPreview model
RefineRefined model

Request

GET
/openapi/v2/text-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578
curl https://api.meshy.ai/openapi/v2/text-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "text-to-3d-preview",
  "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=***",
    "mtl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?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=***",
  "prompt": "a monster mask",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 20
}

DELETE/openapi/v2/text-to-3d/:id

Xóa một tác vụ Văn bản sang 3D

Endpoint này xóa vĩnh viễn một tác vụ Văn bản sang 3D, bao gồm tất cả các mô hình 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ụ Văn bản sang 3D 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 đã tiêu hao lúc tạo sẽ được hoàn lại.

Một tác vụ đã ở trạng thái IN_PROGRESS thì 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 nếu xóa nó giữa chừng, bạn sẽ mất cả tín dụng lẫn kết quả. Hãy đợi đến khi tác vụ đạt trạng thái SUCCEEDED, FAILED hoặc CANCELED rồi mới xóa.

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.

Request

DELETE
/openapi/v2/text-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v2/text-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -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 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."
}

GET/openapi/v2/text-to-3d

Danh sách các Task Text to 3D

Endpoint này cho phép bạn lấy danh sách các task Văn bản sang 3D.

Tham số

  • Name
    page_num
    Type
    integer
    mặc định 1
    Description

    Số trang dùng 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.

  • Name
    sort_by
    Type
    string
    Description

    Trường dùng để sắp xếp.

    Các giá trị khả dụng:

    • +created_at: Sắp xếp theo thời gian tạo theo thứ tự tăng dần.
    • -created_at: Sắp xếp theo thời gian tạo theo thứ tự giảm dần.

Giá trị trả về

Trả về một danh sách phân trang của Đối tượng Task Text to 3D.

Request

GET
/openapi/v2/text-to-3d
curl https://api.meshy.ai/openapi/v2/text-to-3d?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "text-to-3d-preview",
    "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=***",
      "mtl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?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=***",
    "prompt": "a monster mask",
    "progress": 100,
    "started_at": 1692771667037,
    "created_at": 1692771650657,
    "finished_at": 1692771669037,
    "status": "SUCCEEDED",
    "texture_urls": [
      {
        "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***"
      }
    ],
    "preceding_tasks": 0,
    "task_error": {

      "message": ""

    },

    "consumed_credits": 20
  }
]

GET/openapi/v2/text-to-3d/:id/stream

Truyền trực tiếp một tác vụ Text to 3D

Endpoint này truyền trực tiếp các cập nhật theo thời gian thực cho một tác vụ Văn bản sang 3D bằng Server-Sent Events (SSE).

Tham số

  • Name
    id
    Type
    path
    Description

    Mã định danh duy nhất của tác vụ Văn bản sang 3D cần truyền trực tiếp.

Kết quả trả về

Trả về một luồng Đối tượng tác vụ Text to 3D dưới dạng Server-Sent Events.

Đối với các tác vụ có trạng thái PENDING hoặc IN_PROGRESS, luồng phản hồi sẽ chỉ bao gồm các trường progress và status cần thiết.

Request

GET
/openapi/v2/text-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream
curl -N https://api.meshy.ai/openapi/v2/text-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 50,
  "status": "IN_PROGRESS"
}

event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "text-to-3d-preview",
"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=***"
},
"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": 20
}

The Text to 3D Task Object

Text to 3D Task object là một đơn vị công việc mà Meshy theo dõi để tạo ra một mô hình 3D từ đầu vào là văn bản. Có hai giai đoạn trong Text to 3D API, preview và refine. Giai đoạn preview dùng để tạo ra một mô hình 3D chỉ có lưới, và giai đoạn refine dùng để tạo ra một mô hình 3D có texture dựa trên kết quả của giai đoạn preview.

Đối tượng 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 nhiệm vụ. Mặc dù chúng tôi sử dụng UUID có thể sắp xếp theo k (k-sortable UUID) làm chi tiết triển khai cho id nhiệm vụ, 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 nhiệm vụ Text to 3D. Các giá trị có thể là text-to-3d-preview cho nhiệm vụ ở giai đoạn preview và text-to-3d-refine cho nhiệm vụ ở giai đoạn refine.

  • Name
    model_urls
    Type
    object
    Description

    URL có thể tải xuống của tệp mô hình 3D có texture được Meshy tạo ra. Thuộc tính cho một định dạng sẽ bị bỏ qua nếu định dạng đó không được tạo ra, thay vì trả về một chuỗi rỗng.

    • Name
      glb
      Type
      string
      Description

      URL có thể tải xuống của tệp GLB.

    • Name
      fbx
      Type
      string
      Description

      URL có thể tải xuống của tệp FBX.

    • Name
      usdz
      Type
      string
      Description

      URL có thể tải xuống của tệp USDZ.

    • Name
      obj
      Type
      string
      Description

      URL có thể tải xuống của tệp OBJ.

    • Name
      mtl
      Type
      string
      Description

      URL có thể tải xuống của tệp MTL.

    • Name
      stl
      Type
      string
      Description

      URL có thể tải xuống của tệp STL.

    • Name
      3mf
      Type
      string
      Description

      URL có thể tải xuống của tệp 3MF. Chỉ xuất hiện khi 3mf được yêu cầu qua target_formats.

  • Name
    prompt
    Type
    string
    Description

    Đây là prompt không bị thay đổi đã được dùng để tạo nhiệm vụ.

  • Name
    negative_prompt
    Type
    string
    ⚠ không dùng nữa
    Description

    Được giữ lại để tương thích ngược. Trường này không có tác động chức năng nào đến các mô hình được tạo ra.

  • Name
    art_style
    Type
    string
    ⚠ không dùng nữa
    Description

    art_style không bị thay đổi đã được dùng để tạo nhiệm vụ preview. Không được Meshy-6 hỗ trợ.

  • Name
    texture_richness
    Type
    string
    ⚠ không dùng nữa
    Description

    Được giữ lại để tương thích ngược. Trường này không có tác động chức năng nào đến các mô hình được tạo ra.

  • Name
    texture_prompt
    Type
    string
    Description

    Prompt văn bản bổ sung được cung cấp để định hướng quá trình tạo texture trong giai đoạn refine.

  • Name
    ultra_mode
    Type
    boolean
    ⚠ không dùng nữa
    Description

    Không dùng nữa; hãy đọc geometry_resolution thay thế.

  • Name
    geometry_resolution
    Type
    string
    Description

    Cấp Ultra mà nhiệm vụ preview đã chạy (2k hoặc 4k); bị bỏ qua đối với standard.

  • Name
    texture_image_url
    Type
    string
    Description

    URL có thể tải xuống của ảnh texture đã được dùng để định hướng quá trình tạo texture.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL có thể tải xuống của ảnh thu nhỏ của tệp mô hình.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    URL có thể tải xuống của phiên bản nền trong suốt (RGBA) của thumbnail_url. Chỉ xuất hiện khi nhiệm vụ được tạo với alpha_thumbnail: true và ảnh 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
    video_url
    Type
    string
    ⚠ không dùng nữa
    Description

    URL có thể tải xuống của video xem trước. Sẽ bị loại bỏ trong một phiên bản phát hành trong tương lai.

  • Name
    progress
    Type
    integer
    Description

    Tiến trình 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ụ đã hoàn thành 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.

  • 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
    finished_at
    Type
    timestamp
    Description

    Dấu thời gian khi nhiệm vụ 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 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ừ nhiệm vụ. 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 của ảnh bản đồ màu cơ bản (base color).

    • Name
      metallic
      Type
      string
      Description

      URL có thể tải xuống của ảnh bản đồ metallic.

    • Name
      normal
      Type
      string
      Description

      URL có thể tải xuống của ảnh bản đồ normal.

    • Name
      roughness
      Type
      string
      Description

      URL có thể tải xuống của ảnh bản đồ roughness.

    • Name
      emission
      Type
      string
      Description

      URL có thể tải xuống của ảnh bản đồ emission.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Số lượng nhiệm vụ đứng trước.

  • Name
    task_error
    Type
    object
    Description

    Chi tiết lỗi cho các nhiệm vụ thất bại. Xem Lỗi để biết đầy đủ tham chiếu đối tượng task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Số tín dụng đã bị tiêu thụ bởi nhiệm vụ này. Xuất hiện 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 sẽ được hoàn lại khi thất bại).

Example Text to 3D Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "text-to-3d-preview",
  "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=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?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=***"
  },
  "prompt": "a monster mask",
  "texture_prompt": "green slimy skin with scales and warts",
  "texture_image_url": "",
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "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": 20
}