Loading...
Loading...
Generate video from up to seven reference images with Gemini Omni 1.1 Flash. The reference images carry character and style consistency into the result.
0/7 आइटम्स
मॉडल चलाने के लिए साइन इन करें
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/reference-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)अवधि और रिज़ॉल्यूशन के अनुसार प्रति जनरेशन अनुमानित लागत। आप केवल उसी के लिए भुगतान करते हैं जो आप चलाते हैं।
कोई कैंपेन कभी एक clip नहीं होता। वह एक shot list होती है — ग्यारह पंक्तियाँ, हर पंक्ति में वही कूरियर बैग, और उस दोपहर के लिए कोई बजट नहीं जब छठी पंक्ति के आसपास बैग का रंग भूरा पड़ जाए। Reference-to-video उस बैग को वही बैग बनाए रखता है। हम इसे google/omni-1.1-flash/reference-to-video के रूप में चलाते हैं और 720p output के प्रति सेकंड $0.09 लेते हैं, यानी डिफ़ॉल्ट आठ-सेकंड clip $0.72 का, audio सहित।
असली काम जो field करती है वह image_urls है — एक array, जिसके लिए हमारे schema में minItems: 1 और maxItems: 7 लिखा है। वही छत इस पेज के होने की वजह है। सात स्लॉट किसी subject को इतने कोणों से दिखा देते हैं कि मॉडल आपके छिपाए हुए कोण गढ़ना बंद कर देता है।
अलग मटीरियल, अलग दरवाज़ा: अकेली still के लिए Omni 1.1 Flash image-to-video, shot के दोनों सिरे और बीच में खाली जगह हो तो start-end-frame-to-video, और बिना किसी asset वाली brief के लिए Omni 1.1 Flash text-to-video, जहाँ कीमतों की पूरी तालिका रखी है।
हमारा रेट, 28 अगस्त 2026 को लाइव कैटलॉग से पढ़ा गया:
| Clip की लंबाई | 720p पर कीमत |
|---|---|
| 4 सेकंड | $0.36 |
| 6 सेकंड | $0.54 |
| 8 सेकंड (डिफ़ॉल्ट) | $0.72 |
| 10 सेकंड | $0.90 |
लिस्ट कीमत $0.15 प्रति सेकंड है; लगातार चलने वाली 40% छूट उसे $0.09 पर ले आती है। Resolution वहीं से घटता-बढ़ता है — 360p पर $0.0297, 4K पर $0.18, यानी दस-सेकंड का 4K render $1.80 का। और फिर वह आँकड़ा जो तय करता है कि आप बनाएँगे कैसे: एक reference लगाइए या सात, ऊपर का कुछ नहीं हिलता। पूरा फ़ॉर्मूला duration और resolution है। References मुफ़्त का वज़न हैं।
कीमतें और प्रोडक्ट की शर्तें समय के साथ बदल सकती हैं; खरीद का फ़ैसला लेने से पहले हर provider की मौजूदा कीमत जाँच लें। Google Batch या Flex प्राइसिंग किसी स्टैंडर्ड on-demand API request के सीधे बराबर नहीं है, क्योंकि उसमें scheduling, उपलब्धता और प्रोसेसिंग की शर्तें अलग होती हैं; इसलिए उसे इस तुलना में शामिल नहीं किया गया है। यह एक सीमित दायरे की तुलना है — यह दावा नहीं किया जा रहा कि E2X हर कॉन्फ़िगरेशन में दुनिया का सबसे सस्ता विकल्प है।
API array का हर URL ख़ुद fetch करता है, इसलिए उन्हें ऐसी जगह होना चाहिए जहाँ हमारे workers सादे HTTPS से पहुँच सकें — कोई public bucket, कोई ऐसा signed लिंक जो एक्सपायर न हुआ हो, लॉगिन के पीछे कुछ भी नहीं।
सात एक वेरिफ़ाई की हुई अधिकतम सीमा है, किसी docs पेज की कोई पंक्ति भर नहीं। आठवाँ भेजिए और GPU छुए जाने से पहले ही request ख़ारिज हो जाती है। यह पाबंदी लगती है; इसे बजट मानिए। जो सेट सातों स्लॉट का हक़ रखता है उसमें तीन-चौथाई कोण, प्रोफ़ाइल, पीठ, ब्रांड दिखाता एक क्लोज़ डिटेल, एक उसी दूरी से जिस पर clip frame करेगी, और एक सादी रोशनी में होता है। हीरो कोण दोहराना एक स्लॉट बर्बाद करता है। जो कोण आप नहीं देते, वे अंदाज़े से गढ़े जाते हैं।
पिछली पीढ़ी से बदलाव यही है। हमारा Gemini Omni Flash reference-to-video endpoint यही विचार $0.075 प्रति सेकंड पर चलाता है, और उसकी कोई प्रलेखित छत है ही नहीं — Google ने कभी कोई संख्या प्रकाशित नहीं की, इसलिए हमने भी ऐसा कोई आँकड़ा छापने से मना कर दिया जिस पर हम टिक न सकें। सस्ता वही है, बीस प्रतिशत से, और वजह दिखती भी है: सात स्लॉट की कोई प्रमाणित अधिकतम सीमा नहीं, और खर्च करने से पहले reference सेट की रिहर्सल कर लेने वाला 360p टियर भी नहीं। Google उस मॉडल को 30 सितंबर 2026 को बंद कर रहा है। अगर कोई pipeline अब भी वहीं इशारा कर रही है, तो माइग्रेशन बस एक slug बदलने का काम है, प्रति सेकंड पाँचवाँ हिस्सा महँगा पड़ता है, और वह यहीं आकर उतरती है।
Array एक बार बना लीजिए। सातों URLs अपनी shot list के साथ रखिए और हर job में वही array पोस्ट कीजिए। सेट स्थिर पद है; prompt चर।
यही उलटफेर पूरा वर्कफ़्लो है। चूँकि subject का ज़िम्मा references उठा लेते हैं, इसलिए हर prompt वह चीज़ दिखती कैसी है बताना छोड़कर उसके साथ होता क्या है बताने लगता है — camera, क्या हिलता है, रोशनी, आवाज़। Prompts छोटे होते जाते हैं और clips ज़्यादा एक जैसे, जो अदला-बदली लोग आम तौर पर उम्मीद नहीं करते। किसी shot की दो अलग phrasings की तुलना करते वक़्त एक seed पिन कर दीजिए, ताकि पता चले कि फ़ायदा दोबारा लिखने से हुआ या पासे से।
हर job के लिए 240 सेकंड मानकर चलिए और पूरी लिस्ट को समानांतर चलाइए। फिर Google का मॉडल कार्ड जो मानता है, उससे अपनी उम्मीदें मिलाकर रखिए:
“एडिट के दौरान पूरी निरंतरता बनाए रखना, जटिल गति वाले सीन बनाना, या बिलकुल सही टेक्स्ट रेंडर करना अब भी एक चुनौती है।”
सात references बहकाव को सँकरा करते हैं। ख़त्म नहीं करते।
दो fields ज़रूरी हैं: prompt और image_urls। अपनी key server-side रखिए और 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/reference-to-video",
"input": {
"prompt": "इमेज 1 मुड़ी हुई साइकिल है, इमेज 2 उसका हिंज, इमेज 3 सवार। सूरज निकलते वक़्त पत्थर जड़ा आँगन। सवार उसे खोलकर फ़्रेम को चटख़ाकर बंद कर देता है। Locked-off wide। चिड़ियों की चहचहाहट, दूर एक ट्राम।",
"image_urls": [
"https://example.com/bike-folded.jpg",
"https://example.com/bike-hinge.jpg",
"https://example.com/rider.jpg"
],
"duration": "8",
"aspect_ratio": "16:9"
}
}'
जवाब में data.jobId आती है। Renders में मिनट लगते हैं, इसलिए धीरे-धीरे poll कीजिए — या एक webhookUrl भेजकर polling छोड़ दीजिए।
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
// एक ही array, जिसे हर prompt दोबारा इस्तेमाल करता है।
const image_urls = [
"https://example.com/fox-puppet-front.jpg",
"https://example.com/fox-puppet-muzzle.jpg",
"https://example.com/fox-puppet-profile.jpg",
];
const submitted = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/reference-to-video",
input: {
prompt:
"इमेज 1 लोमड़ी की कठपुतली है। वह frame के बाएँ से झुककर आती है और सिर टेढ़ा करती है। धीमा dolly in। काग़ज़ की सरसराहट, हल्का room tone।",
image_urls,
duration: "10",
aspect_ratio: "9:16",
resolution: "1080p",
seed: 70413,
},
}),
}).then((r) => r.json());
const { jobId } = submitted.data;
while (true) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") { console.log(job.data.outputs[0].url); break; }
if (job.data.status === "failed") throw new Error(job.data.error?.message);
await new Promise((r) => setTimeout(r, 5000));
}
Statuses pending → processing → completed की तरफ़ बढ़ते हैं, या failed / cancelled पर आकर बैठ जाते हैं। एक जाल: duration और resolution strings हैं। "10", कभी 10 नहीं। Schema और कीमत machine-readable spec में रहते हैं।
Veo 3.1 Fast reference-to-video इसी प्लेटफ़ॉर्म पर $0.01 प्रति सेकंड का पड़ता है। नौ गुना कम। वहाँ आठ सेकंड $0.08 के हैं, यहाँ $0.72 के, और हम इसे किसी टेबल के नीचे नहीं दबाएँगे।
इसलिए डिफ़ॉल्ट जवाब Veo है। अगर किसी shot list को तीन references, आठ सेकंड और 720p चाहिए, तो इसके अलावा कुछ भी कॉल करना बेवजह पैसा ख़र्च करना है।
चार चीज़ें यह पलड़ा पलट देती हैं। आपको Veo की मंज़ूर की हुई गिनती से ज़्यादा references चाहिए — वह तीन पर रुकता है, हमारे सात के मुक़ाबले; यही किसी subject को पूरा ढकने और सिर्फ़ नमूना लेने के बीच का फ़र्क़ है। आपको दस सेकंड चाहिए, जो Veo देगा नहीं। आपको 4K चाहिए। या आपको 360p tier चाहिए, जहाँ बीस drafts एक तैयार clip से कम में पड़ते हैं और जीतने वाला उसी array और उसी seed से दोबारा render हो जाता है। इन चार के बाहर सस्ता रास्ता ही लीजिए। और विकल्प reference-to-video कैटेगरी में हैं, और बाक़ी मॉडल कैटलॉग में।
आपके references असली चीज़ों के, और कभी-कभी असली लोगों के अपलोड हैं। UK, स्विट्ज़रलैंड और यूरोपीय आर्थिक क्षेत्र के यूज़र्स के लिए Google ऐसे इमेज अपलोड रोकता है जिनमें नाबालिग या कुछ पहचाने जाने वाले लोग हों। यहाँ यह कोई फ़ुटनोट नहीं, कास्टिंग की शर्त है। इसे brief में लिखिए, रात दो बजे फ़ेल हुई job में मत ढूँढ़िए।
हर frame पर SynthID है। Google का अदृश्य watermark हर output पर रहता है और कोई provider उसे बंद नहीं कर सकता, हम भी नहीं। लेबल किए गए AI assets पर पाबंदी लगाने वाला कोई भी कॉन्ट्रैक्ट इंटीग्रेट करने से पहले सुलझा लीजिए।
आवाज़ शब्दों से आती है। Audio तस्वीर के साथ ही बनता है और उसी prompt से चलता है — न कोई has_sound toggle, न कोई audio reference अपलोड।
रिज़ल्ट URLs एक्सपायर होते हैं। जिस handler में आप outputs[0].url पढ़ते हैं, वहीं हर output को अपनी storage पर कॉपी कीजिए। जिस कैंपेन को आप दोबारा render करते हैं, उसकी कीमत आपने दो बार चुकाई है।
prompt की पूरी तरह सपोर्टेड इकलौती भाषा अंग्रेज़ी है, और यह मॉडल Gemini Enterprise Agent Platform पर सूचीबद्ध है — वही उत्तराधिकारी जिसे Google ने अप्रैल 2026 में Vertex AI की जगह रखा। पृष्ठभूमि हमारे रिलीज़ लेख में है।
सात इमेज लगा देने से मॉडल को पता चलता है कि क्या-क्या मौजूद है। यह नहीं पता चलता कि हीरो कौन है। वह आप गद्य में बताते हैं: इमेज 1 केतली है, इमेज 2 इनैमल का ढक्कन, इमेज 3 रसोई। नंबर देकर, पहली पंक्ति में, किसी भी निर्देश से पहले।
फिर subject का वर्णन करना बंद कीजिए। जो prompt पहले से लगाई हुई किसी चीज़ का रंग और आकार दोबारा बताता है, वह आपके ही references से बहस करता है, और मॉडल बीच का रास्ता निकाल लेता है। शब्द उस पर ख़र्च कीजिए जो array नहीं थाम सकती: camera, एक move, रोशनी, ambience। हर prompt को एक सतत shot तक रखिए — तीन सीन का नैरेटिव माँगेंगे तो धब्बा मिलेगा। हमारी Gemini Omni prompting गाइड shot की शब्दावली में और गहरे जाती है।
सात, और यह सीमा अंदाज़े की नहीं बल्कि प्रकाशित है: image_urls को minItems: 1 और maxItems: 7 के साथ वैलिडेट किया जाता है, इसलिए आठवीं एंट्री सबमिट पर ही फ़ेल हो जाती है। पिछली पीढ़ी में कोई प्रलेखित छत थी ही नहीं। व्यावहारिक रूप से सबसे बड़ा फ़र्क़ यही है।
नहीं। हम तैयार वीडियो के प्रति सेकंड बिल करते हैं, जिसे resolution घटाता-बढ़ाता है; references की गिनती उस हिसाब में है ही नहीं। एक reference हो या सात, आठ-सेकंड की 720p clip $0.72 की ही है। लंबाई और resolution — बस यही दो लीवर हैं।
Prompt में उन्हें नंबर दीजिए — कौन-सी इमेज में प्रोडक्ट है, कौन-सी में डिटेल, कौन-सी में माहौल — और फिर एक्शन बताइए। जब तक आपका गद्य भूमिकाएँ नहीं सौंपता, image_urls एक सपाट सूची भर है।
यही इसका इरादा है। Array एक बार स्टोर कीजिए और हर prompt के साथ उसे बिना बदले पोस्ट कीजिए, सिर्फ़ निर्देश बदलते हुए। पिन किया हुआ seed रोशनी को इतना स्थिर रखता है कि clips आपस में कट सकें।
लगभग हमेशा, $0.01 प्रति सेकंड पर — बराबर की request के लिए Veo 3.1 Fast नौ गुना सस्ता है। यहाँ तब आइए जब तीन references से कवरेज पूरी न हो, जब कट को दस सेकंड चाहिए, जब डिलिवरेबल 4K हो, या 360p वाले draft लूप के लिए।
360p, 720p, 1080p या 4K, 16:9 या 9:16 में, 4, 6, 8 या 10 सेकंड के लिए, हमेशा 24 fps पर। ऊपर की दो resolutions नेटिव रेंडर होने के बजाय upscale की जाती हैं, इसलिए तीखापन अपनी ही फ़ुटेज पर परखिए।
Google उस तारीख़ को gemini-omni-flash-preview को deprecate कर देता है, और उन weights को चलाने वाला हर provider उसी दिन रुक जाता है। अपनी jobs यहाँ भेजिए: वही request शक्ल, और एक प्रलेखित reference छत। पुराना reference-to-video पेज माइग्रेशन के हवाले के लिए बना रहेगा।