Membuat Video dengan Gemini Omni 1.1 Flash melalui API
Anda memanggil Gemini Omni 1.1 Flash dengan ID model gemini-omni-1.1-flash melalui Google Interactions API, bukan endpoint generateContent untuk model teks. Jika Anda hanya menyalin cuplikan teks Gemini lalu mengganti nama model, hasilnya adalah 404.
Panduan ini membawa Anda dari terminal kosong hingga permintaan pembuatan video yang dapat diuji ulang. Anda akan menyiapkan kunci API, melakukan panggilan pertama dengan curl dan Python, memahami parameter yang tersedia maupun yang tidak didukung, menangani respons besar, serta menyimpan pengujian yang dapat diulang.
Model ini menjadi GA pada 27 Agustus 2026. Lihat apa yang baru di Gemini Omni 1.1 Flash untuk detail fiturnya.
Persiapan
Anda membutuhkan:
- Akun Google untuk masuk ke AI Studio.
- Kunci API Gemini dari Google AI Studio.
- Penagihan yang aktif. Omni tidak memiliki tingkat gratis, berbeda dengan jalur gratis model teks. Permintaan pertama akan dikenai biaya.
- Cara mengirim permintaan HTTP, seperti curl, Python SDK, atau klien API.
Simpan kunci sebagai variabel lingkungan agar tidak masuk ke repositori:
export GEMINI_API_KEY="your_key_here"
SDK resmi akan membaca variabel tersebut secara otomatis.
Panggilan video pertama
Gunakan POST ke /v1beta/interactions:
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."
}'
Permintaan minimum hanya memerlukan model dan input. Video hasil generasi dikembalikan sebagai base64 di output_video.data.
Instal SDK Python:
pip install google-genai
Kemudian simpan videonya:
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 menggunakan paket @google/genai:
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'));
}
Generasi membutuhkan waktu. Durasi, resolusi, dan beban API memengaruhi latensi, jadi gunakan timeout klien yang cukup panjang.
Mengatur resolusi dan rasio aspek
Format output ditentukan melalui response_format:
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",
},
)
Nilai yang didukung:
| Bidang | Nilai | Default |
|---|---|---|
type |
video |
video |
aspect_ratio |
16:9, 9:16
|
16:9 |
resolution |
360p, 720p, 1080p, 4k
|
720p |
delivery |
inline base64, uri
|
inline |
Gunakan 360p untuk draf. Generasinya hingga 60% lebih cepat dibandingkan 720p dan biayanya sepertiga. Render ulang versi final pada resolusi lebih tinggi setelah prompt tervalidasi.
1080p dan 4k adalah upscale dari bingkai yang dihasilkan, bukan render asli. Lihat rincian harga Gemini Omni 1.1 Flash untuk biaya setiap tingkat resolusi per detik.
Parameter yang tidak didukung
Gemini Omni 1.1 Flash tidak mendukung:
- Instruksi sistem
temperaturetop_p- Stop sequences
- Bidang prompt negatif
Jika ingin mengecualikan sesuatu dari adegan, tuliskan pengecualian langsung di prompt. Contoh dari dokumentasi menggunakan pendekatan ini:
menggunakan gambar hanya sebagai panduan untuk gerakan, jangan tampilkan gambar di video akhir.
Input gambar, keyframe, dan referensi
Gunakan daftar input, bukan string, saat menyertakan media. Contoh gambar-ke-video:
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"},
],
)
Dua gambar dapat digunakan sebagai bingkai awal dan akhir. Model akan menghasilkan gerakan di antaranya:
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."},
],
)
Referensi video bekerja melalui Files API. Batasnya adalah tiga klip, masing-masing berdurasi hingga tiga detik. Audio pada klip diabaikan; model hanya menggunakannya untuk memahami gerakan dan penampilan.
Mengedit video dalam beberapa putaran
Omni mendukung pengeditan percakapan dengan meneruskan ID interaksi sebelumnya:
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.",
)
Anda tidak perlu mengunggah ulang video atau mendeskripsikan ulang adegan. Mekanisme yang sama digunakan untuk memperluas adegan, seperti dibahas dalam panduan perluasan adegan hingga 40 detik.
Menangani video di atas 4 MB
Video yang lebih besar dari 4 MB dikembalikan sebagai URI, bukan base64 inline. File tersebut harus selesai diproses sebelum diunduh.
Ini sering terjadi pada output 1080p. Jika kode hanya membaca output_video.data, hasilnya kosong dan kegagalan dapat terlihat seperti kegagalan diam-diam.
Minta pengiriman URI secara eksplisit, lalu lakukan polling:
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)
Penangan respons sebaiknya mendukung kedua bentuk pengiriman sejak awal. Resolusi dapat menentukan apakah Anda menerima base64 inline atau URI.
Menguji permintaan dengan Apidog
Setelah panggilan berhasil, tantangannya adalah menjaga integrasi yang mahal, lambat, dan tidak deterministik tetap terpantau. Riwayat perintah curl tidak cukup untuk mengetahui kapan perilakunya berubah.
Siapkan pengujian di Apidog:
- Buat proyek dan lingkungan. Simpan
GEMINI_API_KEYsertaMODEL_IDsebagai variabel lingkungan agar kunci tidak masuk ke permintaan tersimpan. - Tambahkan permintaan
POSTkehttps://generativelanguage.googleapis.com/v1beta/interactions. - Gunakan body JSON berisi
modeldaninput, lalu referensikan model dengan{{MODEL_ID}}. - Tingkatkan timeout karena generasi video jauh lebih lama daripada penyelesaian teks.
- Tambahkan pernyataan untuk memeriksa kode status, keberadaan
output_video, dan bentuk respons sesuai resolusi yang digunakan. - Duplikasi permintaan untuk teks-ke-video, gambar-ke-video, dan ekstensi video.
Dengan begitu, saat Google merilis Omni 1.2, Anda dapat menjalankan seluruh rangkaian pengujian dan segera mengetahui perubahan perilakunya.
Apidog bukan generator video atau kerangka kerja AI. Apidog digunakan untuk membangun, mengirim, dan memvalidasi permintaan sesuai standar Anda. Unduh Apidog sebelum meningkatkan pengeluaran API.
Kesalahan umum dan solusinya
-
404 pada endpoint: Anda memanggil
/v1beta/models/gemini-omni-1.1-flash:generateContent. Omni menggunakan/v1beta/interactions, dengan model di dalam body. -
output_video.datakosong: Respons dikembalikan sebagai URI karena video melebihi 4 MB. Bacaoutput_video.uri, lalu unduh melalui Files API. -
Model tidak ditemukan: Periksa apakah
gemini-omni-flash-previewmasih digunakan di konfigurasi. Endpoint tersebut akan dihentikan pada 30 September 2026. - Pengeditan video yang diunggah gagal: Fitur ini tidak tersedia di EEA, Swiss, dan Inggris. Video yang dihasilkan model tetap berfungsi di wilayah tersebut.
- Permintaan ekstensi ditolak: Video input dibatasi hingga 10 detik. Ekstensi hanya ditambahkan di bagian akhir, dan dialog tidak dapat ditambahkan saat memperpanjang video yang diunggah.
FAQ
Endpoint apa yang digunakan Gemini Omni?
Gunakan:
POST https://generativelanguage.googleapis.com/v1beta/interactions
Setel gemini-omni-1.1-flash di dalam body permintaan.
Apakah Gemini Omni API memiliki tingkat gratis?
Tidak. Setiap generasi dikenai biaya. Jalur gratis AI Studio berlaku untuk model teks.
Bisakah saya mengatur temperature atau prompt negatif?
Tidak. Instruksi sistem, temperature, top_p, stop sequences, dan prompt negatif tidak didukung. Tulis pengecualian langsung di prompt.
Bagaimana cara membuat video vertikal?
Atur aspect_ratio ke 9:16 di dalam response_format.
Apakah video yang dihasilkan memiliki watermark?
Ya. Semua output membawa SynthID, yang tidak terlihat oleh pemirsa tetapi dapat dideteksi secara terprogram.
Bagaimana perbandingannya dengan Veo API?
Endpoint, harga, dan keunggulannya berbeda. Baca Gemini Omni 1.1 Flash vs Veo 3.1 untuk perbandingan, serta panduan Veo 3.1 API untuk spesifikasi integrasinya.
Integrasi dasarnya terdiri dari dua bidang wajib dan penangan respons yang mendukung base64 maupun URI. Mulailah dengan panggilan 360p, simpan dengan pernyataan, lalu naikkan resolusi setelah sistem tervalidasi. Untuk parameter terbaru, lihat dokumentasi resmi Omni.
Top comments (0)