Loading...
Loading...
Generate smooth video transitions between two key frames with Gemini Omni 1.1 Flash. Provide a start frame, an end frame and a text prompt to guide the in-between motion.
Modelleri çalıştırmak için giriş yapın
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/start-end-frame-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)Süre ve çözünürlüğe göre tahmini üretim maliyeti. Yalnızca çalıştırdığınız için ödersiniz.
Gemini Omni 1.1 Flash, Google'ın gemini-omni-1.1-flash modeli; 27 Ağustos 2026'dan beri GA ve bir Veo değil, Gemini ailesinden. İki kare alan capability'sini google/omni-1.1-flash/start-end-frame-to-video olarak çalıştırıyoruz ve çıktının saniyesi üzerinden — 720p'de $0.09 faturalandırıyoruz; $0.15 liste ücretinin üzerinde sabit duran %40 indirimle. Varsayılan sekiz saniyelik klip $0.72.
İçeri üç alan giriyor: bir başlangıç karesi, bir bitiş karesi, bir prompt. İlk görseliniz ilk kare, ikincisi son kare oluyor; arada kalan her şey uyduruluyor. Bu bir klip talebi değil, bir köprü talebi — ve bir köprü, iki yakasının değeri kadar değerli.
Bu da burada yeni: önceki Omni Flash nesli bu capability olmadan çıkmıştı ve bu, 1.1 sürüm yazımızdaki tezin en yalın kanıtı. Bir kalite sürümü değil, bir süreklilik sürümü.
Ücretlerimiz, 28 Ağustos 2026'da kontrol edildi:
| Süre | 360p | 720p | 1080p | 4K |
|---|---|---|---|---|
| 4 sn | $0.1188 | $0.36 | $0.54 | $0.72 |
| 6 sn | $0.1782 | $0.54 | $0.81 | $1.08 |
| 8 sn (varsayılan) | $0.2376 | $0.72 | $1.08 | $1.44 |
| 10 sn | $0.297 | $0.90 | $1.35 | $1.80 |
1080p ve 4K native değil, upscale edilmiş.
Tweening yanlış zihinsel model. Bir tweening aracı A pikselini B pikseline doğru harmanlar. Bu model iki görseli de okuyor, sahneyi ikisi arasında makul biçimde hangi olayın taşımış olabileceğine karar veriyor ve onu render ediyor — ses dahil, aynı prompt'tan native olarak üretilerek. has_sound alanı yok, sessize alma anahtarı yok.
24 fps'te dört saniyelik bir köprü doksan altı kare demek ve bunların ikisini siz verdiniz. Kalan doksan dördü fizik üzerine bir iddia; tutsa da tutmasa da ortaya konuyor. Kadraj 16:9 ya da 9:16; job başına dört dakika hesaplayın.
Çifti üç soru belirliyor. Aynı özne mi? Benzer değil — aynı. Aynı ışık mı? Ana ışığın yönü, renk sıcaklığı, kontrast. Bir kamera bu hareketi yapabilir miydi? Bunu bir operatörün uygulayabileceği tek bir cümleyle söyleyemiyorsanız model de söyleyemez.
Cevap hayır olduğunda hiçbir hata dönmüyor — model boşluğu dört biçimde kapatıyor:
Kullanamayacağınız bir klip, kullanabileceğiniz bir klip kadar tutuyor.
Saniyesi $0.0297'dan dört saniyelik bir 360p testi $0.1188; sekiz saniyelik 720p final ise $0.72, beş katı. Üstelik bir yüzü değerlendirmek için fazla küçük olan 360p, ortayı değerlendirmek için gayet yeterli. Kesme her çözünürlükte kesmedir. Morph her çözünürlükte morph. Google ayrıca bu kademenin %60'a varan oranda daha hızlı çalıştığını iddia ediyor — lansman blogunun ifadesi, API referansından bir rakam değil.
Bu da storyboard işini yinelenebilir biçimde ucuzlatıyor. Vuruş başına iki anahtar kare, çekim listesi dört saniye ve 360p'de koşturulup animatik olarak izleniyor — on iki vuruş yaklaşık $1.73. Başarısızlıklar neredeyse her zaman bir kare çifti sorunu ve çözüm prompt'u beş kez yeniden yazmak değil, tek bir board'u yeniden çizmek. Yalnızca ayakta kalanları render edin. Veo 3.1 Fast start-end-frame-to-video tarafında hiç taslak kademesi yok.
duration string olarak 4, 6, 8 ya da 10 kabul ediyor. Her saniye aynı tutuyor, dolayısıyla bir bütçe düğmesi gibi okunuyor. Oysa bir yönetmenlik düğmesi.
Aynı iki kare dört saniyede ve on saniyede iki farklı çekim. Dört, geçişi zorunlu kılıyor — kamera karar veriyor, uydurmaya pek yer kalmıyor. On ise doldurulmak zorunda ve model kendi dolgusunu buluyor: bir kayış, tutulan bir an, ikinci bir jest. Buradaki en öngörülemez çıktı, o uydurulmuş ara iş.
Uzunluğu mesafeye göre seçin: otuz derece arayla çekilmiş iki ürün açısını on saniyeye yaymak size bir sürünme ve ölü hava alıyor. On, Omni'nin tavanı ve gerçek bir üstünlük — Veo sekizde duruyor.
Bir key üretin, sunucu tarafında tutun, job'ı gönderin. prompt, start_frame_url ve end_frame_url zorunlu ve iki görseli de biz çekiyoruz, dolayısıyla her URL kimlik doğrulaması olmayan bir request'e cevap vermeli.
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/start-end-frame-to-video",
"input": {
"prompt": "Buhar birikirken kamera espresso makinesinin çevresinde sağa doğru yay çiziyor. Değirmen uğultusu, kafe uğultusu.",
"start_frame_url": "https://example.com/07a-left.jpg",
"end_frame_url": "https://example.com/07b-right.jpg",
"duration": "6",
"resolution": "360p"
}
}'
Job ID'sini polling'e alın ya da bir webhookUrl geçin:
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const { data } = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/start-end-frame-to-video",
input: {
prompt: "Çatı korkuluğundan avludaki masaya doğru yavaş bir vinç inişi. Tek kesintisiz hareket.",
start_frame_url: "https://example.com/12a-roof.jpg",
end_frame_url: "https://example.com/12b-courtyard.jpg",
duration: "10",
resolution: "720p",
},
}),
}).then((r) => r.json());
let url = null;
while (!url) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${data.jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") url = job.data.outputs[0].url;
else if (["failed", "cancelled"].includes(job.data.status))
throw new Error(job.data.error?.message ?? job.data.status);
else await new Promise((r) => setTimeout(r, 5000));
}
Durum pending, processing, completed şeklinde ilerliyor ya da failed/cancelled üzerinde duruyor. Schema'da iki tuzak var: duration ve resolution string ve alanların adı başka yerde kullanılan tekil image_url değil, start_frame_url ile end_frame_url. Canlı değerler makine tarafından okunabilir spesifikasyonda duruyor.
Veo 3.1 Fast aynı işi paranın dokuzda birine yapıyor:
| Endpoint | 8 sn, 720p | Şu durumda uzanın |
|---|---|---|
| Veo 3.1 Fast start-end-frame-to-video | $0.08 | Kareler birbirine bağlanıyor ve sekiz saniye yetiyor |
| Omni 1.1 Flash start-end-frame-to-video | $0.72 | On saniye, 4K ya da bir taslak geçişi gerekiyor |
| Omni 1.1 Flash image-to-video | $0.72 | Çekimin yalnızca bir ucu sabit |
| Omni 1.1 Flash reference-to-video | $0.72 | Bir özne birçok çekim boyunca kendisi kalmalı |
| Omni 1.1 Flash text-to-video | $0.72 | Hiç kaynak kare yok |
Fiyatlar ve ürün koşulları değişebilir. Satın alma kararı vermeden önce her sağlayıcının güncel fiyatlandırmasını kontrol edin. Google Batch veya Flex fiyatlandırması, zamanlama, kapasite ve işleme koşulları farklı olduğu için standart bir on-demand API request'iyle birebir eşdeğer değildir ve bu karşılaştırmaya dahil edilmemiştir. Bu, kapsamı belirlenmiş bir karşılaştırmadır; E2X'in her konfigürasyonda dünyanın en ucuz seçeneği olduğu iddiası değildir.
Veo'dan başlayın. Onun sekiz saniyelik duvarı yolunuza çıktığında, teslim edilecek iş 4K olduğunda ya da bir taslak geçişi maliyetinden fazlasını kurtardığında buraya dönün. Gerisi image-to-video ve text-to-video altında duruyor, tüm model kataloğu ise tek sayfada.
Manzarayı değil, geçişi tarif edin — model iki ucu zaten görüyor. Onları birbirine bağlayan hareketi adlandırın (“sağa yay çiz”, “vinçle in”, “uzak pencereye rack focus”), sonra nasıl duyulması gerektiğini söyleyin: ses de aynı satırdan yazılıyor. İki karenin de ima etmediği olayları istemeyin. Daha fazla kamera terimi Omni prompt rehberimizde; değerlendirilmiş tek prompt dili İngilizce.
Bu iş bir müşterinin yanına gitmeden önce üç şey. Her kare Google'ın görünmez kaynak işareti SynthID'yi taşıyor ve hiçbir sağlayıcı bunu sökemiyor. Google'ın model kartı açık sözlü: “düzenlemeler boyunca tam tutarlılığı korumak, karmaşık hareket içeren sahneler üretmek veya kusursuz doğrulukta metin render etmek hâlâ bir zorluk” — geniş bir kare aralığının istediği şey ise tam olarak karmaşık hareket. AEA, İsviçre ve Birleşik Krallık'ta reşit olmayanları veya belirli tanınabilir kişileri içeren görseller yükleyemiyorsunuz; bu, girdilerinize gelen bir sınır. Sonuç URL'leri geçici: tamamlanma handler'ında kendinize yeniden host edin.
720p çıktının her saniyesi için $0.09 alıyoruz, yani sekiz saniyelik bir klip $0.72 ve on saniyelik maksimum $0.90 — $0.15 liste ücreti üzerinden %40 indirim. Çözünürlük bunu çarpıyor; dört saniyelik bir 360p taslağı $0.1188, on saniyelik bir 4K render'ı $1.80 ediyor. 28 Ağustos 2026'da kontrol edildi.
Aynı özne, aynı ışık kurulumu ve istenen sürede fiziksel olarak birinden diğerine gidebilecek bir kamera hareketi. Aynı çekimden, dakikalar arayla alınmış iki fotoğraf neredeyse her zaman işe yarıyor. Farklı koşullarda çekilmiş kareler ise modeli aradaki farkı ekranda çözmeye zorluyor.
Hiçbir hata dönmüyor. Boşluğu dört olası biçimde saklayan bir klip alıyorsunuz: uydurma bir kesme, imkânsız geometriden geçen bir morph, bir ışık sıçraması ya da yoktan belirip hayaletlenen figürler. Hepsi iyi bir render'la aynı faturayı kesiyor; $0.1188'lük taslağın kendini çıkarmasının sebebi bu.
Çoğu durumda önce Veo 3.1 Fast — başlangıç ve bitiş karelerini bizim $0.09'umuza karşı saniyesi $0.01'e yapıyor, yani sekiz saniye $0.72 değil $0.08. Omni aradaki farkı üç yerde hak ediyor: on saniyelik süre, 4K çıktı ve 360p test kademesi.
Çağrı başına üç ile on saniye arası. duration enum'u hepsi string olmak üzere 4, 6, 8, 10 taşıyor. On kesin tavan ve daha uzunu birkaç job'dan birleştiriliyor.
Evet. İkisi de sunucu tarafında çekiliyor, dolayısıyla job bitene kadar her biri kimlik doğrulaması olmayan bir request'e cevap vermeli. Kısa ömürlü imzalı URL'ler, özel bucket'lar, localhost adresleri ve data URI'ları başarısız oluyor.
Evet — her kare Google'ın algılanamaz kaynak sinyali SynthID ile işaretleniyor; izleyiciye görünmez, Google'ın araçlarıyla doğrulanabilir. Hiçbir sağlayıcı bunu devre dışı bırakamıyor. Bir sözleşme etiketli AI varlıklarını yasaklıyorsa bunu müşterinizle önceden netleştirin.