# Meshy 7 API เอกสารอ้างอิง API ฉบับสมบูรณ์สำหรับโมเดลสร้าง 3D ของ Meshy 7 ## ประเภทของโมเดล | โมเดล | คำอธิบาย | | -------------------------- | -------------------------------------------------- | | `meshy-v7-text-to-3d` | สร้างโมเดล 3D จากคำอธิบายข้อความ | | `meshy-v7-image-to-3d` | สร้างโมเดล 3D จากภาพเดียว | | `meshy-v7-multiview-to-3d` | สร้างโมเดล 3D จากภาพอ้างอิงหลายภาพ | ## เอนด์พอยต์ ```text POST /api/v1/3d/task GET /api/v1/3d/{task_id} ``` ## สร้าง 3D จากข้อความด้วย Meshy 7 ### พารามิเตอร์ที่จำเป็น | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | | ------------ | ------ | -------------------------------------------- | | `model_name` | string | ต้องเป็น `meshy-v7-text-to-3d` | | `prompt` | string | คำอธิบายข้อความของโมเดล 3D ที่จะสร้าง ความยาว 1–600 อักขระ | ### พารามิเตอร์ที่ไม่บังคับ | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | | ------------------ | ------- | ---------------------------------------------------------------------- | | `topology` | string | โทโพโลยีหลังสร้างเมชใหม่: `triangle` หรือ `quad` ค่าเริ่มต้นคือ `triangle` | | `target_polycount` | integer | จำนวนโพลีกอนเป้าหมายหลังสร้างเมชใหม่ ช่วง: 100–300000 ค่าเริ่มต้นคือ 30000 | | `remesh` | boolean | ระบุว่าจะสร้างเมชใหม่หรือไม่ ค่าเริ่มต้นคือ `true` | | `symmetry_mode` | string | โหมดสมมาตร: `off`, `auto` หรือ `on` ค่าเริ่มต้นคือ `auto` | | `pose_mode` | string | ท่าทางของโมเดลรูปร่างมนุษย์: `a-pose` หรือ `t-pose` โดยค่าเริ่มต้นจะไม่ระบุท่าทาง | | `pbr` | boolean | ระบุว่าจะสร้างเท็กซ์เจอร์วัสดุ PBR หรือไม่ ค่าเริ่มต้นคือ `false` | | `texture_prompt` | string | คำอธิบายข้อความที่ใช้กำหนดแนวทางการสร้างเท็กซ์เจอร์ สูงสุด 600 อักขระ | | `texture_image` | string | URL ภาพอ้างอิงที่ใช้กำหนดแนวทางการสร้างเท็กซ์เจอร์ | | `seed` | integer | ค่าซีดสุ่ม ค่าเริ่มต้นคือ `-1` ซึ่งจะสร้างผลลัพธ์แบบสุ่ม | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/3d/task', { method: 'POST', headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ model_name: 'meshy-v7-text-to-3d', prompt: 'A stylized red panda explorer wearing a small canvas backpack', topology: 'quad', remesh: true, symmetry_mode: 'auto', pose_mode: 'a-pose', pbr: true, texture_prompt: 'Hand-painted fur and weathered canvas with warm autumn colors', texture_image: 'https://example.com/red-panda-texture.png', }), }); const { data } = await response.json(); const taskId = data.task_id; ``` ## สร้าง 3D จากภาพด้วย Meshy 7 ### พารามิเตอร์ที่จำเป็น | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | | ------------ | ------ | ------------------------------------------ | | `model_name` | string | ต้องเป็น `meshy-v7-image-to-3d` | | `image_url` | string | URL ของภาพอินพุตที่เข้าถึงได้แบบสาธารณะ | ### พารามิเตอร์ที่ไม่บังคับ | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | | ------------------ | ------- | ---------------------------------------------------------------------- | | `topology` | string | โทโพโลยีหลังสร้างเมชใหม่: `triangle` หรือ `quad` ค่าเริ่มต้นคือ `triangle` | | `target_polycount` | integer | จำนวนโพลีกอนเป้าหมายหลังสร้างเมชใหม่ ช่วง: 100–300000 ค่าเริ่มต้นคือ 30000 | | `remesh` | boolean | ระบุว่าจะสร้างเมชใหม่หรือไม่ ค่าเริ่มต้นคือ `true` | | `symmetry_mode` | string | โหมดสมมาตร: `off`, `auto` หรือ `on` ค่าเริ่มต้นคือ `auto` | | `pose_mode` | string | ท่าทางของโมเดลรูปร่างมนุษย์: `a-pose` หรือ `t-pose` ค่าเริ่มต้นคือ `a-pose` | | `pbr` | boolean | ระบุว่าจะสร้างเท็กซ์เจอร์วัสดุ PBR หรือไม่ ค่าเริ่มต้นคือ `false` | | `texture_prompt` | string | คำอธิบายข้อความที่ใช้กำหนดแนวทางการสร้างเท็กซ์เจอร์ สูงสุด 600 อักขระ | | `texture_image` | string | URL ภาพอ้างอิงที่ใช้กำหนดแนวทางการสร้างเท็กซ์เจอร์ | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/3d/task', { method: 'POST', headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ model_name: 'meshy-v7-image-to-3d', image_url: 'https://example.com/ceramic-lamp.png', topology: 'triangle', remesh: true, symmetry_mode: 'auto', pose_mode: 'a-pose', pbr: true, texture_prompt: 'Glazed blue ceramic with subtle gold details', texture_image: 'https://example.com/ceramic-reference.png', }), }); const { data } = await response.json(); const taskId = data.task_id; ``` ## สร้าง 3D จากภาพหลายมุมมองด้วย Meshy 7 ### พารามิเตอร์ที่จำเป็น | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | | ------------ | -------- | ------------------------------------------------ | | `model_name` | string | ต้องเป็น `meshy-v7-multiview-to-3d` | | `images` | string[] | URL ภาพอ้างอิง 1–4 รายการ ไม่จำเป็นต้องเรียงตามมุมมอง | ### พารามิเตอร์ที่ไม่บังคับ | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | | ------------------ | ------- | ---------------------------------------------------------------------- | | `topology` | string | โทโพโลยีหลังสร้างเมชใหม่: `triangle` หรือ `quad` ค่าเริ่มต้นคือ `triangle` | | `target_polycount` | integer | จำนวนโพลีกอนเป้าหมายหลังสร้างเมชใหม่ ช่วง: 100–300000 ค่าเริ่มต้นคือ 30000 | | `remesh` | boolean | ระบุว่าจะสร้างเมชใหม่หรือไม่ ค่าเริ่มต้นคือ `true` | | `symmetry_mode` | string | โหมดสมมาตร: `off`, `auto` หรือ `on` ค่าเริ่มต้นคือ `auto` | | `pose_mode` | string | ท่าทางของโมเดลรูปร่างมนุษย์: `a-pose` หรือ `t-pose` โดยค่าเริ่มต้นจะไม่ระบุท่าทาง | | `pbr` | boolean | ระบุว่าจะสร้างเท็กซ์เจอร์วัสดุ PBR หรือไม่ ค่าเริ่มต้นคือ `false` | | `texture_prompt` | string | คำอธิบายข้อความที่ใช้กำหนดแนวทางการสร้างเท็กซ์เจอร์ สูงสุด 600 อักขระ | | `texture_image` | string | URL ภาพอ้างอิงที่ใช้กำหนดแนวทางการสร้างเท็กซ์เจอร์ | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/3d/task', { method: 'POST', headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ model_name: 'meshy-v7-multiview-to-3d', images: [ 'https://example.com/chair-front.png', 'https://example.com/chair-side.png', 'https://example.com/chair-back.png', ], topology: 'quad', remesh: true, symmetry_mode: 'auto', pbr: true, texture_prompt: 'Natural walnut wood and woven cream fabric', texture_image: 'https://example.com/chair-material-reference.png', }), }); const { data } = await response.json(); const taskId = data.task_id; ``` ## รูปแบบการตอบกลับ ### การส่งงาน ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/3d/{task_id}", "task_status": "submitted" } } ``` ### การตรวจสอบสถานะงาน ```javascript const response = await fetch('https://api.flaq.ai/api/v1/3d/{task_id}', { headers: { Authorization: 'Bearer YOUR_API_KEY' }, }); const { data } = await response.json(); console.log(data.task_status); ``` ### งานที่เสร็จสมบูรณ์ ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/3d/{task_id}", "task_status": "succeed", "task_status_msg": null, "task_result": { "credit": 0.2, "files": [{ "url": "https://example.com/generated-model.glb" }] } } } ``` ### ค่าสถานะงาน - `submitted`: ส่งงานแล้ว - `processing`: กำลังประมวลผลงาน - `succeed`: งานเสร็จสมบูรณ์แล้ว - `failed`: งานล้มเหลว