Gemini Omni Flash (gemini-omni-flash-preview) adalah model multimodal berperforma tinggi yang dirancang untuk pembuatan, pengeditan, dan kontrol sinematik video berkecepatan tinggi.
Gemini Omni dibangun berdasarkan kemampuan inti berikut yang membedakannya dari model video sebelumnya:
- Multimodalitas native: model ini memproses teks, gambar, audio, dan video secara bersamaan, sehingga memberikan output yang lebih kohesif, konsisten, dan dapat dikontrol.
- Pengeditan via percakapan: didukung oleh Interactions API, memungkinkan Anda menyempurnakan dan mengedit video secara berulang melalui percakapan dalam bahasa alami. Jelaskan apa yang ingin Anda ubah, dan model akan menerapkan pengeditan sambil mempertahankan bagian video yang ingin Anda pertahankan.
- Pengetahuan dunia: Gemini Omni menggabungkan pemahaman tentang fisika dengan pengetahuan Gemini tentang sejarah, sains, dan konteks budaya, sehingga menjembatani kesenjangan dari fotorealisme hingga penceritaan yang bermakna.
Pembuatan video dari teks
Buat video dari perintah teks. Model ini menghasilkan video dengan audio berdasarkan deskripsi teks Anda. Tulis perintah dengan detail seperti deskripsi adegan, gerakan kamera, pencahayaan, dan suasana hati untuk mendapatkan hasil terbaik.
Python
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
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
import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
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'));
}
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-flash-preview",
"input": "A marble rolling fast on a chain reaction style track, continuous smooth shot."
}'
Skema respons REST
Kolom kemudahan interaction.output_video hanya SDK.
Dapatkan output video dari array steps saat menggunakan REST API secara langsung.
Struktur JSON REST mentah:
{
"steps": [
{ "type": "user_input", "content": [{"type": "text", "text": "..."}] },
{ "type": "thought", "content": [{"text": "...", "type": "thought"}] },
{
"type": "model_output",
"content": [
{
"type": "video",
"mime_type": "video/mp4",
"data": "AAAAIGZ0eXBpc29t..." // Base64 encoded video data
}
]
}
],
"id": "v1_...",
"status": "completed",
"model": "gemini-omni-flash-preview",
"object": "interaction"
}
Mengontrol rasio aspek
Setel aspect_ratio ke "9:16" untuk membuat video potret. Lanskap (16:9)
adalah default.
Python
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
input="A futuristic city with neon lights and flying cars, cyberpunk style",
response_format={
"type": "video", # optional
"aspect_ratio": "9:16" # Supported values: "9:16", "16:9"
}
)
with open("example.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
JavaScript
import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
input: 'A futuristic city with neon lights and flying cars, cyberpunk style',
response_format: {
type: 'video', // optional
aspect_ratio: '9:16' // Supported values: '9:16', '16:9'
},
});
if (interaction.output_video?.data) {
fs.writeFileSync('example.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-flash-preview",
"input": "A futuristic city with neon lights and flying cars, cyberpunk style",
"response_format": {
"type": "video",
"aspect_ratio": "9:16"
}
}'
Pembuatan video dari gambar
Anda dapat memberikan gambar referensi dengan perintah teks Anda. Bergantung pada perintah Anda, model akan memutuskan cara menggunakan gambar. Fitur ini berguna untuk menghidupkan foto produk, ilustrasi, atau foto.
Contoh berikut menunjukkan cara menggunakan gambar referensi sketsa ikan yang melompat keluar dari air:
Dengan perintah berikut:
turn this into realistic footage, using the drawing only as a guide for movement, do not show the drawing in the final video
Untuk membuat video gambar yang realistis.
Python
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
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"}
],
)
with open("clownfish.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
JavaScript
import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
input: [
{ type: 'image', data: base64Image, 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' }
]
});
if (interaction.output_video?.data) {
fs.writeFileSync('clownfish.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-flash-preview",
"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"}
]
}'
Referensi subjek
Anda dapat membuat video yang menyertakan subjek tertentu yang diberikan sebagai gambar referensi. Misalnya, kode berikut menunjukkan cara menyediakan 2 gambar kucing dan benang untuk membuat video kucing yang sedang bermain dengan benang.
Python
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
input=[
{"type": "image", "data": cat_b64, "mime_type": "image/png"},
{"type": "image", "data": yarn_b64, "mime_type": "image/png"},
{"type": "text", "text": "A cat playfully batting at a ball of yarn."}
],
)
with open("cat.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
JavaScript
import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
input: [
{ type: 'image', data: catData, mime_type: 'image/png' },
{ type: 'image', data: yarnData, mime_type: 'image/png' },
{ type: 'text', text: 'A cat playfully batting at a ball of yarn.' }
]
});
if (interaction.output_video?.data) {
fs.writeFileSync('cat.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-flash-preview",
"input": [
{"type": "image", "data": "'"$CAT_B64"'", "mime_type": "image/png"},
{"type": "image", "data": "'"$YARN_B64"'", "mime_type": "image/png"},
{"type": "text", "text": "A cat playfully batting at a ball of yarn."}
]
}'
Parameter tugas
Gunakan parameter task di video-config untuk menunjukkan dengan jelas perilaku yang diinginkan. Misalnya, jika Anda ingin model membuat video dari gambar, Anda dapat menyetel parameter ke image_to_video. Jika tidak ditetapkan, model akan menyimpulkan apa yang Anda inginkan dari perintah.
Nilai yang diizinkan adalah:
text_to_videoimage_to_videoreference_to_videoedit
Contoh berikut menunjukkan cara menyetelnya untuk contoh gambar ke video yang ditampilkan sebelumnya.
Python
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
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"}
],
generation_config={
"video_config": {
"task": "image_to_video",
}
},
)
with open("example.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
JavaScript
import { GoogleGenAI } from "@google/genai";
import * as fs from 'fs';
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
input: [
{ type: 'image', data: base64Image, 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' }
],
generationConfig: {
videoConfig: {
task: 'image_to_video',
}
}
});
if (interaction.output_video?.data) {
fs.writeFileSync('example.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-flash-preview",
"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"
}
],
"generation_config": {
"video_config": {
"task": "image_to_video"
}
}
}'
Pengeditan video dengan status
Buat video dan edit secara berulang menggunakan perintah lanjutan. Setiap giliran
dibuat berdasarkan hasil sebelumnya. Model ini mengingat konteks video, menerapkan perubahan Anda sambil mempertahankan elemen yang tidak Anda sebutkan. Gunakan
previous_interaction_id untuk melacak histori percakapan dan status video yang dihasilkan
tanpa mengupload ulang video sebelumnya.
Contoh berikut menunjukkan cara membuat video pertama, lalu mengeditnya:
Python
import base64
from google import genai
client = genai.Client()
# Turn 1: Generate initial video
res1 = client.interactions.create(model="gemini-omni-flash-preview", input="A woman playing violin outdoors.")
# Turn 2: Edit the previous video
res2 = client.interactions.create(
model="gemini-omni-flash-preview",
previous_interaction_id=res1.id,
input="Make the violin invisible."
)
with open("example.mp4", "wb") as f:
f.write(base64.b64decode(res2.output_video.data))
JavaScript
import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});
// Turn 1: Generate initial video
const res1 = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
input: 'A woman playing violin outdoors.',
});
// Turn 2: Edit the previous video
const res2 = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
previous_interaction_id: res1.id,
input: 'Make the violin invisible.',
});
if (res2.output_video?.data) {
fs.writeFileSync('example.mp4', Buffer.from(res2.output_video.data, 'base64'));
}
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-flash-preview",
"previous_interaction_id": "'"$PREVIOUS_ID"'",
"input": "Make the violin invisible."
}'
Contoh video awal:
Contoh video yang diedit:
Setiap giliran dalam percakapan akan menghasilkan video baru. Model ini memahami konteks dari giliran sebelumnya, sehingga Anda dapat melakukan perubahan inkremental seperti menyesuaikan pencahayaan dan mengganti latar belakang, tanpa mendeskripsikan ulang seluruh adegan.
Mengedit video Anda sendiri
Upload video Anda menggunakan Files API untuk mengeditnya dengan Gemini Omni Flash.
Contoh berikut menunjukkan cara mengedit video asli berikut:
Python
import time
import base64
from google import genai
client = genai.Client()
# Upload video using the file API
video_file = client.files.upload(file="Video.mp4")
while video_file.state == "PROCESSING":
print('Waiting for video to be processed.')
time.sleep(10)
video_file = client.files.get(name=video_file.name)
if video_file.state == "FAILED":
raise ValueError(video_file.state)
print(f'Video processing complete: ' + video_file.uri)
# Edit your video
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
input=[
{"type": "document", "uri": video_file.uri},
{"type": "text", "text": "When the person touches the mirror, make the mirror ripple beautifully like liquid, and the person's arm turns into reflective mirror material"}
],
)
with open("example.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
JavaScript
import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';
const ai = new GoogleGenAI({});
// Upload video using the file API
let videoFile = await ai.files.upload({
file: 'Video.mp4',
});
while (videoFile.state === 'PROCESSING') {
console.log('Waiting for video to be processed.');
await new Promise(r => setTimeout(r, 10000));
videoFile = await ai.files.get({ name: videoFile.name });
}
if (videoFile.state === 'FAILED') {
throw new Error(videoFile.state);
}
console.log('Video processing complete: ' + videoFile.uri);
// Edit your video
const interaction = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
input: [
{ type: 'document', uri: videoFile.uri },
{ type: 'text', text: "When the person touches the mirror, make the mirror ripple beautifully like liquid, and the person's arm turns into reflective mirror material" }
],
});
if (interaction.output_video?.data) {
fs.writeFileSync('example.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}
REST
#!/bin/bash
VIDEO_B64=$(encode_file "$VIDEO_FILE")
curl -sS -w "\n[HTTP %{http_code}]\n" "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: ${API_KEY}" \
-H "Content-Type: application/json" \
-d @- <<EOF > video_editing_response.json
{
"model": "gemini-omni-flash-preview",
"input": [
{
"type": "user_input",
"content": [
{
"type": "video",
"mime_type": "video/mp4",
"data": "$VIDEO_B64"
},
{
"type": "text",
"text": "When the person touches the mirror, make the mirror ripple beautifully like liquid, and the person's arm turns into reflective mirror material"
}
]
}
],
"response_format": { "type": "video" }
}
EOF
Contoh video yang diedit:
Mengambil video dengan URI
Gunakan parameter delivery="uri" di
response_format untuk mengambil video yang dibuat dan berukuran lebih dari 4 MB.
Tindakan ini akan menampilkan URI yang dihosting oleh Google yang dapat Anda polling hingga video ACTIVE sebelum didownload.
Python
import time
from google import genai
client = genai.Client()
# 1. Request video via URI delivery
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
input="A beautiful sunset.",
response_format={"type": "video", "delivery": "uri"}
)
# 2. Extract file name and poll for ACTIVE state
video_output = interaction.output_video
file_name = video_output.uri.split("/")[-1] # Extract ID
print("Waiting for video processing...")
while True:
f_info = client.files.get(name=f"files/{file_name}")
if f_info.state.name == "ACTIVE":
break
elif f_info.state.name == "FAILED":
raise RuntimeError("Generation failed.")
time.sleep(5)
# 3. Download the final video
video_bytes = client.files.download(file=video_output.uri)
with open("output.mp4", "wb") as f:
f.write(video_bytes)
JavaScript
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({});
// 1. Request video via URI delivery
const interaction = await ai.interactions.create({
model: 'gemini-omni-flash-preview',
input: 'A beautiful sunset.',
response_format: { type: 'video', delivery: 'uri' },
});
// 2. Extract file name and poll for ACTIVE state
const videoOutput = interaction.output_video;
const fileId = videoOutput.uri.match(/files\/([a-zA-Z0-9]+)/)[1];
const name = `files/${fileId}`;
console.log("Waiting for video processing...");
while (true) {
const fInfo = await ai.files.get({ name });
if (fInfo.state.name === 'ACTIVE') break;
if (fInfo.state.name === 'FAILED') throw new Error("Generation failed.");
await new Promise(r => setTimeout(r, 5000));
}
// 3. Download the final video
await ai.files.download({
file: videoOutput,
downloadPath: 'output.mp4',
});
console.log("💾 Saved video to output.mp4");
REST
#!/bin/bash
# 1. Initial request to generate the video
RESPONSE=$(curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-flash-preview",
"input": "A beautiful sunset over a calm ocean.",
"response_format": {"type": "video", "delivery": "uri"}
}')
# Extract FILE_ID from the URI (e.g., "files/abc-123" -> "abc-123")
FILE_URI=$(echo $RESPONSE | jq -r '.output_video.uri')
FILE_ID=$(echo $FILE_URI | cut -d'/' -f2)
echo "Video requested (ID: $FILE_ID). Waiting for processing..."
# 2. Polling loop
while true; do
# Get current file status
STATUS_JSON=$(curl -s -X GET "https://generativelanguage.googleapis.com/v1beta/files/$FILE_ID?key=$API_KEY")
STATE=$(echo $STATUS_JSON | jq -r '.state')
if [ "$STATE" == "ACTIVE" ]; then
echo "Processing complete! Downloading..."
break
elif [ "$STATE" == "FAILED" ]; then
echo "Error: Generation failed."
exit 1
else
echo "Current state: $STATE... (waiting 5s)"
sleep 5
fi
done
# 3. Final download
curl -L -X GET "https://generativelanguage.googleapis.com/v1beta/files/$FILE_ID:download?alt=media&key=$API_KEY" \
--output "output.mp4"
echo "Done! Video saved to output.mp4"
Struktur JSON REST mentah (URI):
{
"steps": [
{ "type": "user_input", "content": [{"type": "text", "text": "..."}] },
{ "type": "thought", "content": [{"text": "...", "type": "thought"}] },
{
"type": "model_output",
"content": [
{
"type": "video",
"mime_type": "video/mp4",
"uri": "https://generativelanguage.googleapis.com/v1beta/files/...:download?alt=media"
}
]
}
],
"id": "v1_...",
"status": "completed",
"model": "gemini-omni-flash-preview",
"object": "interaction"
}
Praktik Terbaik
- Gunakan pengiriman URI untuk video berukuran besar: Untuk video yang berukuran lebih besar dari 4 MB (>720p jika tersedia), gunakan
delivery="uri"diresponse_formatuntuk menghindari batas ukuran payload. - Performa yang dioptimalkan: Tetapkan
background=false,store=false, danstream=falseuntuk pembuatan unary sinkron yang lebih cepat. Perhatikan bahwa setelanstore=falseberarti video yang dibuat tidak dapat diedit pada gilirannya menggunakanprevious_interaction_id. - Presisi perintah: Lihat bagian panduan perintah untuk mengetahui detailnya.
Batasan
- Mengupload dan mengedit gambar yang berisi anak di bawah umur tidak didukung di Wilayah Ekonomi Eropa, Swiss, dan Inggris Raya.
- Mengupload dan mengedit gambar yang berisi orang tertentu yang dapat dikenali tidak didukung.
- Saat ini, pengeditan video yang diupload tidak tersedia untuk pengguna di Wilayah Ekonomi Eropa (EEA), Swiss, dan Inggris Raya (pengeditan video yang dibuat oleh model didukung).
- Mengupload referensi audio tidak didukung di versi API saat ini.
- Referensi video berdurasi hingga 3 detik diterima oleh skema API, tetapi saat ini tidak diproses dengan benar oleh model.
- Mereferensikan atau menyimpulkan beberapa video tidak didukung. Mencoba perintah multi-video dapat menyebabkan penurunan performa model atau output yang tidak terduga.
- Ekstensi video dan interpolasi video (membuat video di antara frame pertama dan terakhir) tidak didukung.
- Pengeditan suara tidak didukung.
- Throughput yang disediakan tidak didukung.
- Petunjuk sistem, temperatur,
top_p, urutan penghentian, dan perintah negatif tidak didukung (Anda dapat memasukkan perintah negatif dalam perintah biasa: misalnya, "Jangan lakukan X"). - Penggunaan video YouTube sebagai sumber media tidak didukung.
Detail teknis
- Semua video yang dihasilkan menyertakan watermark SynthID, yang tidak terlihat oleh penonton, tetapi dapat dideteksi secara terprogram untuk verifikasi asal.
- Waktu pembuatan video bervariasi berdasarkan durasi, resolusi, dan beban API saat ini. Video yang lebih panjang dan beresolusi lebih tinggi membutuhkan waktu lebih lama untuk dibuat.
- Filter keamanan konten diterapkan pada perintah input dan video yang dihasilkan (dan bergantung pada wilayah Anda). Perintah yang melanggar kebijakan penggunaan akan diblokir.
- Bahasa Inggris (EN) didukung sepenuhnya, tetapi bahasa lain belum dievaluasi, sehingga mungkin berfungsi, tetapi hasilnya dapat bervariasi.
Panduan perintah Gemini Omni Flash
Bagian ini berisi tips dan contoh cara memberikan perintah yang efektif untuk Gemini Omni Flash.
Satu adegan
Secara default, Omni Flash akan mencoba membuat video dengan beberapa pengambilan gambar yang berbeda. Model ini akan mencoba membuat narasi yang menarik berdasarkan perintah.
Jika Anda ingin video output hanya berisi satu adegan, Anda harus memberikan perintah untuk itu:
- Dalam satu adegan tanpa jeda
- Dalam satu pengambilan gambar berkelanjutan
- Tidak ada potongan adegan
Contoh:
Continuous, unbroken handheld shot of a fluffy tabby cat sitting on a sunny windowsill, looking out into a leafy garden. The cat's tail twitches slowly, and its ears rotate slightly toward ambient noises. Sunbeams illuminate dust motes in the air. Sound design: Gentle breeze, distant bird chirps. No dialogue.
Menghapus elemen yang tidak diinginkan
Jika video yang dihasilkan berisi hal-hal yang tidak Anda inginkan, sertakan perintah negatif sederhana untuk menghindarinya:
- Tidak ada dialog
- Tidak ada hiasan
- Tidak ada efek suara tambahan
Perintah untuk pengeditan
Perintah sederhana berfungsi paling baik untuk pengeditan video. Perintah yang terlalu deskriptif dapat menyebabkan perubahan yang tidak diinginkan.
Berikut adalah contoh perintah pengeditan sederhana lainnya:
- Ubah video ini menjadi anime
- Memakaikan topi modis pada orang ini
- Ubah pencahayaan agar lebih dramatis
- Ubah teks pada papan menjadi "Omni Flash"
Saat mengedit aspek tertentu dari video, sertakan "Keep everything else the same" untuk mempertahankan konsistensi visual.
Berikut adalah beberapa contoh untuk menunjukkan cara menerapkan teknik ini:
- Hindari:
In the video of the man sitting on the sofa, please add a small black cat that runs from the right side of the screen, jumps onto his lap, and then he starts to stroke its head while looking down.- Sederhanakan:
Add a cat that jumps onto his lap, he begins to pet it. Keep everything else the same.
- Sederhanakan:
- Hindari:
Please remove the cell phone that the person is holding in their hand and fill in the background so it looks like they are just holding their hand empty.- Sederhanakan:
Make the phone invisible. Keep everything else the same.
- Sederhanakan:
Membuat perintah audio
Secara default, model akan mencoba membuat trek audio yang sesuai untuk video. Hal ini mungkin tidak selalu sesuai dengan yang Anda inginkan. Anda dapat menggunakan perintah untuk mendeskripsikan jenis audio yang Anda inginkan. Hal ini sangat penting terutama jika Anda ingin musik dalam video Anda:
- Sertakan musik latar belakang yang menenangkan
- Video memiliki irama techno yang bersemangat
- Audio adalah siaran radio yang berbunyi sengau di latar belakang, memutar lagu
Acara pengaturan waktu
Anda dapat meminta agar sesuatu terjadi pada waktu tertentu dalam video, tidak ada sintaksis yang tepat yang diperlukan dan Anda dapat menggunakan bahasa alami. Hal ini sangat berguna dalam membuat potongan adegan, ritme, atau urutan cepat Anda sendiri. Lihat contoh berikut:
- Setelah 3 detik, seorang wanita memasuki adegan.
- Pada detik ke-5, chorus dimulai di audio latar belakang.
- Setiap 2 detik, beralih ke frame baru.
- Dalam urutan cepat, setiap setengah detik (12 frame pada 24 fps) mengubah adegan ke lokasi baru.
Anda juga dapat menggunakan sintaks kode waktu:
[0-3s] A person is walking
[3-6s] They stop and turn around
[6-10s] They start running
Meta prompting
Anda dapat meminta Gemini Omni Flash untuk memperhatikan kualitas umum atau prinsip pembuatan video:
- Pertimbangkan detail mikro, ekspresi, dan pengaturan waktu untuk menciptakan adegan yang sangat kaya dan mendetail, tetapi sepenuhnya alami.
- Berikan deskripsi yang sangat mendetail tentang karakter dan lingkungan. Menerapkan prinsip desain kostum pada karakter. Tentukan orang, item, dan objek dalam adegan secara spesifik.
- Sertakan banyak detail yang sesuai dalam elemen latar belakang untuk membuat adegan terasa realistis dan alami.
- Buat video cepat yang menampilkan
[thing]langka yang berbeda setiap 1 detik, musik yang ceria, dan sertakan teks untuk memberi label pada objek.
Teks dalam video
Anda dapat memberikan perintah untuk menyertakan teks dalam video dan Gemini Omni akan merendernya dengan cara yang benar dan mudah dibaca. Jika akan ada teks yang muncul secara alami dalam video Anda, bahkan dalam elemen latar belakang, hal ini dapat membantu menentukan apa yang harus dikatakan.
- Satu kata di layar dalam satu waktu: "tahu, kah, kamu, bahwa, Omni, bisa, membuat, teks, yang, keren?" Setiap kata muncul selama 1 detik dengan gaya animasi yang berbeda. Tidak ada dialog.
- Ada rambu jalan yang bertuliskan: "Ini adalah generasi AI oleh Omni", ada etalase yang bertuliskan: "Semua yang Anda butuhkan AI", ada mobil dengan pelat nomor: "OMN111"
Menggunakan tag dalam perintah untuk menetapkan peran gambar
Anda dapat menggunakan tag untuk mengikat media yang diupload ke peran pembuatan tertentu. Dengan begitu, Anda dapat menentukan apakah setiap gambar adalah frame awal atau referensi.
1. Tag sederhana (direkomendasikan)
Untuk kasus sederhana di mana peran gambar jelas dari perintah, Anda dapat mengikat gambar ke peran secara langsung:
<FIRST_FRAME>: gunakan gambar sebagai frame awal video, misalnya:<FIRST_FRAME> a woman is walking<IMAGE_REF_N>: menggunakan gambar sebagai referensi, misalnya:in the style of <IMAGE_REF_0> a woman <IMAGE_REF_1> is walking(menggabungkan referensi gaya dari gambar pertama dan referensi subjek dari gambar kedua). Referensi gambar dimulai dari 0.
Berikut adalah contoh dengan 6 gambar referensi:
[0-3s] A studio fashion sequence. Starting with woman <IMAGE_REF_0>, she is holding <IMAGE_REF_1>
[3-6s] Then we see the man <IMAGE_REF_2> holding <IMAGE_REF_3>
[6-10s] And finally another woman <IMAGE_REF_4> who is holding <IMAGE_REF_5> while walking.
2. Deklarasi eksplisit
Untuk kasus yang lebih kompleks dengan beberapa gambar dan beberapa peran, Anda dapat menggunakan tag awalan eksplisit yang dipasangkan dengan sufiks petunjuk bahasa natural.
- Mendeklarasikan sumber dan gambar referensi:
[# Sources <FIRST_FRAME>@Image1]akan menggunakan gambar pertama sebagai frame awal.[# References <IMAGE_REF_0>@Image1]akan menggunakan gambar pertama sebagai referensi.[# References <IMAGE_REF_1>@Image2]akan menggunakan gambar kedua sebagai referensi.[# References <IMAGE_REF_0>@Image1 <IMAGE_REF_1>@Image2]akan menggunakan kedua gambar sebagai referensi.[# Sources <FIRST_FRAME>@Image1] [# References <IMAGE_REF_0>@Image2]akan menggunakan gambar pertama sebagai frame awal dan gambar kedua sebagai referensi.
- Petunjuk panduan: Tambahkan petunjuk panduan di bagian paling akhir perintah Anda:
- Untuk frame awal:
"Use this image as the starting frame." - Untuk gambar referensi:
"Use the given image(s) as references for video generation. The images should not be used as literal initial frames."
- Untuk frame awal:
Contoh perintah yang diperluas:
[# Sources <FIRST_FRAME>@Image1] [# References <IMAGE_REF_0>@Image2] a woman <IMAGE_REF_0> is walking. Use Image1 as the starting frame. Use Image2 as a reference for the video generation.
Langkah berikutnya
- Mulai menggunakan Gemini Omni Flash dengan bereksperimen di Omni Quickstart Colab.
- Pelajari cara menulis perintah yang lebih baik lagi dengan Pengantar desain perintah kami.