ลองใช้ API Google Gemini Omni 1.1 Flash ทำเฟรมแรกให้เคลื่อนไปยังเฟรมจบที่เลือกได้ ควบคุมภาพให้ต่อเนื่อง
Google Gemini Omni 1.1 Flash Image-to-Video API ช่วยให้นักพัฒนาเปลี่ยนภาพที่ระบุให้เป็นวิดีโอ AI ที่กำกับได้ ใช้ภาพนิ่งเป็นจุดเริ่มต้นทางภาพ เพิ่มคำอธิบายการเคลื่อนไหวด้วยภาษาธรรมชาติ และสร้างฉากที่ ดำเนินไปด้วยการเคลื่อนกล้องและการเคลื่อนไหวอย่างตั้งใจ ภาพจบซึ่งเป็นตัวเลือกสามารถกำหนดจุดหมายของลำดับภาพได้ ทำให้ Gemini video API เหมาะสำหรับเวิร์กโฟลว์แอนิเมชันที่ควบคุมได้บน Best Image AI
แอนิเมชันวิดีโอที่ขับเคลื่อนด้วยภาพ: เริ่มจากภาพที่อัปโหลดและสร้างการเคลื่อนไหวโดยอิงกับตัวแบบ องค์ประกอบภาพ แสง และทิศทางภาพโดยรวม
การกำหนดเฟรมจบที่เป็นตัวเลือก: เพิ่มภาพจบเมื่อคลิปต้องการจุดหมายทางภาพที่ชัดเจนยิ่งขึ้นหรือ การเปลี่ยนผ่านระหว่างสองสถานะที่มีการกำกับ
การควบคุมการเคลื่อนไหวด้วยภาษาธรรมชาติ: อธิบายการเคลื่อนกล้อง พฤติกรรมของตัวแบบ การเปลี่ยนแปลงของสภาพแวดล้อม และจังหวะ ควบคู่กับภาพอินพุต
การดำเนินฉากที่สอดคล้องกัน: ใช้ภาพอินพุตเป็นจุดยึดทางภาพขณะกำกับลำดับที่ให้ความรู้สึกเชื่อมโยง แทนที่จะแยกขาดจากเฟรมเริ่มต้น
การนำเสนอวิดีโอที่ยืดหยุ่น: สร้างเอาต์พุตแนวนอนหรือแนวตั้งสำหรับชิ้นงานแคมเปญ วิดีโอโซเชียล เรื่องราว ผลิตภัณฑ์ และประสบการณ์ที่เน้นอุปกรณ์เคลื่อนที่
ตัวเลือกคุณภาพและระยะเวลา: ปรับคุณภาพเอาต์พุตและความยาวคลิปที่กระชับให้เหมาะกับการสร้างต้นแบบ การตรวจสอบ การเผยแพร่ หรือความต้องการด้านการผลิต
อินพุต: ภาพเริ่มต้นพร้อมพรอมต์การเคลื่อนไหวด้วยภาษาธรรมชาติที่อธิบายการเคลื่อนไหว ลักษณะการทำงานของกล้อง และพัฒนาการของฉากตามต้องการ
คำแนะนำเพิ่มเติม: สามารถระบุภาพจบเพื่อให้แอนิเมชันมีสถานะภาพสุดท้ายที่ควบคุมได้
เอาต์พุต: คลิปวิดีโอที่สร้างขึ้นและส่งมอบผ่านเวิร์กโฟลว์ Gemini Omni 1.1 Flash image-to-video API
การควบคุมรูปแบบ: เลือกองค์ประกอบแนวนอนหรือแนวตั้ง คุณภาพเอาต์พุต และระยะเวลาที่กระชับให้เหมาะกับ ช่องทางเป้าหมาย
ความสามารถ: แอนิเมชันภาพ การกำหนดภาพตั้งแต่เริ่มต้นจนจบ การเคลื่อนกล้องที่กำกับด้วยพรอมต์ พัฒนาการของฉาก และ การปรับแต่งงานสร้างสรรค์ซ้ำ
แอนิเมชันภาพผลิตภัณฑ์: เพิ่มการเคลื่อนไหว พลังการเคลื่อนกล้อง และชีวิตชีวาของสภาพแวดล้อมให้กับภาพถ่ายผลิตภัณฑ์และ ภาพหลักของแคมเปญ
การนำคอนเทนต์โซเชียลกลับมาใช้ใหม่: เปลี่ยนโพสต์ภาพนิ่ง ภาพบทความ และอาร์ตเวิร์กเปิดตัวให้เป็นแนวคิดวิดีโอแนวตั้งหรือ จอกว้างแบบสั้น
การพัฒนาสตอรีบอร์ด: ใช้เฟรมแนวคิดและคีย์อาร์ตเพื่อทดสอบว่าไอเดียภาพอาจเคลื่อนไหวอย่างไรก่อนตัดสินใจทำ โปรดักชันขนาดใหญ่
รูปแบบงานสร้างสรรค์ของแบรนด์: สร้างรูปแบบที่ขับเคลื่อนด้วยการเคลื่อนไหวจากทิศทางภาพที่ได้รับอนุมัติ พร้อมคง ภาพเริ่มต้นที่ชัดเจนสำหรับเวิร์กโฟลว์
วิดีโออีคอมเมิร์ซและโฆษณา: สร้างช่วงนำเสนอผลิตภัณฑ์ที่กระชับ ลำดับภาพไลฟ์สไตล์ และชิ้นงานส่งเสริมการขายจาก สื่อภาพที่มีอยู่
หมายเหตุ ใช้ภาพต้นฉบับที่ชัดเจนและมีคุณภาพสูง พร้อมอธิบายการเคลื่อนไหวที่ต้องการอย่างแม่นยำ พรอมต์ที่ระบุ การเคลื่อนไหวของตัวแบบ ทิศทางกล้อง และพฤติกรรมของสภาพแวดล้อมมักให้คำแนะนำด้านแอนิเมชันที่มีประโยชน์กว่า
Gemini Omni 1.1 Flash เทียบกับ Google Veo Image-to-Video: Google Veo มีเวิร์กโฟลว์ภาพเป็นวิดีโอที่เป็นที่ยอมรับ Gemini Omni 1.1 Flash เพิ่มเส้นทางที่เชื่อมโยงกันสำหรับแอนิเมชันภาพ การสร้างข้อความ วิดีโอที่ใช้ภาพอ้างอิง และการ ตัดต่อวิดีโอภายในตระกูลโมเดลเดียว
Gemini Omni 1.1 Flash เทียบกับ Runway Image-to-Video: Runway มีชุดเครื่องมือสำหรับครีเอเตอร์ที่หลากหลายเพื่อสร้างภาพเคลื่อนไหว ส่วน Gemini Omni 1.1 Flash ออกแบบมาสำหรับนักพัฒนาที่ต้องการแอนิเมชันจากภาพและการกำกับด้วยพรอมต์ในเวิร์กโฟลว์ที่ใช้ API
Gemini Omni 1.1 Flash เทียบกับ Kling Image-to-Video: Kling เป็นตัวเลือกยอดนิยมสำหรับแอนิเมชันภาพที่มีเอกลักษณ์ ส่วน Gemini Omni 1.1 Flash รองรับเส้นทางที่ใช้งานได้จริงตั้งแต่ภาพต้นฉบับและคำอธิบายการเคลื่อนไหวไปจนถึงเอาต์พุต พร้อมตัวเลือกกำหนด เฟรมจบ
Gemini Omni 1.1 Flash เทียบกับ Pika Image-to-Video: Pika มุ่งเน้นการทดลองทางภาพที่เข้าถึงง่าย ส่วน Gemini Omni 1.1 Flash เหมาะอย่างยิ่งสำหรับทีมผลิตภัณฑ์ที่ต้องการแอนิเมชันภาพที่ควบคุมได้ภายในการผสานระบบที่ปรับขนาดได้
Gemini Omni 1.1 Flash เทียบกับ Luma Dream Machine: Luma Dream Machine เป็นที่ยอมรับด้านการคิดไอเดียภาพอย่างรวดเร็ว ส่วน Gemini Omni 1.1 Flash สร้างความแตกต่างด้วยการควบคุมที่ขับเคลื่อนด้วยภาพ ตัวเลือกกำหนดภาพจบ และเวิร์กโฟลว์วิดีโอที่เกี่ยวข้อง ซึ่งพร้อมใช้งานผ่านตระกูล API เดียวกัน
const response = await fetch('https://api.flaq.ai/api/v1/video/task', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model_name: 'gemini-omni-1.1-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
})
});
const { data } = await response.json();
const taskId = data.task_id;
// Step 2: Poll for results
const taskId = data.task_id;
const pollResult = async (taskId) => {
const res = await fetch(`https://api.flaq.ai/api/v1/video/${taskId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
return res.json();
};
while (true) {
const pollResultData = await pollResult(taskId);
const status = pollResultData.data.task_status;
if (status === 'succeed') {
console.log(pollResultData.data.task_result.videos[].);
;
}
(status === ) {
.(pollResultData..);
;
}
( (resolve, ));
}
import requests
response = requests.post(
'https://api.flaq.ai/api/v1/video/task',
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
json={
'model_name': 'gemini-omni-1.1-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
}
)
result = response.json()
task_id = result['data']['task_id']
curl -X POST https://api.flaq.ai/api/v1/video/task \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model_name": "gemini-omni-1.1-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
}'
# Step 2: Poll for results
# Replace {task_id} with the task_id returned from the submit response
curl -X GET "https://api.flaq.ai/api/v1/video/{task_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
# Step 2: Poll for results
task_id = response.json()['data']['task_id']
poll_url = f"https://api.flaq.ai/api/v1/video/{task_id}"
while True:
poll_result = requests.get(poll_url, headers={'Authorization': 'Bearer YOUR_API_KEY'}).json()
status = poll_result['data']['task_status']
if status == 'succeed':
print(poll_result['data']['task_result']['videos'][0]['url'])
break
if status == 'failed':
print(poll_result['data']['task_status_msg'])
break
time.sleep(10)