Loading...
Loading...
Animate a still image into video with Gemini Omni 1.1 Flash. The source image becomes the first frame and drives the generated motion.
मॉडल चलाने के लिए साइन इन करें
No output yet
Run the model to see generated results.
import requests
result = requests.post(
'https://api.e2x.ai/v1/jobs/submit',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'model': 'google/omni-1.1-flash/image-to-video',
'input': {}
}
)import time
job_id = result.json()['jobId']
while True:
response = requests.get(
f'https://api.e2x.ai/v1/jobs/{'{job_id}'}',
headers={'Authorization': f'Bearer {'{API_KEY}'}'}
)
data = response.json()['data']
if data['status'] == 'completed':
print('Done!', data['outputs'][0]['url'])
break
elif data['status'] == 'failed':
raise Exception(f"Job failed: {'{'}data['error']['message']{'}'}")
time.sleep(2)अवधि और रिज़ॉल्यूशन के अनुसार प्रति जनरेशन अनुमानित लागत। आप केवल उसी के लिए भुगतान करते हैं जो आप चलाते हैं।
Gemini Omni 1.1 Flash 27 अगस्त 2026 को Google पर general availability तक पहुँचा। यह Veo का नहीं, Gemini फ़ैमिली का सदस्य है, और हम इसकी image-to-video capability को google/omni-1.1-flash/image-to-video के रूप में खोलते हैं। बिलिंग तैयार वीडियो के प्रति सेकंड होती है — 720p पर $0.09 प्रति सेकंड, $0.15 की लिस्ट कीमत के मुक़ाबले, क्योंकि लगातार चलने वाली 40% छूट चारों capabilities पर लागू है। डिफ़ॉल्ट आठ-सेकंड clip $0.72 का। ज़रूरी fields: prompt और image_url।
पहली कॉल से पहले समझ लीजिए कि वह still है क्या। वह एक अनुबंध है। वह frame one तय करती है, और उसके साथ framing, लेंस, रंगों का पैलेट, subject और तस्वीर में पहले से मौजूद हर ख़ामी भी। आपके prompt के हिस्से में उसके बाद के कुछ सेकंड आते हैं, उससे पहले का कुछ नहीं।
यहाँ लगभग हर बेजान नतीजे की जड़ एक ही ग़लती है: ऐसा prompt जो तस्वीर का वर्णन करता है, बदलाव का नहीं। बताइए क्या हिलता है। बताइए camera कहाँ जाता है।
| Clip की लंबाई | 720p पर कीमत |
|---|---|
| 4 सेकंड | $0.36 |
| 6 सेकंड | $0.54 |
| 8 सेकंड (डिफ़ॉल्ट) | $0.72 |
| 10 सेकंड | $0.90 |
Resolution उसी रेट को घटाता-बढ़ाता है: 360p 0.33× ($0.0297 प्रति सेकंड), 1080p 1.5× ($0.135), 4K 2× ($0.18)। चार-सेकंड का 360p pass $0.1188 का पड़ता है — यह जानने का सबसे सस्ता तरीक़ा कि आपकी still हिलती भी है या नहीं।
दो frames और बीच का हिस्सा मॉडल पर छोड़ा हुआ? Omni 1.1 Flash start-end-frame-to-video। एक ही subject कई कोणों से, पूरी shot list में एक जैसा? Omni 1.1 Flash reference-to-video। कोई सोर्स मटीरियल ही नहीं? Omni 1.1 Flash text-to-video, जहाँ कीमत की पूरी दलील रखी है।
इस काम को व्याख्या नहीं, निरंतरता मानिए। मॉडल आपकी still को frame one की तरह लेता है, फिर उसके बाद हर सेकंड चौबीस भरोसेमंद frames गढ़ता है, और वे सब उसी चीज़ से बँधे रहते हैं जो आपने सौंपी थी। यही बँधन असली कीमत है: मंज़ूरी पा चुका key visual ब्रांड पर टिका रहता है, क्योंकि उसे किसी ने दोबारा नहीं गढ़ा।
यही बँधन बंदिश भी है। भरा-भरा frame मॉडल को और ज़्यादा चीज़ें थमा देता है जिन्हें सब कुछ बदलते हुए भी एक जैसा रखना है, और यही इस पीढ़ी की सबसे कमज़ोर कड़ी है। Google का मॉडल कार्ड यही कहता है: “एडिट के दौरान पूरी निरंतरता बनाए रखना, जटिल गति वाले सीन बनाना, या बिलकुल सही टेक्स्ट रेंडर करना अब भी एक चुनौती है।” साइनबोर्ड बिखर जाते हैं। भीड़ में चेहरे मथ जाते हैं। साफ़ बैकग्राउंड पर बैठा एक subject दस सेकंड उतनी अच्छी तरह झेल लेता है, जितनी अच्छी तरह भीड़ भरा frame चार सेकंड भी नहीं।
Crop ख़ुद मिलाइए। Output 16:9 या 9:16 में आता है — न square, न 4:5, न ultrawide। 4:5 वाले portrait को 16:9 job में ठेलिए और कुछ न कुछ टूटेगा: या तो मॉडल किनारों को ऐसे मटीरियल से भर देगा जिसकी फ़ोटो किसी ने खींची ही नहीं, या composition ख़ुद खिसककर फ़िट होने लगेगा। दोनों सूरतों में आप $0.09 प्रति सेकंड चुकाते हैं। पहले crop कीजिए, जब यह फ़ैसला मुफ़्त है।
Upscale करके 4K तक मत पहुँचिए। सोर्स का resolution तय करता है कि output ईमानदारी से कितना ब्योरा रख सकता है। 640 पिक्सल चौड़े thumbnail को 1080p पर render करने से उतने ही ब्योरे की एक बड़ी फ़ाइल मिलती है, वह भी 1.5× रेट पर।
गति के लिए जगह छोड़िए। subject के ऊपर थोड़ा headroom, कार के आगे थोड़ी सड़क। कसकर crop कर दीजिए तो कुछ भी frame से बाहर धकेले बिना हिल नहीं सकता — यही वह आम वजह है जिससे clip एक हिलती हुई तस्वीर जैसा लगता है।
dashboard से key बनाइए और उसे server-side रखिए। हमारी pipeline image_url ख़ुद fetch करती है, इसलिए वह सार्वजनिक इंटरनेट से पहुँच में होनी चाहिए — आपके CDN या object store का कोई HTTPS पता, कभी कोई लोकल path, localhost, या लॉगिन के पीछे छिपा URL नहीं। Signed URLs चलते हैं, बस खिड़की खुली रखिए: job क़रीब चार मिनट लेती है, और साठ सेकंड वाला लिंक उससे पहले ही मर जाता है।
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/omni-1.1-flash/image-to-video",
"input": {
"prompt": "केतली की टोंटी से भाप उठने लगती है और दाईं ओर बहती है। Camera धीरे-धीरे हैंडल पर push-in करता है। रसोई की गुनगुनाहट, केतली की हल्की टिक-टिक। Frame में और कुछ नहीं हिलता।",
"image_url": "https://cdn.example.com/stills/copper-kettle-16x9.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8"
}
}'
जवाब में एक job ID आती है। या तो उसे poll कीजिए, या हमें एक webhookUrl थमाकर पूरा लूप छोड़ दीजिए:
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const start = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/image-to-video",
input: {
prompt:
"वह camera की तरफ़ मुड़ती है और हवा में स्कार्फ़ उठ जाता है। Locked off। सीगल, दूर टकराती लहरें।",
image_url: "https://cdn.example.com/stills/portrait-9x16.png",
aspect_ratio: "9:16",
resolution: "360p",
duration: "10",
},
}),
}).then((r) => r.json());
const { jobId } = start.data;
for (let tick = 0; tick < 360; tick++) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") {
await archive(job.data.outputs[0].url); // इसे कहीं स्थायी जगह कॉपी कीजिए
break;
}
if (["failed", "cancelled"].includes(job.data.status)) {
throw new Error(job.data.error?.message ?? job.data.status);
}
await new Promise((r) => setTimeout(r, 5000));
}
Job पहले pending बताती है, फिर processing, फिर completed, failed या cancelled। Schema की दो बारीक़ियाँ लोगों को काटती हैं: duration और resolution strings हैं, इसलिए 10 नहीं, "10" भेजिए; और audio का कोई toggle है ही नहीं, क्योंकि आवाज़ तस्वीर के साथ ही बनती है और आपके prompt से चलती है। Fields की परिभाषाएँ machine-readable spec में हमेशा ताज़ा रहती हैं।
सिर्फ़ वही लिखिए जो बदलता है। Subject, रोशनी और composition तो फ़ाइल के साथ ही आ गए; उन्हें दोहराना मॉडल का वह ध्यान ख़र्च करता है जो वह गति पर लगा सकता था। कोई हरकत न बताइए और आपको पूरे रेट पर एक लगभग स्थिर frame मिलेगा, जिसमें हल्का बहाव होगा।
एक हरकत, नाम लेकर। भाप उठती है। दरवाज़ा अंदर की ओर खुलता है। बाल हवा में उठते हैं। वह एक्शन चुनिए जो मायने रखता है और बाक़ी सब को स्थिर रहने दीजिए — यह बात खुलकर कह देना उतना मामूली नहीं जितना सुनने में लगता है।
Camera के लिए एक निर्देश। “Slow push-in”, “locked off”, “handheld drift left”। सीधी-सादी भाषा सिनेमैटोग्राफ़ी के पूरे पैराग्राफ़ से बेहतर काम करती है, और बिना बताया गया camera मॉडल का फ़ैसला बन जाता है।
नीचे बहती आवाज़। Room tone, ट्रैफ़िक, कोई एक ख़ास इफ़ेक्ट। ख़ामोशी डिफ़ॉल्ट नहीं है; बिना बताया गया mix आपके लिए गढ़ दिया जाता है। Prompts 50,000 अक्षरों तक जाते हैं, इसलिए लंबाई कभी सीमा नहीं होती — सटीकता होती है। हमारी Gemini Omni prompting गाइड शब्दों के चुनाव पर और गहराई में जाती है।
यह बात बिल से पहले हमसे सुन लीजिए। Veo 3.1 Fast image-to-video इसी प्लेटफ़ॉर्म पर $0.01 प्रति सेकंड चलता है — इस पेज के endpoint से नौ गुना नीचे।
| Endpoint | 8-सेकंड clip | कब चुनें |
|---|---|---|
| Veo 3.1 Fast image-to-video | $0.08 | एक still, एक clip, और आगे उस पर कुछ टिका नहीं |
| Omni 1.1 Flash image-to-video | $0.72 | दस सेकंड चाहिए, 360p वाला draft pass चाहिए, या इस shot को दूसरों के साथ बैठना है |
| Veo 3.1 Fast text-to-video | $0.08 | वह still $0.64 जितना काम नहीं कर रही |
कीमतें और प्रोडक्ट की शर्तें समय के साथ बदल सकती हैं; खरीद का फ़ैसला लेने से पहले हर provider की मौजूदा कीमत जाँच लें। Google Batch या Flex प्राइसिंग किसी स्टैंडर्ड on-demand API request के सीधे बराबर नहीं है, क्योंकि उसमें scheduling, उपलब्धता और प्रोसेसिंग की शर्तें अलग होती हैं; इसलिए उसे इस तुलना में शामिल नहीं किया गया है। यह एक सीमित दायरे की तुलना है — यह दावा नहीं किया जा रहा कि E2X हर कॉन्फ़िगरेशन में दुनिया का सबसे सस्ता विकल्प है।
इसे गंभीरता से लीजिए। एक तस्वीर, एक बार एनिमेट — उसकी जगह Veo है। यहाँ का प्रीमियम तीन सूरतों में वसूल होता है: आपके कट को दस सेकंड चाहिए और Veo आठ पर रुक जाता है; आप $0.0297 प्रति सेकंड पर draft करना चाहते हैं; या इस clip को एक पूरे सेट का हिस्सा बनना है। किसी still को एनिमेट करने के दूसरे रास्ते image-to-video कैटेगरी में हैं, और उनके साथ हमारा मॉडल कैटलॉग भी।
Output 24 fps पर आता है, हर generation तीन से दस सेकंड की, और हर frame में SynthID watermark, जिसे इस चेन में कोई बंद नहीं कर सकता। रिज़ल्ट URLs अस्थायी हैं — फ़ाइल को अपने completion handler के अंदर ही आर्काइव कीजिए। जो लिंक कल नहीं खुलेगा, वह render आप दो बार ख़रीदते हैं।
एक नियम ख़ास तौर पर इसलिए लागू होता है कि आप एक तस्वीर अपलोड कर रहे हैं: EEA, स्विट्ज़रलैंड और UK में Google ऐसी सोर्स stills रोकता है जिनमें नाबालिग हों, और कुछ पहचाने जाने वाले लोग भी। साथ ही prompt की सिर्फ़ अंग्रेज़ी भाषा का मूल्यांकन Google ने किया है। Gemini Omni 1.1 Flash पर हमारे रिलीज़ नोट्स बताते हैं कि जिस पिछली पीढ़ी को हम अब भी चलाते हैं उसके मुक़ाबले और क्या बदला — वह अपस्ट्रीम पर 30 सितंबर 2026 को बंद हो रही है।
नौ सेंट में 720p का एक सेकंड आता है। डिफ़ॉल्ट clip आठ सेकंड का है, यानी $0.72; दस सेकंड, जो छत है, $0.90 के। यह रेट $0.15 की लिस्ट कीमत पर 40% छूट है, जो 28 अगस्त 2026 को हमारे लाइव कैटलॉग से पढ़ा गया। Resolution गुणक बदल देता है — 360p पर 0.33×, 1080p पर 1.5×, 4K पर 2×।
ज़्यादातर अकेली stills के लिए Veo — $0.09 के मुक़ाबले $0.01 प्रति सेकंड, यानी आठ सेकंड पर $0.72 के बदले $0.08। यहाँ तब लौटिए जब दस सेकंड चाहिए, जब 360p वाला draft pass कुल मिलाकर पैसा बचाता हो, या जब clip को उसी subject से बने दूसरे clips से मेल खाना हो।
सिर्फ़ 16:9 और 9:16। सबमिट करने से पहले अपने सोर्स को उसी अनुपात में crop कीजिए; वरना मॉडल यह बेमेल ख़ुद सुलझाएगा और हो सकता है आपके मंज़ूर किए composition का कुछ हिस्सा हाथ से निकल जाए।
कहीं भी, बशर्ते हमारी pipeline सार्वजनिक HTTPS से वहाँ पहुँच सके — कोई CDN, कोई S3 या GCS bucket, या आपका अपना web server। लोकल paths, localhost और ऑथेंटिकेशन के पीछे रखी हर चीज़ फ़ेल होती है। Signed URLs तब चलते हैं जब उनकी एक्सपायरी job के चार मिनट से आराम से आगे रहती हो।
आम तौर पर इसलिए कि prompt इमेज को निर्देश देने के बजाय दोबारा बयान कर रहा है। Still ने subject और framing पहले ही तय कर दिए थे; न कोई हरकत बताई गई, न camera का कोई move, तो मॉडल के पास करने को कुछ बचा ही नहीं। उसे एक हरकत और एक camera निर्देश के रूप में दोबारा लिखिए।
हाँ, वह तस्वीर के साथ-साथ नेटिवली बनता है और उससे sync रहता है। न कोई has_sound field है, न कोई silent मोड, इसलिए ambience prompt में बता दीजिए। Audio बाद में एडिट नहीं हो सकता — बदलाव का मतलब है एक और generation।
हाँ। EEA, स्विट्ज़रलैंड और UK के यूज़र्स के लिए Google ऐसी सोर्स stills रोकता है जिनमें नाबालिग हों, साथ ही कुछ पहचाने जाने वाले लोग — यह उसकी नीति है, जो हर provider पर लागू होती है। Outputs पर एक अदृश्य SynthID watermark भी रहता है, इसलिए लेबल किए गए AI assets की योजना पहले से बना लीजिए।