รูปภาพเป็น 3D API
แปลงรูปภาพให้เป็นโมเดล 3D ไม่ว่าจะมีพื้นผิวหรือไม่มีพื้นผิว ในรูปแบบไฟล์ที่คุณเลือก ส่งรูปภาพ หรือใช้ผลลัพธ์จากงานข้อความเป็นรูปภาพหรือรูปภาพเป็นรูปภาพ
สร้างงาน Image to 3D
สร้างงานรูปภาพเป็น 3D งานนี้จะทำงานในพื้นหลัง สำหรับระยะเวลาที่งานมักใช้ ดูที่ Processing times
Request
# Simple request with required params
curl https://api.meshy.ai/openapi/v1/image-to-3d \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>"
}'
# With Ultra 4K geometry, remesh, PBR, and A-pose
curl https://api.meshy.ai/openapi/v1/image-to-3d \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>",
"ai_model": "meshy-7.1",
"geometry_resolution": "4k",
"enable_pbr": true,
"should_remesh": true,
"target_polycount": 100000,
"should_texture": true,
"pose_mode": "a-pose",
"target_formats": ["glb"]
}'
# Textured with Meshy N1 from the input image
curl https://api.meshy.ai/openapi/v1/image-to-3d \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>",
"ai_model": "meshy-7.1",
"texture_model": "meshy-n1"
}'
Response
{
"result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}
พารามิเตอร์
- Name
- input_task_id
- Type
- string
- จำเป็น
- Description
จำเป็นต้องระบุ เว้นแต่คุณจะส่ง
image_urlคือ ID ของงาน ข้อความเป็นรูปภาพ หรือ รูปภาพเป็นรูปภาพ ที่คุณต้องการใช้รูปภาพของงานนั้นเป็นอินพุต งานนั้นต้องเป็นงานที่คุณสร้างด้วย API มีสถานะเป็นSUCCEEDEDและสร้างรูปภาพออกมาเพียงรูปเดียว
- Name
- image_url
- Type
- string
- จำเป็น
- Description
จำเป็นต้องระบุ เว้นแต่คุณจะส่ง
input_task_idรูปภาพที่จะแปลงเป็นโมเดล 3D ในรูปแบบ URL สาธารณะ หรือ Data URI แบบ base64 เช่นdata:image/jpeg;base64,<your base64-encoded image data>หากคุณส่งทั้งสองอย่าง Meshy จะใช้input_task_idรูปภาพต้องเป็นไฟล์ JPG, JPEG, PNG หรือ WebP ขนาดไม่เกิน 20 MB มีด้านที่สั้นที่สุดอย่างน้อย 32 พิกเซล และมีขนาดไม่เกิน 178,956,970 พิกเซล (กว้าง × สูง)
- Name
- model_type
- Type
- string
- ค่าเริ่มต้น standard
- Description
ชนิดของเมช 3D ที่จะสร้าง
ค่าที่ใช้ได้:
standard: เมชที่มีรายละเอียดสูงsmart-topology: เมชจากโมเดล Smart Topology ซึ่งคุณเลือกได้ด้วยai_model(meshy-t2หรือmeshy-t2.5)
เมื่อใช้
smart-topologyMeshy จะไม่สนใจshould_remesh,save_pre_remeshed_modelและdecimation_modeและรับได้เฉพาะtopology: triangle
- Name
- ai_model
- Type
- string
- ค่าเริ่มต้น latest
- Description
โมเดล AI ที่สร้างโมเดล 3D ค่าที่ใช้ได้จะขึ้นอยู่กับ
model_typeโมเดลมาตรฐาน (
model_type: standard):latest: Meshy 7.1meshy-7.1meshy-6meshy-6-litemeshy-7(เลิกใช้): ใช้meshy-7.1แทน
โมเดล Smart Topology (
model_type: smart-topology) จะสร้างรูปสามเหลี่ยม โดยกำหนดจำนวนหน้าได้ด้วยtarget_polycount:meshy-t2: topology ที่สะอาดกว่าและมีชิ้นส่วนที่แยกจากกันโดยธรรมชาติmeshy-t2.5(ค่าเริ่มต้น): รายละเอียดที่คมชัดกว่าสำหรับ asset ในเกม
- Name
- geometry_resolution
- Type
- string
- ค่าเริ่มต้น standard
- Description
รอบการสร้างจีออเมทรี
ค่าที่ใช้ได้:
standard2k: รัน Ultra pass ที่ 2048³4k: รัน Ultra pass ที่ 4096³ เพื่อรายละเอียดพื้นผิวมากที่สุด
2kต้องใช้meshy-7.1,latestหรือmeshy-7ที่เลิกใช้แล้ว4kต้องใช้meshy-7.1หรือlatest
- Name
- ultra_mode
- Type
- boolean
- ⚠ เลิกใช้แล้ว
- ค่าเริ่มต้น false
- Description
ใช้
geometry_resolutionแทนultra_mode: trueเหมือนกับgeometry_resolution: "2k"
- Name
- should_texture
- Type
- boolean
- ค่าเริ่มต้น true
- Description
กำหนดว่าจะสร้างเท็กซ์เจอร์หรือไม่
trueจะคืนโมเดลที่มีเท็กซ์เจอร์ และfalseจะข้ามการใส่เท็กซ์เจอร์และคืนเมชที่ไม่มีเท็กซ์เจอร์
should_texture = true- Name
- texture_model
- Type
- string
- ค่าเริ่มต้น depends on ai_model
- Description
โมเดล AI ที่ใส่เท็กซ์เจอร์ให้กับโมเดล 3D ในงานเดียวกัน หากไม่ระบุจะใช้โมเดลเท็กซ์เจอร์เริ่มต้นสำหรับ
ai_modelของคุณ ค่านี้ไม่มีผลต่อค่าใช้จ่ายด้านเครดิตค่าที่ใช้ได้:
meshy-7: Meshy 7 พร้อม PBR แมป และเท็กซ์เจอร์ความละเอียดสูงสุด 8Kmeshy-n1: Meshy N1 เท็กซ์เจอร์สีพื้นฐาน 2K จากรูปภาพอ้างอิงเท่านั้นmeshy-6-lite: Meshy 6 Lite เท็กซ์เจอร์ 2K ที่ต้นทุนต่ำที่สุดmeshy-6: Meshy 6 ใช้เป็นค่าเริ่มต้นสำหรับai_model: meshy-6เท่านั้น
ทุก
ai_modelรองรับmeshy-7,meshy-n1และmeshy-6-liteตัวเลือกที่โมเดลเท็กซ์เจอร์ที่เลือกไม่รองรับจะคืนค่า400เมื่อใช้meshy-n1หากโมเดลที่สร้างมีมากกว่า 7,999,999 สามเหลี่ยม งานนั้นจะล้มเหลว และ Meshy จะคืนเครดิตให้ เมื่อใช้should_texture: falseMeshy จะไม่สนใจtexture_modelแต่ถ้าเป็นค่าที่ไม่รู้จักก็ยังคืนค่า400อยู่ดีดู Models สำหรับรายละเอียดว่าแต่ละโมเดลเท็กซ์เจอร์ทำอะไร และควรเลือกแบบไหน
- Name
- enable_pbr
- Type
- boolean
- ค่าเริ่มต้น false
- Description
กำหนดว่าจะสร้าง PBR แมป (metallic, roughness และ normal) เพิ่มเติมจากสีพื้นฐานหรือไม่
trueต้องใช้ร่วมกับshould_texture: trueและจะคืนค่า400เมื่อใช้should_texture: falseเมื่อใช้texture_model: meshy-n1การตั้งค่าtrueจะคืนค่า400โมเดลเท็กซ์เจอร์ Meshy 6 ยังสร้าง emission map ด้วย ยกเว้นที่
texture_resolution: 8k
- Name
- texture_resolution
- Type
- string
- ค่าเริ่มต้น 2k
- Description
ขนาดของเท็กซ์เจอร์สีพื้นฐาน เท็กซ์เจอร์ที่ใหญ่กว่าจะเก็บรายละเอียดพื้นผิวได้มากกว่า
ค่าที่ใช้ได้:
2k: 2048×20484k: 4096×40968k: 8192×8192
4kและ8kต้องใช้โมเดลเท็กซ์เจอร์ Meshy 7 หรือ Meshy 6 และจะคืนค่า400เมื่อใช้โมเดลอื่น ที่8kMeshy จะไม่สร้าง emission map
- Name
- hd_texture
- Type
- boolean
- ⚠ เลิกใช้แล้ว
- ค่าเริ่มต้น false
- Description
ใช้
texture_resolutionแทนhd_texture: trueเหมือนกับtexture_resolution: "4k"หากคุณส่งทั้งสองอย่าง Meshy จะใช้texture_resolution
- Name
- texture_prompt
- Type
- string
- Description
ข้อความที่ใช้กำหนดทิศทางของเท็กซ์เจอร์ ความยาวไม่เกิน 800 ตัวอักษร ข้อความที่ยาวกว่านี้จะคืนค่า
400เมื่อใช้texture_model: meshy-n1การส่งค่านี้จะคืนค่า400
- Name
- texture_image_url
- Type
- string
- Description
รูปภาพที่ใช้กำหนดทิศทางของเท็กซ์เจอร์ ในรูปแบบ URL สาธารณะ หรือ Data URI แบบ base64 เช่น
data:image/jpeg;base64,<your base64-encoded image data>รูปภาพต้องเป็นไฟล์ JPG, JPEG, PNG หรือ WebP ขนาดไม่เกิน 20 MB มีด้านที่สั้นที่สุดอย่างน้อย 32 พิกเซล และมีขนาดไม่เกิน 178,956,970 พิกเซล (กว้าง × สูง)Meshy จะใช้เพียงอย่างใดอย่างหนึ่งระหว่าง
texture_promptและtexture_image_urlในการกำหนดทิศทางของเท็กซ์เจอร์ หากคุณส่งทั้งสองอย่าง Meshy จะใช้texture_promptสำหรับค่าใช้จ่ายด้านเครดิตของการใส่เท็กซ์เจอร์ ดู Pricingเมื่อใช้
texture_model: meshy-n1Meshy จะใส่เท็กซ์เจอร์จากรูปภาพนี้โดยถือเป็นมุมมองด้านหน้า หรือจากรูปภาพอินพุตหากคุณไม่ได้ระบุค่านี้การใส่เท็กซ์เจอร์จากรูปภาพอาจทำงานได้ไม่ดีนัก เมื่อรูปทรงของรูปภาพแตกต่างจากจีออเมทรีของโมเดล 3D มาก
- Name
- should_remesh
- Type
- boolean
- ค่าเริ่มต้น true (meshy-6-lite), false (other models)
- Description
กำหนดว่าจะรันขั้นตอนรีเมชหรือไม่ สำหรับโมเดล 3D ที่มีคุณภาพสูงสุด ให้ตั้งค่านี้เป็น
false
should_remesh = true- Name
- topology
- Type
- string
- ค่าเริ่มต้น triangle
- Description
ชนิดของหน้าสำหรับโมเดลที่ถูกรีเมช
ค่าที่ใช้ได้:
quad: เมชที่ประกอบด้วยรูปสี่เหลี่ยมเป็นหลักtriangle: เมชรูปสามเหลี่ยมที่ลดจำนวนหน้าแล้ว
ผลลัพธ์จาก Smart Topology เป็นรูปสามเหลี่ยมเท่านั้น ดังนั้น
quadร่วมกับmeshy-t2หรือmeshy-t2.5จะคืนค่า400เมื่อใช้texture_model: meshy-n1ค่าquadจะคืนค่า400เมื่อโมเดลถูกรีเมช ซึ่งเป็นสิ่งที่meshy-6-liteทำโดยค่าเริ่มต้น
- Name
- decimation_mode
- Type
- integer
- Description
จำนวนหน้าแบบปรับได้ตามระดับ เมื่อคุณตั้งค่านี้ Meshy จะไม่สนใจ
target_polycountค่าที่ใช้ได้:
1: อัลตร้า2: สูง3: ปานกลาง4: ต่ำ
- Name
- save_pre_remeshed_model
- Type
- boolean
- ค่าเริ่มต้น false
- Description
กำหนดว่าจะบันทึก GLB ของโมเดลจากก่อนขั้นตอนรีเมชด้วยหรือไม่ Meshy จะคืนค่านี้ใน
model_urls.pre_remeshed_glb
- Name
- target_polycount
- Type
- integer
- Description
จำนวนหน้าเป้าหมาย ผลลัพธ์อาจแตกต่างจากเป้าหมาย ขึ้นอยู่กับจีออเมทรีของโมเดล
พารามิเตอร์นี้มีผลใน 2 กรณีแยกกัน:
- รีเมช: เมื่อ
should_remeshเป็นtrueบนโมเดลstandardMeshy จะลดจำนวนหน้าของเมชให้ใกล้เคียงกับจำนวนนี้ หากคุณตั้งค่าdecimation_modeMeshy จะใช้ค่านั้นแทน และไม่สนใจtarget_polycount - Smart Topology: เมื่อ
model_typeเป็นsmart-topologyและai_modelเป็นmeshy-t2หรือmeshy-t2.5Meshy จะสร้างโมเดลที่จำนวนหน้านี้ ไม่มีการรันรีเมช และคุณไม่จำเป็นต้องใช้should_remesh
ช่วงค่าและค่าเริ่มต้นขึ้นอยู่กับแต่ละกรณี:
กรณี ช่วงค่า ค่าเริ่มต้น รีเมช 100ถึง30000030000meshy-t2100ถึง150004000meshy-t2.5100ถึง3000015000ค่าที่อยู่นอกช่วงนี้จะคืนค่า
400- รีเมช: เมื่อ
- Name
- symmetry_mode
- Type
- string
- ⚠ เลิกใช้แล้ว
- ค่าเริ่มต้น auto
- Description
ไม่ต้องระบุ เพราะไม่มีผลต่อผลลัพธ์ ค่าของมันเคยควบคุมสมมาตรระหว่างการสร้าง:
off: ไม่มีสมมาตรauto: สมมาตรที่เลือกจากจีออเมทรีของอินพุตon: บังคับให้มีสมมาตร
- Name
- pose_mode
- Type
- string
- ค่าเริ่มต้น ""
- Description
ท่าทางสำหรับโมเดลที่สร้างขึ้น
ค่าที่ใช้ได้:
a-pose: ท่า At-pose: ท่า T""(สตริงว่าง): ไม่มีท่าทางเฉพาะเจาะจง
- Name
- is_a_t_pose
- Type
- boolean
- ⚠ เลิกใช้แล้ว
- ค่าเริ่มต้น false
- Description
ใช้
pose_modeแทน กำหนดว่าจะสร้างโมเดลในท่า A หรือ T หรือไม่
- Name
- surface_mode
- Type
- string
- ⚠ เลิกใช้แล้ว
- Description
ใช้
ai_modelแทน พารามิเตอร์นี้ไม่มีผลต่อผลลัพธ์ เนื่องจากรูปแบบการสร้างโมเดลที่มันเคยเลือกถูกยกเลิกใช้งานแล้วค่าที่ยอมรับคือ
organicและhardค่าอื่นใดจะคืนค่า400
- Name
- image_enhancement
- Type
- boolean
- ค่าเริ่มต้น true
- Description
กำหนดว่าจะปรับปรุงรูปภาพอินพุตก่อนสร้างหรือไม่
falseจะคงลักษณะที่แท้จริงของรูปภาพอินพุตไว้ โดยไม่มีการประมวลผลสไตล์ใด ๆพารามิเตอร์นี้ใช้งานได้เฉพาะกับ
meshy-6,meshy-7.1หรือlatestเมื่อใช้meshy-6-liteหรือmodel_type: smart-topologyจะคืนค่า400
- Name
- remove_lighting
- Type
- boolean
- ค่าเริ่มต้น true
- Description
กำหนดว่าจะลบไฮไลต์และเงาออกจากเท็กซ์เจอร์สีพื้นฐานหรือไม่ ผลลัพธ์จะดูสะอาดขึ้นและทำงานได้ดีกว่าเมื่อใช้ร่วมกับแสงของคุณเอง
พารามิเตอร์นี้มีผลเฉพาะกับโมเดลเท็กซ์เจอร์ Meshy 6 เท่านั้น และโมเดลเท็กซ์เจอร์ที่ไม่รองรับจะคืนค่า
400เมื่อตั้งเป็นtrueเมื่อใช้model_type: smart-topologyหรือใช้ai_model: meshy-6-liteกับโมเดลเท็กซ์เจอร์เริ่มต้นของมัน การส่งค่านี้จะคืนค่า400
- Name
- moderation
- Type
- boolean
- ค่าเริ่มต้น false
- Description
กำหนดว่าจะตรวจสอบอินพุตเหล่านี้เพื่อหาเนื้อหาที่เป็นอันตรายก่อนสร้างหรือไม่:
image_urltexture_image_urltexture_prompt
หาก Meshy ตรวจพบเนื้อหาที่เป็นอันตราย คำขอจะคืนค่า
400และ Meshy จะไม่สร้างงาน
- Name
- target_formats
- Type
- string[]
- Description
รูปแบบไฟล์ที่จะสร้าง Meshy จะสร้างและคืนเฉพาะรูปแบบที่คุณระบุเท่านั้น ซึ่งอาจช่วยลดเวลาของงานได้ หากคุณไม่ระบุค่านี้ Meshy จะสร้างทุกรูปแบบยกเว้น
3mfซึ่งคุณจะได้รับก็ต่อเมื่อระบุไว้เท่านั้นค่าที่ใช้ได้:
glbobjfbxstlusdz3mf
- Name
- auto_size
- Type
- boolean
- ค่าเริ่มต้น false
- Description
กำหนดว่าจะประมาณความสูงจริงของวัตถุด้วย AI vision แล้วปรับขนาดโมเดลให้ตรงกับค่านั้นหรือไม่ Meshy จะวางจุดกำเนิดไว้ที่ด้านล่าง เว้นแต่คุณจะตั้งค่า
origin_at
- Name
- alpha_thumbnail
- Type
- boolean
- ค่าเริ่มต้น false
- Description
กำหนดว่าจะเรนเดอร์ภาพตัวอย่างที่มีพื้นหลังโปร่งใส (RGBA) เพิ่มเติมด้วยหรือไม่ โดยจะคืนค่าใน
alpha_thumbnail_urlเมื่อคุณดึงข้อมูลงานนี้thumbnail_urlจะไม่เปลี่ยนแปลง
- Name
- multi_view_thumbnails
- Type
- boolean
- ค่าเริ่มต้น false
- Description
กำหนดว่าจะเรนเดอร์ภาพตัวอย่างมุมมองด้านหน้า ด้านขวา ด้านหลัง และด้านซ้ายเพิ่มเติมด้วยหรือไม่ โดยจะคืนค่าใน
thumbnail_urlsเมื่อคุณดึงข้อมูลงานนี้thumbnail_urlจะไม่เปลี่ยนแปลงและยังคงแสดงมุมมองด้านหน้า การตั้งค่านี้จะเพิ่มเวลาในการทำงานประมาณ 5 วินาที
auto_size = true- Name
- origin_at
- Type
- string
- ค่าเริ่มต้น bottom
- Description
ตำแหน่งที่จะวางจุดกำเนิดของโมเดล
bottomหรือcenter
ผลลัพธ์ที่ได้
ฟิลด์ result ของการตอบกลับจะเก็บ ID ของงาน รูปภาพเป็น 3D ใหม่
รูปแบบความล้มเหลว
- Name
400 - Bad Request- Description
คำขอนี้ไม่สามารถทำงานได้ ข้อความแสดงข้อผิดพลาดจะระบุปัญหาที่พบ ตัวอย่างเช่น:
- ขาดพารามิเตอร์: ไม่ได้ส่งทั้ง
image_urlและinput_task_id - งานอินพุตไม่ถูกต้อง:
input_task_idไม่ใช่งาน ข้อความเป็นรูปภาพ หรือ รูปภาพเป็นรูปภาพ ที่มีสถานะSUCCEEDEDและสร้างรูปภาพออกมาเพียงรูปเดียว - รูปแบบรูปภาพไม่ถูกต้อง: รูปภาพ
image_urlไม่ใช่ไฟล์ JPG, JPEG, PNG หรือ WebP - เข้าถึง URL ไม่ได้: Meshy ไม่สามารถดาวน์โหลดรูปภาพ
image_urlได้ เนื่องจาก URL คืนค่า404หรือหมดเวลา - รูปภาพใหญ่เกินไป: รูปภาพ
image_urlหรือtexture_image_urlมีขนาดเกิน 20 MB - ขนาดรูปภาพไม่ถูกต้อง: รูปภาพ
image_urlหรือtexture_image_urlมีด้านที่สั้นกว่า 32 พิกเซล หรือมีขนาดเกิน 178,956,970 พิกเซล (กว้าง × สูง) - Data URI ไม่ถูกต้อง: สตริง base64 มีรูปแบบผิดพลาด
- ชุดค่าพารามิเตอร์ไม่ถูกต้อง:
enable_pbrเป็นtrueและshould_textureเป็นfalse - โมเดลไม่รองรับสำหรับ Ultra:
geometry_resolutionเป็น2kหรือ4kโดยใช้ai_modelที่ไม่สามารถรันได้ - โมเดลไม่รองรับสำหรับตัวเลือกรูปภาพ: กรณีใดกรณีหนึ่งต่อไปนี้:
- ส่ง
image_enhancementพร้อมกับai_model: "meshy-6-lite"หรือmodel_type: "smart-topology" - ส่ง
remove_lightingพร้อมกับmodel_type: "smart-topology"หรือพร้อมกับai_model: "meshy-6-lite"และโมเดลเท็กซ์เจอร์เริ่มต้นของมัน
- ส่ง
- โมเดลเท็กซ์เจอร์ไม่ถูกต้อง:
texture_modelไม่ใช่หนึ่งในค่าที่ใช้ได้ - โมเดลเท็กซ์เจอร์ไม่พร้อมใช้งาน:
texture_modelเป็นmeshy-6ร่วมกับai_modelที่ไม่ใช่meshy-6ให้ส่งmeshy-7,meshy-n1หรือmeshy-6-liteหรือไม่ต้องระบุก็ได้ - ตัวเลือกไม่รองรับสำหรับโมเดลเท็กซ์เจอร์: คำขอร้องขอตัวเลือกที่โมเดลเท็กซ์เจอร์ไม่รองรับ เช่น
enable_pbr: trueร่วมกับmeshy-n1หรือเท็กซ์เจอร์4kร่วมกับmeshy-6-liteดู Models
แก้ไขคำขอ แล้วส่งใหม่อีกครั้ง ดู Errors
- ขาดพารามิเตอร์: ไม่ได้ส่งทั้ง
- Name
401 - Unauthorized- Description
API คีย์หายไปหรือไม่ถูกต้อง ตรวจสอบเฮดเดอร์
Authorization
- Name
402 - Payment Required- Description
ตัวอย่างเช่น:
- เครดิตไม่เพียงพอ: บัญชีมีเครดิตไม่เพียงพอสำหรับงานนี้ หรือบัญชีถึงขีดจำกัดเครดิตแล้ว ตรวจสอบยอดคงเหลือเครดิตของคุณ แล้วลองใหม่อีกครั้ง
- แผนฟรี: การสร้างงานต้องใช้แผนแบบชำระเงิน อัปเกรดแผนของคุณในการตั้งค่าการสมัครสมาชิก แล้วลองใหม่อีกครั้ง
- Name
403 - Forbidden- Description
การตรวจสอบเนื้อหาได้บล็อก prompt หรือรูปภาพอินพุต เปลี่ยนอินพุต แล้วลองใหม่อีกครั้ง
- Name
404 - Not Found- Description
input_task_idไม่ตรงกับงานใด ๆ ของคุณ ตรวจสอบ ID ของงาน แล้วส่งคำขออีกครั้ง
- Name
429 - Too Many Requests- Description
คุณเกินการจำกัดอัตราแล้ว รอสักครู่ แล้วลองใหม่อีกครั้ง ดู Rate limits
Get an Image to 3D task
ส่งคืนงานรูปภาพเป็น 3D ตามรหัส ID ของงานนั้น
Request
curl https://api.meshy.ai/openapi/v1/image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "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": null,
"consumed_credits": 30
}
พารามิเตอร์
- Name
- id
- Type
- path
- Description
รหัสงานจากการตอบกลับของการสร้าง
ค่าที่ส่งคืน
ลบงาน Image to 3D
ลบงาน Image to 3D อย่างถาวร รวมถึงโมเดลและข้อมูลของงานนั้น คุณไม่สามารถยกเลิกการลบได้
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/image-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 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."
}
พารามิเตอร์ของพาธ
- Name
- id
- Type
- path
- Description
ID ของงานที่ต้องการลบ
สถานะของงาน
การลบงานที่มีสถานะ PENDING จะคืนเครดิตที่ใช้ไปตอนที่คุณสร้างงานนั้น
งานที่มีสถานะ IN_PROGRESS ไม่สามารถลบได้ คำขอจะส่งคืน 409 Conflict
และงานจะยังคงทำงานต่อไป Meshy จะไม่คืนเครดิตให้กับงานที่เริ่มทำงานไปแล้ว
ดังนั้นการลบงานนั้นจะทำให้คุณเสียทั้งเครดิตและผลลัพธ์ ให้รอจนกว่างานจะถึงสถานะ
SUCCEEDED, FAILED หรือ CANCELED แล้วจึงลบงานนั้น
การลบงานที่อยู่ในสถานะสุดท้าย (SUCCEEDED, FAILED หรือ CANCELED)
จะไม่คืนเครดิต
ค่าที่ส่งกลับ
200 OK เมื่อลบงานสำเร็จ หรือ 409 Conflict เมื่องานมีสถานะ
IN_PROGRESS
List Image to 3D tasks
คืนค่ารายการงาน รูปภาพเป็น 3D ของคุณ
Request
curl https://api.meshy.ai/openapi/v1/image-to-3d?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "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": null,
"consumed_credits": 30
}
]
พารามิเตอร์
- Name
- page_num
- Type
- integer
- ค่าเริ่มต้น 1
- Description
หมายเลขหน้าที่จะคืนค่า สูงสุด
255หากตั้งค่าสูงกว่านี้จะได้ผลลัพธ์400
- Name
- page_size
- Type
- integer
- ค่าเริ่มต้น 10
- Description
จำนวนงานต่อหน้า สูงสุด
100
- Name
- sort_by
- Type
- string
- Description
ลำดับการเรียง
ค่าที่ใช้ได้:
+created_at: เก่าที่สุดก่อน-created_at: ใหม่ที่สุดก่อน
ค่าที่คืนกลับ
รายการแบบแบ่งหน้าของ ออบเจ็กต์งาน รูปภาพเป็น 3D
สตรีมงาน Image to 3D
สตรีมการอัปเดตของงาน รูปภาพเป็น 3D ในรูปแบบ Server-Sent Events (SSE)
Request
curl -N https://api.meshy.ai/openapi/v1/image-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.
// These examples are shortened. Each event holds the full task object.
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "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": null,
"consumed_credits": 30
}
พารามิเตอร์
- Name
- id
- Type
- path
- Description
รหัสงานจากการตอบกลับตอนสร้างงาน
สิ่งที่ส่งกลับ
สตรีมของ อ็อบเจ็กต์งาน รูปภาพเป็น 3D ในรูปแบบ Server-Sent Events
แต่ละอีเวนต์จะมีอ็อบเจ็กต์งานฉบับเต็ม ในรูปแบบเดียวกับที่เอนด์พอยต์ Get ส่งกลับมา ในขณะที่งานยังอยู่ในสถานะ PENDING หรือ IN_PROGRESS ฟิลด์ผลลัพธ์ของงานจะยังไม่มีค่า
The Image to 3D task object
อ็อบเจ็กต์งานรูปภาพเป็น 3D อธิบายการสร้างโมเดล 3D หนึ่งครั้งจากรูปภาพ โดยเก็บสถานะ progress และไฟล์โมเดลเมื่องานสำเร็จ
Properties
Example Image to 3D Task Object
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "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": "",
"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"
}
],
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 30
}
- Name
- id
- Type
- string
- Description
ไอดีของงาน ให้ถือว่าเป็นสตริงทึบ และอย่าพึ่งพารูปแบบของมัน
- Name
- type
- Type
- string
- Description
ประเภทของงาน ซึ่งจะเป็น
image-to-3dเสมอ
- Name
- model_urls
- Type
- object
- Description
URL สำหรับดาวน์โหลดโมเดล 3D ที่สร้างขึ้น หนึ่ง URL ต่อหนึ่งรูปแบบไฟล์ รูปแบบที่งานไม่ได้สร้างจะไม่มีคีย์นั้นเลย แทนที่จะเป็นสตริงว่าง
- Name
glb- Type
- string
- Description
ไฟล์ GLB
- Name
fbx- Type
- string
- Description
ไฟล์ FBX
- Name
obj- Type
- string
- Description
ไฟล์ OBJ
- Name
usdz- Type
- string
- Description
ไฟล์ USDZ
- Name
mtl- Type
- string
- Description
ไฟล์ MTL ซึ่งจะถูกส่งคืนมาพร้อมกับไฟล์ OBJ เมื่อโมเดลมีเท็กซ์เจอร์
- Name
stl- Type
- string
- Description
ไฟล์ STL
- Name
3mf- Type
- string
- Description
ไฟล์ 3MF จะมีให้เฉพาะเมื่อ
target_formatsมี3mfรวมอยู่ด้วย
- Name
pre_remeshed_glb- Type
- string
- Description
ไฟล์ GLB ก่อนการรีเมช จะมีให้เฉพาะเมื่อคุณสร้างงานโดยกำหนดทั้ง
should_remesh: trueและsave_pre_remeshed_model: true
- Name
- thumbnail_url
- Type
- string
- Description
URL สำหรับดาวน์โหลดภาพตัวอย่างของโมเดล 3D เมื่อมี
thumbnail_urlsอยู่ด้วย มันจะเป็นภาพเดียวกับthumbnail_urls.frontMeshy เก็บฟิลด์นี้ไว้เพื่อความเข้ากันได้แบบย้อนหลัง
- Name
- alpha_thumbnail_url
- Type
- string
- Description
URL สำหรับดาวน์โหลดเวอร์ชันของ
thumbnail_urlที่มีพื้นหลังโปร่งใส (RGBA) จะมีให้เฉพาะเมื่อคุณสร้างงานโดยกำหนดalpha_thumbnail: trueและ Meshy เรนเดอร์ภาพตัวอย่างแบบโปร่งใสสำเร็จ
- Name
- thumbnail_urls
- Type
- object
- Description
URL สำหรับดาวน์โหลดภาพตัวอย่างของโมเดล 3D จากสี่ด้าน แต่ละค่าคือ URL ที่ลงนามแล้วของภาพ PNG ขนาด 512×512 ที่เรนเดอร์ด้วยวัสดุและแสงเดียวกันกับ
thumbnail_urlใช้ภาพเหล่านี้เพื่อดูตัวอย่างโมเดลจากหลายมุม เช่น ในไปป์ไลน์แบบ batch โดยไม่ต้องดาวน์โหลดไฟล์ GLBจะมีให้เฉพาะเมื่อคุณสร้างงานโดยกำหนด
multi_view_thumbnails: trueและงานมีสถานะถึงSUCCEEDEDงานที่สร้างโดยไม่ได้กำหนดmulti_view_thumbnails: trueจะไม่มีฟิลด์นี้- 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
prompt ข้อความที่ใช้นำทางเท็กซ์เจอร์
- Name
- texture_image_url
- Type
- string
- Description
URL สำหรับดาวน์โหลดภาพที่ใช้นำทางเท็กซ์เจอร์
- Name
- ultra_mode
- Type
- boolean
- ⚠ เลิกใช้แล้ว
- Description
ให้ใช้
geometry_resolutionแทน
- Name
- geometry_resolution
- Type
- string
- Description
ระดับ Ultra ที่งานใช้ทำงาน คือ
2kหรือ4kงานแบบstandardจะไม่มีฟิลด์นี้
- Name
- progress
- Type
- integer
- Description
ความคืบหน้าของงานในรูปแบบเปอร์เซ็นต์ จะเป็น
0จนกว่างานจะเริ่ม และเป็น100เมื่องานสำเร็จ
- Name
- started_at
- Type
- timestamp
- Description
เวลาที่งานเริ่มต้น เป็นหน่วยมิลลิวินาทีแบบ Unix จะเป็น
0จนกว่างานจะเริ่ม
- Name
- created_at
- Type
- timestamp
- Description
เวลาที่สร้างงาน เป็นหน่วยมิลลิวินาทีแบบ Unix
- Name
- expires_at
- Type
- timestamp
- Description
เวลาที่ผลลัพธ์ของงานจะหมดอายุ เป็นหน่วยมิลลิวินาทีแบบ Unix
- Name
- finished_at
- Type
- timestamp
- Description
เวลาที่งานเสร็จสิ้น เป็นหน่วยมิลลิวินาทีแบบ Unix จะเป็น
0จนกว่างานจะเสร็จสิ้น
- Name
- status
- Type
- string
- Description
สถานะของงาน หนึ่งใน
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDหรือCANCELED
- Name
- texture_urls
- Type
- array
- Description
เท็กซ์เจอร์แมปที่งานสร้างขึ้น ในรูปแบบอาร์เรย์ของอ็อบเจ็กต์ โดยปกติจะมีอ็อบเจ็กต์เดียว ซึ่งมีฟิลด์ดังนี้
- Name
base_color- Type
- string
- Description
URL สำหรับดาวน์โหลดแมปสีพื้นฐาน
- Name
metallic- Type
- string
- Description
URL สำหรับดาวน์โหลดแมปโลหะ ฟิลด์นี้จะไม่มีเมื่อคุณสร้างงานโดยกำหนด
enable_pbr: false
- Name
normal- Type
- string
- Description
URL สำหรับดาวน์โหลดนอร์มัลแมป ฟิลด์นี้จะไม่มีเมื่อคุณสร้างงานโดยกำหนด
enable_pbr: false
- Name
roughness- Type
- string
- Description
URL สำหรับดาวน์โหลดแมปความหยาบ ฟิลด์นี้จะไม่มีเมื่อคุณสร้างงานโดยกำหนด
enable_pbr: false
- Name
emission- Type
- string
- Description
URL สำหรับดาวน์โหลดแมปการเปล่งแสง Meshy จะรวมฟิลด์นี้ไว้เฉพาะเมื่อคุณสร้างงานโดยมีเงื่อนไขทั้งหมดนี้:
ai_model: meshy-6พร้อมโมเดลเท็กซ์เจอร์ค่าเริ่มต้นของมันenable_pbr: truetexture_resolutionเป็น2kหรือ4k
- Name
- preceding_tasks
- Type
- integer
- Description
จำนวนงานที่อยู่ก่อนหน้างานนี้ในคิว ค่านี้มีความหมายเฉพาะขณะที่งานมีสถานะเป็น
PENDINGเท่านั้น
- Name
- task_error
- Type
- object
- Description
รายละเอียดข้อผิดพลาดเมื่องานล้มเหลว จะเป็น
nullเว้นแต่สถานะจะเป็นFAILEDดู ข้อผิดพลาด
- Name
- consumed_credits
- Type
- integer
- Description
จำนวนเครดิตที่งานใช้ไป จะมีให้เมื่อสถานะเป็น
PENDING,IN_PROGRESSหรือSUCCEEDEDจะเป็น0สำหรับงานที่FAILEDเนื่องจาก Meshy จะคืนเครดิตเมื่องานล้มเหลว