# Gemini Omni 1.2 Flash API เอกสารอ้างอิง API ฉบับสมบูรณ์สำหรับโมเดลสร้างวิดีโอ Google Gemini Omni 1.2 Flash ## รุ่นของโมเดล API นี้รองรับโมเดล 4 รุ่นดังต่อไปนี้ | โมเดล | ID | คำอธิบาย | |-------|-----|-------------| | **Gemini Omni 1.2 Flash Text to Video** | `gemini-omni-1.2-flash-text-to-video` | สร้างวิดีโอจากพรอมต์ข้อความ | | **Gemini Omni 1.2 Flash Image to Video** | `gemini-omni-1.2-flash-image-to-video` | สร้างภาพเคลื่อนไหวจากภาพเริ่มต้นที่ต้องระบุ โดยเลือกใช้ภาพเฟรมสุดท้ายกำกับได้ | | **Gemini Omni 1.2 Flash Video Edit** | `gemini-omni-1.2-flash-video-edit` | แก้ไขวิดีโอที่มีอยู่ตามคำสั่งในพรอมต์ | | **Gemini Omni 1.2 Flash Reference to Video** | `gemini-omni-1.2-flash-reference-to-video` | สร้างวิดีโอจากภาพอ้างอิง วิดีโออ้างอิง หรือทั้งสองอย่าง | ## ตารางเปรียบเทียบ | คุณสมบัติ | สร้างวิดีโอจากข้อความ | สร้างวิดีโอจากภาพ | แก้ไขวิดีโอ | สร้างวิดีโอจากสื่ออ้างอิง | |---------|---------------|----------------|------------|--------------------| | อินพุตหลัก | พรอมต์ข้อความ | ภาพเริ่มต้นและพรอมต์ข้อความ | วิดีโอต้นฉบับและพรอมต์ข้อความ | พรอมต์ข้อความและภาพหรือวิดีโออ้างอิงอย่างน้อย 1 รายการ | | ระยะเวลา | 3–15 วินาที | 3–15 วินาที หรือ 3–10 วินาทีเมื่อระบุเฟรมสุดท้าย | วิดีโอต้นฉบับต้องยาวไม่เกิน 10 วินาที | 3–15 วินาที | | ความละเอียดที่รองรับ | 360p, 720p, 1080p, 4k | 360p, 720p, 1080p, 4k | 360p, 720p, 1080p, 4k | 360p, 720p, 1080p, 4k | | อัตราส่วนภาพ | 16:9, 9:16 | 16:9, 9:16 | ไม่รองรับ | 16:9, 9:16 | | อินพุตเสริม | ไม่มี | ภาพเฟรมสุดท้าย | ไม่มี | ภาพสูงสุด 10 ภาพและวิดีโอสูงสุด 3 คลิป โดยต้องระบุสื่ออ้างอิงอย่างน้อย 1 รายการ | ## เอนด์พอยต์ที่ใช้ร่วมกัน โมเดล Gemini Omni 1.2 Flash ทุกรุ่นใช้เอนด์พอยต์สำหรับส่งงานวิดีโอดังนี้ ``` POST /api/v1/video/task ``` ## Gemini Omni 1.2 Flash Text to Video ### พารามิเตอร์ที่จำเป็น | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | |-----------|------|-------------| | `model_name` | string | ต้องเป็น `"gemini-omni-1.2-flash-text-to-video"` | | `prompt` | string | ข้อความอธิบายวิดีโอที่ต้องการสร้าง | | `aspect_ratio` | string | อัตราส่วนภาพของวิดีโอผลลัพธ์ เลือก `"16:9"` หรือ `"9:16"` | | `resolution` | string | ความละเอียดของวิดีโอผลลัพธ์ เลือก `"360p"`, `"720p"`, `"1080p"` หรือ `"4k"` | | `duration` | integer | ความยาวของวิดีโอผลลัพธ์ ตั้งแต่ 3 ถึง 15 วินาที | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/video/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'gemini-omni-1.2-flash-text-to-video', prompt: 'A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset', aspect_ratio: '16:9', resolution: '1080p', duration: 12 }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Gemini Omni 1.2 Flash Image to Video ### พารามิเตอร์ที่จำเป็น | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | |-----------|------|-------------| | `model_name` | string | ต้องเป็น `"gemini-omni-1.2-flash-image-to-video"` | | `prompt` | string | ข้อความอธิบายการเคลื่อนไหวและการดำเนินฉากที่ต้องการ | | `image_url` | string | URL ของภาพเฟรมแรกที่จำเป็นต้องระบุ | | `aspect_ratio` | string | อัตราส่วนภาพของวิดีโอผลลัพธ์ เลือก `"16:9"` หรือ `"9:16"` | | `resolution` | string | ความละเอียดของวิดีโอผลลัพธ์ เลือก `"360p"`, `"720p"`, `"1080p"` หรือ `"4k"` | | `duration` | integer | ความยาวของวิดีโอผลลัพธ์เป็นวินาที ระบุได้ตั้งแต่ 3 ถึง 15 หากไม่มีเฟรมสุดท้าย หรือตั้งแต่ 3 ถึง 10 เมื่อระบุ `image_end_url` | ### พารามิเตอร์เสริม | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | |-----------|------|-------------| | `image_end_url` | string | URL ของภาพเฟรมสุดท้าย (ระบุหรือไม่ก็ได้) หากระบุ ค่าของ `duration` ต้องอยู่ระหว่าง 3 ถึง 10 วินาที | ### ตัวอย่างคำขอ ```javascript { model_name: 'gemini-omni-1.2-flash-image-to-video', prompt: 'The girl walks toward the camera while the city lights shimmer behind her', image_url: 'https://example.com/start-frame.jpg', image_end_url: 'https://example.com/end-frame.jpg', aspect_ratio: '9:16', resolution: '1080p', duration: 8 } ``` ## Gemini Omni 1.2 Flash Video Edit ### พารามิเตอร์ที่จำเป็น | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | |-----------|------|-------------| | `model_name` | string | ต้องเป็น `"gemini-omni-1.2-flash-video-edit"` | | `prompt` | string | ข้อความระบุคำสั่งแก้ไขวิดีโอ | | `video_url` | string | URL ของวิดีโอต้นฉบับ ซึ่งต้องยาวไม่เกิน 10 วินาที | | `resolution` | string | ความละเอียดของวิดีโอผลลัพธ์ เลือก `"360p"`, `"720p"`, `"1080p"` หรือ `"4k"` | **หมายเหตุ:** โมเดลแก้ไขวิดีโอไม่รองรับ `aspect_ratio` หรือ `duration` โปรดละพารามิเตอร์ทั้งสองนี้เมื่อส่งคำขอ ### ตัวอย่างคำขอ ```javascript { model_name: 'gemini-omni-1.2-flash-video-edit', prompt: 'A small ball rolls into the scene and captures the attention of the cat', video_url: 'https://example.com/source-video.mp4', resolution: '1080p' } ``` ## Gemini Omni 1.2 Flash Reference to Video ใช้ภาพอ้างอิงและวิดีโออ้างอิงแยกกันหรือร่วมกันได้ โดยต้องระบุภาพหรือวิดีโออ้างอิงอย่างน้อย 1 รายการใน `images` หรือ `videos` ### พารามิเตอร์ที่จำเป็น | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | |-----------|------|-------------| | `model_name` | string | ต้องเป็น `"gemini-omni-1.2-flash-reference-to-video"` | | `prompt` | string | ข้อความอธิบายวิดีโอที่ต้องการสร้าง | | `aspect_ratio` | string | อัตราส่วนภาพของวิดีโอผลลัพธ์ เลือก `"16:9"` หรือ `"9:16"` | | `resolution` | string | ความละเอียดของวิดีโอผลลัพธ์ เลือก `"360p"`, `"720p"`, `"1080p"` หรือ `"4k"` | | `duration` | integer | ความยาวของวิดีโอผลลัพธ์ ตั้งแต่ 3 ถึง 15 วินาที | ### อินพุตเสริมสำหรับสื่ออ้างอิง | พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | |-----------|------|-------------| | `images` | string[] | URL ของภาพอ้างอิงสูงสุด 10 ภาพ ละได้หากระบุวิดีโออ้างอิงแล้ว | | `videos` | string[] | URL ของวิดีโออ้างอิงสูงสุด 3 คลิป แต่ละคลิปต้องยาวไม่เกิน 3 วินาที ละได้หากระบุภาพอ้างอิงแล้ว | ### ตัวอย่างคำขอ ```javascript { model_name: 'gemini-omni-1.2-flash-reference-to-video', prompt: 'Use the references to create a cinematic shot of a small boat approaching from the distance', aspect_ratio: '16:9', resolution: '1080p', duration: 12, images: ['https://example.com/boat-reference.jpg'], videos: ['https://example.com/motion-reference.mp4'] } ``` ## รูปแบบการตอบกลับ ### การตอบกลับครั้งแรก ทุกโมเดลจะส่งคืน `task_id` สำหรับใช้ตรวจสอบสถานะเป็นระยะ ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/video/{task_id}", "task_status": "submitted" } } ``` ### การตอบกลับเมื่อตรวจสอบสถานะ เรียก `GET /api/v1/video/{taskId}` เป็นระยะเพื่อตรวจสอบสถานะ ```json { "code": 0, "message": "success", "data": { "task_id": "{task_id}", "response_url": "https://api.flaq.ai/api/v1/video/{task_id}", "task_status": "succeed", "task_status_msg": null, "task_result": { "credit": 0.2, "videos": [ { "url": "https://example.com/generated-video.mp4" } ] } } } ``` ### ค่าสถานะ - `submitted`: รับงานแล้วและอยู่ระหว่างรอประมวลผล - `processing`: กำลังสร้างวิดีโอ - `succeed`: สร้างวิดีโอเสร็จแล้ว - `failed`: สร้างวิดีโอไม่สำเร็จ ## แนวทางปฏิบัติที่แนะนำ 1. **การเขียนพรอมต์** อธิบายตัวแบบ การกระทำ การเคลื่อนกล้อง แสง และการดำเนินฉากให้ชัดเจน 2. **การตั้งค่าที่จำเป็น** ระบุความละเอียดที่รองรับทุกครั้ง และสำหรับทุกรุ่นยกเว้นรุ่นแก้ไขวิดีโอ ให้ระบุอัตราส่วนภาพและระยะเวลาที่รองรับด้วย 3. **ภาพอินพุต** ใช้ URL สาธารณะที่เข้าถึงได้อย่างสม่ำเสมอสำหรับภาพเริ่มต้น ภาพเฟรมสุดท้าย และภาพอ้างอิง เมื่อระบุภาพเฟรมสุดท้าย ให้ตั้งค่า `duration` ระหว่าง 3 ถึง 10 วินาที 4. **อินพุตสำหรับแก้ไขวิดีโอ** ตรวจสอบว่าวิดีโอต้นฉบับยาวไม่เกิน 10 วินาทีก่อนส่งคำขอ 5. **ข้อจำกัดของสื่ออ้างอิง** ระบุภาพหรือวิดีโออ้างอิงอย่างน้อย 1 รายการ โดยส่งภาพได้ไม่เกิน 10 ภาพและวิดีโอไม่เกิน 3 คลิป วิดีโออ้างอิงแต่ละคลิปต้องยาวไม่เกิน 3 วินาที