Gemini Omni 1.1 Flash'ı `gemini-omni-1.1-flash` model kimliğiyle, metin modelleri için kullandığınız `generateContent` uç noktası yerine Google'ın Etkileşimler API'si aracılığıyla çağırırsınız. Bu, insanların takıldığı ilk şeydir. Bir Gemini metin parçasını kopyalayıp model adını değiştirirseniz, bir 404 hatası alırsınız.
Bu rehber sizi boş bir terminalden test edilmiş bir video oluşturma isteğine götürür. Bir anahtar alacak, curl ve Python'da ilk çağrınızı yapacak, mevcut (ve şaşırtıcı bir şekilde mevcut olmayan) parametreleri öğrenecek, büyük yanıtları yönetecek ve tüm bunları tekrarlanabilir bir test olarak kaydedeceksiniz.
Model 27 Ağustos 2026'da genel kullanıma sunuldu. Onunla birlikte gelenler için Gemini Omni 1.1 Flash'taki yeniliklere bakın.
Başlamadan Önce İhtiyacınız Olanlar
- AI Studio'ya giriş yapmak için bir Google hesabı.
- Google AI Studio'dan bir Gemini API anahtarı.
- Faturalandırma etkinleştirilmiş olmalı. Omni'nin, metin modellerindeki ücretsiz katmanın aksine ücretsiz bir katmanı yoktur. İlk isteğiniz ücrete tabidir.
- HTTP istekleri göndermek için bir yol: curl, Python SDK'sı veya bir API istemcisi.
Anahtarı kaynak koda yapıştırmak yerine bir ortam değişkeni olarak saklayın:
export GEMINI_API_KEY="your_key_here"
Resmi SDK'lar bu değişkeni kendiliğinden okur, bu da sırrın deponuzdan uzak kalmasını sağlar.
İlk video oluşturma çağrınız
Uç nokta, `/v1beta/interactions` adresine bir POST isteğidir. İşte curl'de nasıl göründüğü:
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.1-flash",
"input": "A marble rolling fast on a chain reaction style track, continuous smooth shot."
}'
İki alan: model ve girdi. Minimum istek bu kadar. Yanıt, oluşturulan videoyu `output_video.data` içinde base64 olarak taşır.
Python'da, SDK'yı `pip install google-genai` ile kurun, ardından:
import base64
from google import genai
client = genai.Client() # reads GEMINI_API_KEY from the environment
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input="A marble rolling fast on a chain reaction style track, continuous smooth shot.",
)
with open("marble.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
JavaScript, `@google/genai` ile aynı yapıyı takip eder:
import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: 'gemini-omni-1.1-flash',
input: 'A marble rolling fast on a chain reaction style track, continuous smooth shot.',
});
if (interaction.output_video?.data) {
fs.writeFileSync('marble.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}
Oluşturma zaman alır. Gecikme süresi, çözünürlük ve mevcut API yükü ile orantılıdır, bu yüzden bir şeyin bozulduğunu düşünmeden önce cömert bir istemci zaman aşımı ayarlayın.
Çözünürlük ve En Boy Oranını Kontrol Etme
Çıktı biçimiyle ilgili her şey `response_format`'a gider:
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input="A drone shot of a mountain landscape at sunrise.",
response_format={
"type": "video",
"aspect_ratio": "16:9",
"resolution": "1080p",
},
)
Kabul edilen değerler:
| Alan | Değerler | Varsayılan |
|---|---|---|
type |
video |
video |
aspect_ratio |
16:9, 9:16 |
16:9 |
resolution |
360p, 720p, 1080p, 4k |
720p |
delivery |
satır içi base64, uri |
satır içi |
`360p`'de taslak oluşturun. 720p'den %60'a kadar daha hızlı oluşturur ve üçte biri kadar maliyetlidir, bu nedenle on beş tek kullanımlık istem denemeniz eskiden beş tanesinin maliyetine denk gelir. Sakladığınızı daha yüksek çözünürlükte yeniden oluşturun. `1080p` ve `4k`, oluşturulan karelerin yükseltilmiş halleridir, yerel oluşturmalar değildir. Fiyatlandırma dökümü, her katmanın saniye başına gerçek maliyetini gösterir.
Mevcut Olmayan Parametreler
Bu liste yukarıdakinden daha önemlidir, çünkü aksi takdirde bir öğleden sonrayı boşa harcayabilirsiniz:
- Sistem talimatları yok
- `temperature` yok
- `top_p` yok
- Durdurma dizileri yok
- Negatif istem alanı yok
Bir çekimden bir şeyi hariç tutmanız gerekiyorsa, hariç tutmayı istemin kendisine yazın. Belgelerin kendi örneği tam da bunu yapar: “çizimi sadece hareket için bir rehber olarak kullanarak, son videoda çizimi gösterme.”
Görüntü Girdileri, Ana Kareler ve Referanslar
Medya dahil etmek istediğinizde bir dize yerine bir liste geçirin. Görüntüden videoya:
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "image", "data": base64_image, "mime_type": "image/jpeg"},
{"type": "text", "text": "turn this into realistic footage, using the drawing only as a guide for movement, do not show the drawing in the final video"},
],
)
İki görüntü, bir ilk kare ve bir son kare olur ve model aralarındaki hareketi oluşturur:
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "image", "data": first_frame_b64, "mime_type": "image/jpeg"},
{"type": "image", "data": last_frame_b64, "mime_type": "image/jpeg"},
{"type": "text", "text": "A smooth cinematic transition from a lush green forest at sunrise to a snowy forest under a starry night sky."},
],
)
Video referansları, Files API aracılığıyla aynı şekilde çalışır ve her biri üç saniyelik üç kliple sınırlıdır. Bu kliplerdeki ses göz ardı edilir; model bunları hareket ve görünüm için okur.
Çok Turlu Düzenleme
Omni'yi basit bir metinden videoya uç noktasından ayıran budur. Bir kez oluşturun, ardından önceki etkileşim kimliğini geçirerek sohbet ederek düzenleyin:
res1 = client.interactions.create(
model="gemini-omni-1.1-flash",
input="A woman playing violin outdoors.",
)
res2 = client.interactions.create(
model="gemini-omni-1.1-flash",
previous_interaction_id=res1.id,
input="Make the violin invisible.",
)
Yeniden yükleme yok, sahneyi yeniden tanımlama yok. Aynı mekanizma, 40 saniyelik uzatma rehberinde ele alınan sahne uzatmasını yönlendirir.
4MB Üzerindeki Videoları Yönetme
4MB'tan büyük her şey satır içi base64 yerine bir URI olarak geri döner ve dosyayı indirebilmeniz için işlenmesinin tamamlanması gerekir. Bu, çoğu insanın 1080p'de karşılaştığı hatadır: işleyicileri `output_video.data`'yı okur, hiçbir şey bulamaz ve sessiz bir hata bildirir.
URI teslimatını açıkça isteyin ve yoklama yapın:
import time
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input="A beautiful sunset.",
response_format={"type": "video", "delivery": "uri"},
)
video_output = interaction.output_video
file_name = video_output.uri.split("/")[-1]
while True:
f_info = client.files.get(name=f"files/{file_name}")
if f_info.state.name == "ACTIVE":
break
if f_info.state.name == "FAILED":
raise RuntimeError("Generation failed.")
time.sleep(5)
video_bytes = client.files.download(file=video_output.uri)
with open("output.mp4", "wb") as f:
f.write(video_bytes)
Yanıt işleyicinizi baştan her iki şekli de kabul edecek şekilde yazın. Çözünürlük, hangisini alacağınızı değiştirir.
İsteği Apidog'da Test Edin
Çağrı çalıştığında sorun değişir. Artık kritik yolunuzda pahalı, yavaş, deterministik olmayan bir uç nokta var ve davranışını ne zaman değiştirdiğini bilmeniz gerekiyor. Shell geçmişindeki geçici curl komutları size bunu söylemez.
Bunu bir kez Apidog'da kurun:
- Bir proje ve bir ortam oluşturun. `GEMINI_API_KEY` ve `MODEL_ID`'yi ortam değişkenlerine koyun, böylece anahtar kaydedilen isteğe asla ulaşmaz.
- İsteği ekleyin. `https://generativelanguage.googleapis.com/v1beta/interactions` adresine POST yapın, JSON gövdesine `model` ve `input` ekleyin. Değişkenleri `{{MODEL_ID}}` ile referans alın.
- Zaman aşımını artırın. Video oluşturma, metin tamamlama işleminden çok daha uzun sürer ve varsayılan istemci zaman aşımı bunu kesecektir.
- Onaylamalar ekleyin. Durum kodunu kontrol edin, `output_video`'nun var olup olmadığını kontrol edin ve çözünürlüğünüzde beklediğiniz yanıt şeklini kontrol edin. Bu, satır içi ve URI geçişini yakalayan onaylamadır.
- Her görev türü için çoğaltın. Metinden videoya, görüntüden videoya ve uzatma için her biri için bir kaydedilmiş istek. Google Omni 1.2'yi piyasaya sürdüğünde, üç istek çalıştırırsınız ve neyin değiştiğini dakikalar içinde öğrenirsiniz.
Apidog video oluşturmaz ve bir yapay zeka çerçevesi değildir. İsteği oluşturduğunuz, gönderdiğiniz ve yanıtı belirlediğiniz bir standarda göre tuttuğunuz yerdir. Harcamalarınızı artırmadan önce bu donanıma sahip olmak istiyorsanız Apidog'u indirin.
Yaygın Hatalar ve Düzeltmeler
- Uç noktada 404. `/v1beta/models/gemini-omni-1.1-flash:generateContent` adresini çağırıyorsunuz. Omni, modelin gövdede olduğu `/v1beta/interactions` adresini kullanır.
- Boş `output_video.data`. Video 4MB'ı aştığı için yanıt bir URI olarak geri geldi. `output_video.uri`'yi okuyun ve Files API aracılığıyla indirin.
- Model bulunamadı. Yapılandırmanızda `gemini-omni-flash-preview` olup olmadığını kontrol edin. Bu uç nokta 30 Eylül 2026'da kullanımdan kaldırılacak.
- Yüklenen bir videoyu düzenleme başarısız oluyor. Yüklenen videoların düzenlenmesi EEA, İsviçre ve Birleşik Krallık'ta kullanılamaz. Model tarafından oluşturulan videolar orada hala çalışır.
- Uzatma isteği reddedildi. Girdi videoları 10 saniye ile sınırlıdır, uzatma yalnızca sona ekler ve bir yüklemeyi uzatırken diyalog ekleyemezsiniz.
Sıkça Sorulan Sorular
- Gemini Omni hangi uç noktayı kullanır? `POST https://generativelanguage.googleapis.com/v1beta/interactions`, istek gövdesinde `gemini-omni-1.1-flash` ile birlikte.
- Gemini Omni API için ücretsiz bir katman var mı? Hayır. Her üretim faturalandırılır. Metin modelleri, ücretsiz AI Studio erişimine sahip olanlardır.
- Sıcaklık veya negatif bir istem ayarlayabilir miyim? Hayır. Sistem talimatları, sıcaklık, `top_p`, durdurma dizileri ve negatif istemler desteklenmez. Hariç tutmaları istem metnine ekleyin.
- Dikey video nasıl oluştururum? `response_format` içinde `aspect_ratio`'yu `9:16` olarak ayarlayın.
- Oluşturulan videolarda filigran var mı? Evet. Tüm çıktılar, izleyiciler tarafından görünmez ve programlı olarak tespit edilebilir SynthID taşır.
- Bu, Veo API ile nasıl karşılaştırılır? Farklı uç nokta, farklı fiyatlandırma, farklı güçlü yönler. Omni 1.1 Flash ve Veo 3.1 karşılaştırması dengeyi ele alır ve Veo 3.1 API rehberi bu entegrasyonun ayrıntılarını içerir.
Tüm entegrasyon, iki zorunlu alan ve her iki teslimat şeklini de yöneten bir yanıt işleyicisinden oluşur. Önce 360p bir çağrının çalışmasını sağlayın, onaylamalarla kaydedin, ardından altyapıya güvendiğinizde çözünürlüğü artırın. Parametre listesinin gelişimi için resmi Omni belgelerini okuyun.
