Multi-Image to 3D API
Multi-Image to 3D API เป็นฟีเจอร์ที่ช่วยให้คุณผสานความสามารถ Multi-Image to 3D ของ Meshy เข้ากับแอปพลิเคชันของคุณเองได้ ในส่วนนี้คุณจะพบข้อมูลทั้งหมดที่จำเป็นสำหรับการเริ่มต้นใช้งาน API นี้
สร้าง Multi-Image to 3D Task
endpoint นี้ช่วยให้คุณสร้าง Multi-Image to 3D task ใหม่ได้ ดูที่ The Multi-Image to 3D Task Object เพื่อดูว่ามีคุณสมบัติใดบ้าง ที่รวมอยู่ใน Multi-Image to 3D task object
พารามิเตอร์
ต้องระบุอย่างใดอย่างหนึ่งระหว่าง input_task_id หรือ image_urls เท่านั้น (จำเป็น) หากระบุทั้งสองอย่าง input_task_id จะมีลำดับความสำคัญเหนือกว่า
- Name
- input_task_id
- Type
- string
- จำเป็น
- Description
ID ของ task การสร้างภาพที่เสร็จสมบูรณ์แล้ว ซึ่งผลลัพธ์ (1-4 ภาพ) จะถูกใช้เป็น input task นี้ต้องเป็นหนึ่งใน task ต่อไปนี้: Text to Image, Image to Image, Text to Image Multi-View หรือ Image to Image Multi-View นอกจากนี้ต้องถูกรันผ่าน API และมีสถานะเป็น
SUCCEEDED
- Name
- image_urls
- Type
- array
- จำเป็น
- Description
ให้ภาพ 1 ถึง 4 ภาพเพื่อให้ Meshy ใช้ในการสร้างโมเดล ขณะนี้เรารองรับรูปแบบ
.jpg,.jpeg, และ.pngภาพทั้งหมดควรแสดงวัตถุเดียวกันจากมุมที่ต่างกันเพื่อผลลัพธ์ที่ดีที่สุดมีสองวิธีในการให้แต่ละภาพ:
- URL ที่เข้าถึงได้แบบสาธารณะ: URL ที่สามารถเข้าถึงได้จากอินเทอร์เน็ตสาธารณะ
- Data URI: Data URI ของภาพที่เข้ารหัสแบบ base64 ตัวอย่างของ Data URI:
data:image/jpeg;base64,<your base64-encoded image data>
สำหรับ
meshy-7(หรือlatest) ภาพแรกจะถูกใช้เป็นมุมมองหลัก (ด้านหน้า) ส่วนลำดับของภาพที่เหลือไม่มีผล
- Name
- ai_model
- Type
- string
- ค่าเริ่มต้น latest
- Description
ID ของโมเดลที่จะใช้ ค่าที่รองรับ:
meshy-5,meshy-6,meshy-7,latest(Meshy 7)
- Name
- should_texture
- Type
- boolean
- ค่าเริ่มต้น true
- Description
กำหนดว่าจะสร้างเท็กซ์เจอร์หรือไม่ การตั้งค่าเป็น
falseจะข้ามขั้นตอนเท็กซ์เจอร์ โดยให้เมชที่ไม่มีเท็กซ์เจอร์
should_texture = true- Name
- enable_pbr
- Type
- boolean
- ค่าเริ่มต้น false
- Description
สร้าง PBR Maps (metallic, roughness, normal) เพิ่มเติมจากสีเบส และจะมี emission map รวมอยู่ด้วยเมื่อ
ai_modelเป็นmeshy-6ยกเว้นที่texture_resolution: 8kส่วนmeshy-7และlatestจะไม่สร้าง emission map
- Name
- texture_resolution
- Type
- string
- ค่าเริ่มต้น 2k
- Description
ความละเอียดของเท็กซ์เจอร์สีเบส หนึ่งใน
2k(2048×2048),4k(4096×4096), หรือ8k(8192×8192) ความละเอียดที่สูงขึ้นจะเก็บรายละเอียดพื้นผิวได้มากขึ้น4kและ8kต้องใช้ai_modelเป็นmeshy-6,meshy-7หรือlatestที่8kจะไม่มีการสร้าง emission map
- Name
- hd_texture
- Type
- boolean
- ⚠ เลิกใช้แล้ว
- ค่าเริ่มต้น false
- Description
ใช้
texture_resolutionแทน — เทียบเท่ากับtexture_resolution: "4k"เมื่อตั้งค่าทั้งสองอย่างtexture_resolutionจะมีลำดับความสำคัญเหนือกว่า
- Name
- texture_prompt
- Type
- string
- Description
ให้ text prompt เพื่อกำกับกระบวนการสร้างเท็กซ์เจอร์ ความยาวสูงสุด 600 ตัวอักษร
- Name
- texture_image_url
- Type
- string
- Description
ให้ภาพ 2 มิติเพื่อกำกับกระบวนการสร้างเท็กซ์เจอร์ ขณะนี้เรารองรับรูปแบบ
.jpg,.jpeg, และ.pngมีสองวิธีในการให้ภาพ:
- URL ที่เข้าถึงได้แบบสาธารณะ: URL ที่สามารถเข้าถึงได้จากอินเทอร์เน็ตสาธารณะ
- Data URI: Data URI ของภาพที่เข้ารหัสแบบ base64 ตัวอย่างของ Data URI:
data:image/jpeg;base64,<your base64-encoded image data>
การสร้างเท็กซ์เจอร์จากภาพอาจทำงานได้ไม่ดีนักหากมีความแตกต่างด้านจีออเมทรีอย่างมากระหว่าง asset ต้นฉบับกับภาพที่อัปโหลด ใช้ได้เพียงอย่างใดอย่างหนึ่งระหว่าง
texture_image_urlหรือtexture_promptเพื่อกำกับกระบวนการสร้างเท็กซ์เจอร์ หากระบุพารามิเตอร์ทั้งสองอย่าง ระบบจะใช้texture_promptในการสร้างเท็กซ์เจอร์ให้โมเดลเป็นค่าเริ่มต้น
- Name
- should_remesh
- Type
- boolean
- ค่าเริ่มต้น false (meshy-6), true (others)
- Description
ควบคุมว่าจะเปิดใช้งานขั้นตอนรีเมชหรือไม่ สำหรับโมเดลคุณภาพสูงสุด เราแนะนำให้ตั้งค่า
should_remeshเป็นfalse
should_remesh = true- Name
- topology
- Type
- string
- ค่าเริ่มต้น triangle
- Description
กำหนด topology ของโมเดลที่สร้างขึ้น
ค่าที่รองรับ:
quad: สร้างเมชที่มีสี่เหลี่ยมเป็นหลักtriangle: สร้างเมชสามเหลี่ยมที่ผ่านการลดจำนวนโพลิกอน
- Name
- target_polycount
- Type
- integer
- ค่าเริ่มต้น 30,000
- Description
กำหนดจำนวนโพลิกอนเป้าหมายในโมเดลที่สร้างขึ้น จำนวนโพลิกอนจริงอาจแตกต่างจากเป้าหมายขึ้นอยู่กับความซับซ้อนของจีออเมทรี
ช่วงค่าที่ถูกต้องแตกต่างกันไปตามระดับผู้ใช้:
- 100 ถึง 300,000 (รวมค่าปลายทั้งสอง)
- Name
- decimation_mode
- Type
- integer
- Description
เปิดใช้งานการลดจำนวนโพลิกอนแบบปรับตัวโดยกำหนดระดับ polycount เมื่อกำหนดค่านี้
target_polycountจะถูกละเว้นค่าที่รองรับ:
1: Adaptive — ultra polycount2: Adaptive — high polycount3: Adaptive — medium polycount4: Adaptive — low polycount
- Name
- save_pre_remeshed_model
- Type
- boolean
- ค่าเริ่มต้น false
- Description
เมื่อตั้งค่าเป็น
trueMeshy จะจัดเก็บไฟล์ GLB เพิ่มเติมก่อนที่ขั้นตอนรีเมชจะเสร็จสิ้น
- Name
- symmetry_mode
- Type
- string
- ⚠ เลิกใช้แล้ว
- ค่าเริ่มต้น auto
- Description
เลิกใช้แล้ว พารามิเตอร์นี้ไม่มีผลต่อผลลัพธ์อีกต่อไป
ฟิลด์
symmetry_modeควบคุมพฤติกรรมด้านสมมาตรระหว่างกระบวนการสร้างโมเดลค่าที่ถูกต้องคือ:
off: ปิดใช้งานสมมาตรauto: กำหนดและใช้สมมาตรโดยอัตโนมัติตามจีออเมทรีของ inputon: บังคับใช้สมมาตรระหว่างการสร้าง
- Name
- pose_mode
- Type
- string
- ค่าเริ่มต้น ""
- Description
กำหนดโหมดท่าทางของโมเดลที่สร้างขึ้น
ค่าที่รองรับ:
a-pose: สร้างโมเดลในท่า A poset-pose: สร้างโมเดลในท่า T pose""(สตริงว่าง): ไม่ใช้ท่าทางเฉพาะใดๆ
- Name
- is_a_t_pose
- Type
- boolean
- ⚠ เลิกใช้แล้ว
- ค่าเริ่มต้น false
- Description
ใช้
pose_modeแทน กำหนดว่าจะสร้างโมเดลในท่า A/T pose หรือไม่
- Name
- image_enhancement
- Type
- boolean
- ค่าเริ่มต้น true
- Description
ปรับแต่งภาพ input ให้เหมาะสมเพื่อผลลัพธ์ที่ดีขึ้น ตั้งค่าเป็น
falseเพื่อคงรูปลักษณ์ของภาพ input ไว้อย่างแม่นยำโดยไม่มีการประมวลผลด้านสไตล์ใดๆรองรับเฉพาะเมื่อ
ai_modelเป็นmeshy-6,meshy-7หรือlatest
- Name
- remove_lighting
- Type
- boolean
- ค่าเริ่มต้น true
- Description
ลบไฮไลต์และเงาออกจากเท็กซ์เจอร์สีเบส ทำให้ได้ผลลัพธ์ที่สะอาดขึ้นและทำงานได้ดีกว่าภายใต้การจัดแสงแบบกำหนดเอง
รองรับเฉพาะเมื่อ
ai_modelเป็นmeshy-6,meshy-7หรือlatest
- Name
- moderation
- Type
- boolean
- ค่าเริ่มต้น false
- Description
เมื่อตั้งค่าเป็น
trueเนื้อหา input จะถูกตรวจสอบหาเนื้อหาที่อาจเป็นอันตรายโดยอัตโนมัติ หากตรวจพบเนื้อหาที่เป็นอันตราย task จะไม่ดำเนินต่อไปยังขั้นตอนการสร้างแต่ละภาพจาก
image_urlsและข้อความจากtexture_promptจะถูกตรวจสอบ
- Name
- target_formats
- Type
- string[]
- Description
กำหนดว่าจะรวมรูปแบบไฟล์ 3D ใดบ้างใน output เฉพาะรูปแบบที่ร้องขอเท่านั้นที่จะถูกสร้างและส่งคืน ซึ่งช่วยลดเวลาในการทำ task ให้เสร็จสิ้นได้
ค่าที่รองรับ:
glb,obj,fbx,stl,usdz,3mfเมื่อไม่ได้ระบุ จะสร้างทุกรูปแบบยกเว้น
3mfโดย3mfจะรวมอยู่ก็ต่อเมื่อระบุไว้อย่างชัดเจนเท่านั้น
- Name
- auto_size
- Type
- boolean
- ค่าเริ่มต้น false
- Description
เมื่อตั้งค่าเป็น
trueระบบจะใช้ AI vision ประเมินความสูงจริงของวัตถุโดยอัตโนมัติและปรับขนาดโมเดลให้สอดคล้องกัน จุดกำเนิดจะถูกตั้งเป็นbottomเป็นค่าเริ่มต้น เว้นแต่จะระบุorigin_atอย่างชัดเจน
- Name
- alpha_thumbnail
- Type
- boolean
- ค่าเริ่มต้น false
- Description
เมื่อตั้งค่าเป็น
truetask จะเรนเดอร์ภาพพรีวิวเวอร์ชันพื้นหลังโปร่งใส (RGBA) เพิ่มเติม และส่งคืนเป็นalpha_thumbnail_urlในการตอบสนองของ GET โดยฟิลด์thumbnail_urlที่มีอยู่เดิมจะไม่เปลี่ยนแปลง
- Name
- multi_view_thumbnails
- Type
- boolean
- ค่าเริ่มต้น false
- Description
เมื่อตั้งค่าเป็น
truetask จะเรนเดอร์ภาพย่อสี่มุมมองหลักเพิ่มเติม (ด้านหน้า, ด้านขวา, ด้านหลัง, ด้านซ้าย) และส่งคืนภายใต้thumbnail_urlsในการตอบสนองของ GET โดยฟิลด์thumbnail_urlที่มีอยู่เดิมจะไม่เปลี่ยนแปลงและยังคงชี้ไปที่มุมมองด้านหน้า ดังนั้นไคลเอนต์เดิมจึงไม่ได้รับผลกระทบเพิ่มเวลาแฝงของ task ประมาณ 3 วินาที
auto_size = true- Name
- origin_at
- Type
- string
- ค่าเริ่มต้น bottom
- Description
ตำแหน่งของจุดกำเนิดเมื่อเปิดใช้งาน
auto_sizeค่าที่รองรับ:bottom,center
ค่าที่ส่งคืน
คุณสมบัติ result ของการตอบสนองประกอบด้วย id ของ Multi-Image to 3D task ที่เพิ่งสร้างขึ้น
กรณีที่ล้มเหลว
- Name
400 - Bad Request- Description
คำขอไม่เป็นที่ยอมรับ สาเหตุที่พบบ่อย:
- พารามิเตอร์ขาดหาย: ต้องระบุ
image_urlsหรือinput_task_idอย่างใดอย่างหนึ่ง - input task ไม่ถูกต้อง:
input_task_idต้องอ้างอิงถึง task Text to Image, Image to Image หรือ task แบบ multi-view ที่มีสถานะSUCCEEDED - จำนวนภาพไม่ถูกต้อง:
image_urlsต้องมีภาพระหว่าง 1 ถึง 4 ภาพ - รูปแบบภาพไม่ถูกต้อง: มีภาพหนึ่งภาพหรือมากกว่าใน
image_urlsที่ไม่ใช่รูปแบบที่รองรับ - URL เข้าถึงไม่ได้: มี
image_urlsหนึ่งรายการหรือมากกว่าที่ไม่สามารถดาวน์โหลดได้
- พารามิเตอร์ขาดหาย: ต้องระบุ
- Name
401 - Unauthorized- Description
การยืนยันตัวตนล้มเหลว กรุณาตรวจสอบ API key ของคุณ
- Name
402 - Payment Required- Description
เครดิตไม่เพียงพอสำหรับการดำเนิน task นี้
- Name
429 - Too Many Requests- Description
คุณใช้งานเกินขีดจำกัดอัตราการเรียกใช้แล้ว
Request
# คำขอแบบง่าย
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_urls": [
"<your publicly accessible image url or base64-encoded data URI>",
"<your second publicly accessible image url or base64-encoded data URI>"
]
}'
# พร้อม PBR texturing และรูปแบบ GLB
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_urls": [
"<your publicly accessible image url or base64-encoded data URI>",
"<your second publicly accessible image url or base64-encoded data URI>"
],
"should_texture": true,
"enable_pbr": true,
"target_formats": ["glb"]
}'
การตอบสนอง
{
"result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}
รับ Multi-Image to 3D Task
endpoint นี้ช่วยให้คุณรับ Multi-Image to 3D task ได้เมื่อมี id ของ task ที่ถูกต้อง
ดูที่ The Multi-Image to 3D Task Object เพื่อดูว่ามีคุณสมบัติใดบ้าง
ที่รวมอยู่ใน Multi-Image to 3D task object
พารามิเตอร์
- Name
- id
- Type
- path
- Description
ตัวระบุที่ไม่ซ้ำกันของ Multi-Image to 3D task ที่ต้องการรับ
ค่าที่ส่งคืน
การตอบสนองประกอบด้วย Multi-Image to 3D task object ดูรายละเอียดได้ที่หัวข้อ The Multi-Image to 3D Task Object
Request
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
การตอบสนอง
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "multi-image-to-3d",
"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=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
"pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
"thumbnail_urls": {
"front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
"right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
"back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
"left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
},
"texture_prompt": "",
"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": 30
}
ลบ Multi-Image to 3D Task
endpoint นี้ลบ Multi-Image to 3D task อย่างถาวร รวมถึงโมเดลและข้อมูลที่เกี่ยวข้องทั้งหมด การดำเนินการนี้ไม่สามารถย้อนกลับได้
พารามิเตอร์ของ Path
- Name
- id
- Type
- path
- Description
ID ของ Multi-Image to 3D task ที่ต้องการลบ
ค่าที่ส่งคืน
ส่งคืน 200 OK เมื่อสำเร็จ
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
การตอบสนอง
// ส่งคืน 200 Ok เมื่อสำเร็จ
รายการ Multi-Image to 3D Tasks
endpoint นี้ช่วยให้คุณรับรายการของ Multi-Image to 3D tasks ได้
พารามิเตอร์
คุณสมบัติเสริม
- Name
- page_num
- Type
- integer
- Description
หมายเลขหน้าสำหรับการแบ่งหน้า เริ่มต้นและมีค่าเริ่มต้นที่
1
- Name
- page_size
- Type
- integer
- Description
ขีดจำกัดขนาดของหน้า ค่าเริ่มต้นคือ
10รายการ สูงสุดที่อนุญาตคือ50รายการ
- Name
- sort_by
- Type
- string
- Description
ฟิลด์ที่ใช้จัดเรียง ค่าที่รองรับ:
+created_at: จัดเรียงตามเวลาที่สร้างจากน้อยไปมาก-created_at: จัดเรียงตามเวลาที่สร้างจากมากไปน้อย
ค่าที่ส่งคืน
ส่งคืนรายการแบบแบ่งหน้าของ The Multi-Image to 3D Task Objects
Request
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
การตอบสนอง
[
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "multi-image-to-3d",
"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=***",
"pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
"thumbnail_urls": {
"front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
"right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
"back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
"left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
},
"texture_prompt": "",
"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": 30
}
]
สตรีม Multi-Image to 3D Task
endpoint นี้สตรีมการอัปเดตแบบเรียลไทม์สำหรับ Multi-Image to 3D task โดยใช้ Server-Sent Events (SSE)
พารามิเตอร์
- Name
- id
- Type
- path
- Description
ตัวระบุที่ไม่ซ้ำกันของ Multi-Image to 3D task ที่ต้องการสตรีม
ค่าที่ส่งคืน
ส่งคืนสตรีมของ The Multi-Image to 3D Task Objects ในรูปแบบ Server-Sent Events
สำหรับ task ที่มีสถานะ PENDING หรือ IN_PROGRESS สตรีมการตอบสนองจะรวมเฉพาะฟิลด์ progress และ status ที่จำเป็นเท่านั้น
Request
curl -N https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
สตรีมการตอบสนอง
// ตัวอย่างเหตุการณ์ข้อผิดพลาด
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// ตัวอย่างเหตุการณ์ข้อความแสดงถึงความคืบหน้าของ task
// สำหรับ task ที่มีสถานะ PENDING หรือ IN_PROGRESS สตรีมการตอบสนองจะไม่รวมฟิลด์ทั้งหมด
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "multi-image-to-3d",
"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=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
"pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
"thumbnail_urls": {
"front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
"right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
"back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
"left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
},
"texture_prompt": "",
"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": 30
}
วัตถุ Multi-Image to 3D Task
วัตถุ Multi-Image to 3D Task คือหน่วยงานที่ Meshy ติดตามเพื่อสร้างโมเดล 3 มิติจากภาพหลายภาพ (ตั้งแต่ 1 ถึง 4 ภาพ) ภาพเหล่านั้นควรเป็นวัตถุเดียวกัน โดยควรเป็นมุมมองหรือมุมกล้องที่ต่างกัน วัตถุนี้มีคุณสมบัติดังต่อไปนี้:
คุณสมบัติ
- Name
- id
- Type
- string
- Description
ตัวระบุที่ไม่ซ้ำกันของ task แม้ว่าเราจะใช้ UUID แบบ k-sortable สำหรับ task id เป็นรายละเอียดของการนำไปใช้งาน แต่คุณไม่ควรตั้งสมมติฐานใดๆ เกี่ยวกับรูปแบบของ id
- Name
- type
- Type
- string
- Description
ชนิดของ Multi-Image to 3D task ค่าคือ
multi-image-to-3d
- Name
- model_urls
- Type
- object
- Description
URL ที่ดาวน์โหลดได้สำหรับไฟล์โมเดล 3 มิติที่มีเท็กซ์เจอร์ซึ่งสร้างโดย Meshy คุณสมบัติของรูปแบบใดจะถูกละเว้นหากรูปแบบนั้นไม่ได้ถูกสร้าง แทนที่จะส่งคืนสตริงว่าง
- Name
glb- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับไฟล์ GLB
- Name
fbx- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับไฟล์ FBX
- Name
obj- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับไฟล์ OBJ
- Name
usdz- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับไฟล์ USDZ
- Name
mtl- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับไฟล์ MTL ซึ่งจะส่งคืนพร้อมกับการส่งออก OBJ เมื่อมีเท็กซ์เจอร์
- Name
stl- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับไฟล์ STL
- Name
3mf- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับไฟล์ 3MF จะปรากฏเฉพาะเมื่อมีการร้องขอ
3mfผ่านtarget_formats
- Name
pre_remeshed_glb- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับ GLB ต้นฉบับก่อนการรีเมช
ใช้ได้เฉพาะเมื่อ task ถูกสร้างด้วยทั้ง
should_remesh: trueและsave_pre_remeshed_model: true
- Name
- thumbnail_url
- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับภาพย่อของไฟล์โมเดล เทียบเท่ากับ
thumbnail_urls.frontเมื่อมีอยู่ คงไว้เพื่อความเข้ากันได้ย้อนหลัง
- Name
- alpha_thumbnail_url
- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับเวอร์ชันพื้นหลังโปร่งใส (RGBA) ของ
thumbnail_urlจะปรากฏเฉพาะเมื่อ task ถูกสร้างด้วยalpha_thumbnail: trueและเรนเดอร์ภาพพรีวิวโปร่งใสได้สำเร็จ มิฉะนั้นฟิลด์นี้จะถูกละเว้น
- Name
- thumbnail_urls
- Type
- object
- Description
URL ที่ดาวน์โหลดได้สำหรับภาพย่อสี่มุมมองหลักของโมเดล 3 มิติที่สร้างขึ้น แต่ละค่าคือ URL แบบเซ็นกำกับที่ชี้ไปยังไฟล์ PNG ขนาด 512×512 ซึ่งเรนเดอร์ด้วยวัสดุและแสงเดียวกันกับ
thumbnail_urlมีประโยชน์สำหรับการดูตัวอย่างโมเดลจากหลายมุมในไปป์ไลน์แบบแบตช์โดยไม่ต้องดาวน์โหลด GLBจะปรากฏเฉพาะเมื่อ task ถูกสร้างด้วย
multi_view_thumbnails: trueและมีสถานะเป็นSUCCEEDEDแล้ว task เก่าและ task ที่สร้างโดยไม่ได้เลือกใช้งานจะไม่มีฟิลด์นี้- Name
- front
- Type
- string
- Description
มุมมองด้านหน้า หมุน 0° รอบแกนแนวตั้ง (ตรงกับ
thumbnail_url)
- Name
- right
- Type
- string
- Description
มุมมองด้านขวา หมุน 90°
- Name
- back
- Type
- string
- Description
มุมมองด้านหลัง หมุน 180°
- Name
- left
- Type
- string
- Description
มุมมองด้านซ้าย หมุน 270°
- Name
- texture_prompt
- Type
- string
- Description
text prompt ที่ใช้กำกับกระบวนการสร้างเท็กซ์เจอร์
- Name
- progress
- Type
- integer
- Description
ความคืบหน้าของ task หาก task ยังไม่เริ่มต้น คุณสมบัตินี้จะเป็น
0เมื่อ task สำเร็จแล้ว ค่านี้จะกลายเป็น100
- Name
- started_at
- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่ task เริ่มต้น ในหน่วยมิลลิวินาที หาก task ยังไม่เริ่มต้น คุณสมบัตินี้จะเป็น
0ไทม์สแตมป์แสดงถึงจำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่วันที่ 1 มกราคม 1970 UTC ตาม มาตรฐาน RFC 3339
ตัวอย่างเช่น วันศุกร์ที่ 1 กันยายน 2023 เวลา 12:00:00 GMT จะแสดงเป็น1693569600000ซึ่งใช้กับ ไทม์สแตมป์ทั้งหมดใน Meshy API
- Name
- created_at
- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่ task ถูกสร้างขึ้น ในหน่วยมิลลิวินาที
- Name
- expires_at
- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่ผลลัพธ์ของ task หมดอายุ ในหน่วยมิลลิวินาที
- Name
- finished_at
- Type
- timestamp
- Description
ไทม์สแตมป์ของเวลาที่ task เสร็จสิ้น ในหน่วยมิลลิวินาที หาก task ยังไม่เสร็จสิ้น คุณสมบัตินี้จะเป็น
0
- Name
- status
- Type
- string
- Description
สถานะของ task ค่าที่เป็นไปได้คือหนึ่งใน
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED
- Name
- texture_urls
- Type
- array
- Description
อาเรย์ของวัตถุ URL เท็กซ์เจอร์ที่ถูกสร้างขึ้นจาก task โดยปกติจะมีวัตถุ URL เท็กซ์เจอร์เพียง หนึ่ง รายการเท่านั้น แต่ละ URL เท็กซ์เจอร์มีคุณสมบัติดังนี้:
- Name
base_color- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับภาพ base color map
- Name
metallic- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับภาพ metallic map
หาก task ถูกสร้างด้วย
enable_pbr: falseคุณสมบัตินี้จะถูกละเว้น
- Name
normal- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับภาพ normal map
หาก task ถูกสร้างด้วย
enable_pbr: falseคุณสมบัตินี้จะถูกละเว้น
- Name
roughness- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับภาพ roughness map
หาก task ถูกสร้างด้วย
enable_pbr: falseคุณสมบัตินี้จะถูกละเว้น
- Name
emission- Type
- string
- Description
URL ที่ดาวน์โหลดได้สำหรับภาพ emission map
หาก task ถูกสร้างด้วย
enable_pbr: falseหรือai_modelเป็นmeshy-5คุณสมบัตินี้จะถูกละเว้น
- Name
- preceding_tasks
- Type
- integer
- Description
จำนวนของ task ที่อยู่ก่อนหน้า
ค่าของฟิลด์นี้มีความหมายเฉพาะเมื่อสถานะของ task เป็น
PENDINGเท่านั้น
- Name
- task_error
- Type
- object
- Description
รายละเอียดข้อผิดพลาดสำหรับ task ที่ล้มเหลว ดูข้อมูลอ้างอิงของ
task_errorobject ทั้งหมดได้ที่ Errors
- Name
- consumed_credits
- Type
- integer
- Description
จำนวนเครดิตที่ task นี้ใช้ไป จะปรากฏเมื่อสถานะของ task เป็น
PENDING,IN_PROGRESSหรือSUCCEEDEDและส่งคืน0สำหรับ task ที่FAILED(เครดิตจะถูกคืนเมื่อล้มเหลว)
ตัวอย่าง Multi-Image to 3D Task Object
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "multi-image-to-3d",
"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=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
"pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
"thumbnail_urls": {
"front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
"right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
"back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
"left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
},
"texture_prompt": "",
"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": 30,
}