Gemini Omni Flash (gemini-omni-flash-preview) ist ein leistungsstarkes multimodales Modell, das für die schnelle Videogenerierung, ‑bearbeitung und filmische Steuerung entwickelt wurde.
Gemini Omni basiert auf den folgenden Kernfunktionen, die es von früheren Videomodellen unterscheiden:
- Native Multimodalität:Das Modell verarbeitet Text, Bilder, Audio und Video gleichzeitig und liefert so kohärentere, konsistentere und besser steuerbare Ausgaben.
- Konversationelle Bearbeitung:Diese Funktion wird durch die Interactions API ermöglicht und erlaubt es Ihnen, Ihre Videos durch Konversation in natürlicher Sprache iterativ zu optimieren und zu bearbeiten. Beschreiben Sie, was Sie ändern möchten, und das Modell nimmt die Änderung vor, wobei die Teile des Videos, die Sie behalten möchten, erhalten bleiben.
- Weltwissen:Gemini Omni kombiniert ein Verständnis von Physik mit dem Wissen von Gemini über Geschichte, Wissenschaft und kulturellen Kontext und schlägt so die Brücke vom Fotorealismus zum aussagekräftigen Storytelling.
Text-zu-Video-Generierung
Video aus einem Text-Prompt generieren Das Modell generiert anhand Ihrer Textbeschreibung ein Video mit Audio. Für optimale Ergebnisse sollten Sie Prompts mit Details wie Szenenbeschreibung, Kamerabewegung, Beleuchtung und Stimmung verfassen.
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."
}'
REST-Antwortschema
Das Convenience-Feld interaction.output_video ist nur für SDKs verfügbar.
Wenn Sie die REST API direkt verwenden, rufen Sie die Videoausgabe aus dem steps-Array ab.
Rohe REST-JSON-Struktur:
{
"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"
}
Seitenverhältnis anpassen
Stellen Sie das aspect_ratio auf "9:16" ein, um Videos im Hochformat zu erstellen. Das Standardformat ist das Querformat (16:9).
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"
}
}'
Bild-zu-Video-Generierung
Sie können Ihrem Text-Prompt ein Referenzbild hinzufügen. Je nach Prompt entscheidet das Modell, wie das Bild verwendet werden soll. Das ist nützlich, um Produktaufnahmen, Illustrationen oder Fotos zum Leben zu erwecken.
Im folgenden Beispiel wird gezeigt, wie Sie das Referenzbild einer Zeichnung eines Fisches verwenden, der aus dem Wasser springt:
Mit dem folgenden Prompt:
turn this into realistic footage, using the drawing only as a guide for movement, do not show the drawing in the final video
Ein realistisches Video der Zeichnung generieren
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"}
]
}'
Motivreferenz
Sie können ein Video mit bestimmten Motiven generieren, die als Referenzbilder bereitgestellt werden. Im folgenden Codebeispiel sehen Sie, wie Sie zwei Bilder einer Katze und eines Wollknäuels bereitstellen, um ein Video zu generieren, in dem die Katze mit dem Wollknäuel spielt.
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 „tasks“
Verwenden Sie den Parameter task im video-config, um das gewünschte Verhalten deutlich anzugeben. Wenn Sie beispielsweise möchten, dass das Modell ein Video aus einem Bild generiert, können Sie den Parameter auf image_to_video festlegen. Wenn dies nicht festgelegt ist, leitet das Modell ab, was Sie vom Prompt erwarten.
Folgende Werte sind zulässig:
text_to_videoimage_to_videoreference_to_videoedit
Im folgenden Beispiel wird gezeigt, wie Sie dies für das oben gezeigte Beispiel für Bild zu Video festlegen.
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"
}
}
}'
Zustandsbehaftete Videobearbeitung
Videos erstellen und mithilfe von Folge-Prompts iterativ bearbeiten Jeder Zug baut auf dem vorherigen Ergebnis auf. Das Modell merkt sich den Videokontext und wendet Ihre Änderungen an, ohne Elemente zu verändern, die Sie nicht erwähnt haben. Verwenden Sie den previous_interaction_id, um den Unterhaltungsverlauf und den generierten Videostatus zu verfolgen, ohne das vorherige Video noch einmal hochzuladen.
Das folgende Beispiel zeigt, wie Sie zuerst ein Video generieren und es dann bearbeiten:
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."
}'
Beispiel für ein ursprüngliches Video:
Beispiel für ein bearbeitetes Video:
Bei jeder Unterhaltungsrunde wird ein neues Video erstellt. Das Modell berücksichtigt den Kontext aus vorherigen Anfragen. So können Sie inkrementelle Änderungen vornehmen, z. B. die Beleuchtung anpassen oder den Hintergrund ändern, ohne die gesamte Szene neu beschreiben zu müssen.
Eigene Videos bearbeiten
Laden Sie Ihre Videos über die Files API hoch, um sie mit Gemini Omni Flash zu bearbeiten.
Das folgende Beispiel zeigt, wie das folgende Originalvideo bearbeitet wird:
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
Beispiel für ein bearbeitetes Video:
Videos mit einem URI abrufen
Verwenden Sie den Parameter delivery="uri" in response_format, um generierte Videos abzurufen, die größer als 4 MB sind.
Dadurch wird ein von Google gehosteter URI zurückgegeben, den Sie abfragen können, bis das Video ACTIVE ist, bevor Sie es herunterladen.
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"
Rohe REST-JSON-Struktur (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"
}
Best Practices
- URI-Bereitstellung für große Videos verwenden:Verwenden Sie für Videos, die größer als 4 MB sind (bei Verfügbarkeit > 720p),
delivery="uri"inresponse_format, um Beschränkungen der Nutzlastgröße zu vermeiden. - Optimierte Leistung:Legen Sie
background=false,store=falseundstream=falsefür eine schnellere, synchrone unäre Generierung fest. Wenn Siestore=falsefestlegen, kann das generierte Video in nachfolgenden Zügen nicht mit demprevious_interaction_idbearbeitet werden. - Prompt-Präzision:Weitere Informationen finden Sie im Abschnitt Anleitung für Prompts.
Beschränkungen
- Das Hochladen und Bearbeiten von Bildern, auf denen Minderjährige zu sehen sind, wird im Europäischen Wirtschaftsraum, in der Schweiz und im Vereinigten Königreich nicht unterstützt.
- Das Hochladen und Bearbeiten von Bildern, auf denen bestimmte erkennbare Personen zu sehen sind, wird nicht unterstützt.
- Das Bearbeiten hochgeladener Videos ist derzeit nicht für Nutzer im Europäischen Wirtschaftsraum (EWR), in der Schweiz und im Vereinigten Königreich verfügbar. Das Bearbeiten von Videos, die vom Modell generiert wurden, wird jedoch unterstützt.
- Das Hochladen von Audio-Referenzen wird in der aktuellen Version der API nicht unterstützt.
- Videoreferenzen mit einer Dauer von bis zu 3 Sekunden werden vom API-Schema akzeptiert, aber derzeit nicht korrekt vom Modell verarbeitet.
- Das Verweisen auf oder Begründen mit mehreren Videos wird nicht unterstützt. Wenn Sie versuchen, mehrere Videos als Prompt zu verwenden, kann dies zu einer schlechteren Modellleistung oder unerwarteten Ausgaben führen.
- Videoerweiterung und Videointerpolation (Generieren von Videos zwischen dem ersten und dem letzten Frame) werden nicht unterstützt.
- Die Sprachbearbeitung wird nicht unterstützt.
- Bereitgestellter Durchsatz wird nicht unterstützt.
- Systemanweisungen, Temperatur,
top_p, Stoppsequenzen und negative Prompts werden nicht unterstützt. Sie können Ihre negativen Prompts in den regulären Prompt einfügen, z. B. „Do not do X“ (Mache nicht X). - YouTube-Videos werden als Medienquelle nicht unterstützt.
Technische Details
- Alle generierten Videos enthalten ein SynthID-Wasserzeichen, das für Zuschauer unsichtbar ist, aber programmatisch zur Überprüfung der Herkunft erkannt werden kann.
- Die Videogenerierungszeiten variieren je nach Dauer, Auflösung und aktueller API-Last. Das Generieren längerer Videos mit höherer Auflösung dauert länger.
- Filter für Inhaltssicherheit werden sowohl auf Eingabe-Prompts als auch auf generierte Videos angewendet und hängen von Ihrer Region ab. Prompts, die gegen die Nutzungsrichtlinien verstoßen, werden blockiert.
- Englisch (EN) wird vollständig unterstützt. Andere Sprachen wurden nicht getestet. Sie funktionieren möglicherweise, aber die Ergebnisse können variieren.
Anleitung zu Prompts für Gemini Omni Flash
Dieser Abschnitt enthält Tipps und Beispiele für effektive Prompts für Gemini Omni Flash.
Einzelne Szene
Standardmäßig versucht Omni Flash, ein Video mit mehreren verschiedenen Aufnahmen zu erstellen. Es wird versucht, basierend auf dem Prompt eine interessante Geschichte zu erstellen.
Wenn das Ausgabevideo nur eine Szene enthalten soll, müssen Sie das im Prompt angeben:
- In einer einzigen ununterbrochenen Szene
- In einer einzigen durchgehenden Aufnahme
- Keine Szenenschnitte
Beispiel:
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.
Unerwünschte Elemente entfernen
Wenn das generierte Video Elemente enthält, die Sie nicht möchten, können Sie einfache negative Prompts verwenden, um diese zu vermeiden:
- Kein Dialog
- Keine Verzierungen
- Keine zusätzlichen Soundeffekte
Aufforderungen zum Bearbeiten
Einfache Prompts eignen sich am besten für die Videobearbeitung. Zu detaillierte Prompts können zu unbeabsichtigten Änderungen führen.
Hier sind weitere Beispiele für einfache Bearbeitungsprompts:
- Verwandle dieses Video in einen Anime
- Setze dieser Person einen modischen Hut auf
- Ändere die Beleuchtung, damit sie dramatischer wirkt
- Ändere den Text auf dem Schild in „Omni Flash“.
Wenn Sie einen bestimmten Aspekt des Videos bearbeiten, fügen Sie "Keep everything else the same" ein, um die visuelle Konsistenz beizubehalten.
Im Folgenden finden Sie einige Beispiele für die Anwendung dieser Technik:
- Zu vermeiden:
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.- Vereinfachen:
Add a cat that jumps onto his lap, he begins to pet it. Keep everything else the same.
- Vereinfachen:
- Zu vermeiden:
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.- Vereinfachen:
Make the phone invisible. Keep everything else the same.
- Vereinfachen:
Audio-Prompt
Standardmäßig versucht das Modell, einen geeigneten Audiotrack für ein Video zu generieren. Das ist möglicherweise nicht immer das, was Sie möchten. Mit Ihrem Prompt können Sie die Art von Audio beschreiben, die Sie möchten. Das ist besonders wichtig, wenn du Musik in deinem Video verwenden möchtest:
- Ruhige Hintergrundmusik einfügen
- Das Video hat einen energiegeladenen Techno-Beat
- Im Hintergrund ist eine leise, blecherne Radiosendung zu hören, in der ein Song gespielt wird.
Zeitangaben
Sie können festlegen, dass bestimmte Dinge zu bestimmten Zeiten im Video passieren sollen. Dazu ist keine genaue Syntax erforderlich. Sie können natürliche Sprache verwenden. Das ist besonders nützlich, wenn du eigene Szenenschnitte, Rhythmen oder Rapid-Fire-Sequenzen erstellen möchtest. Hier einige Beispiele:
- Nach 3 Sekunden betritt eine Frau die Szene.
- Bei 5 Sekunden beginnt der Refrain im Hintergrund-Audio.
- Alle 2 Sekunden wird ein neuer Frame eingeblendet.
- Wechsle in einer Schnellfeuersequenz alle halbe Sekunde (12 Frames bei 24 fps) zu einem neuen Ort.
Sie können auch eine Timecode-Syntax verwenden:
[0-3s] A person is walking
[3-6s] They stop and turn around
[6-10s] They start running
Meta-Prompting
Sie können Gemini Omni Flash bitten, auf allgemeine Aspekte oder Prinzipien der Videogenerierung zu achten:
- Achten Sie auf Mikrodetails, Mimik und Timing, um eine sehr detaillierte, aber völlig natürliche Szene zu schaffen.
- Beschreiben Sie Charaktere und Umgebungen sehr detailliert. Kostümdesignprinzipien auf Charaktere anwenden Beschreiben Sie die Personen, Elemente und Objekte in der Szene so genau wie möglich.
- Fügen Sie den Hintergrundelementen viele passende Details hinzu, damit die Szene realistisch und natürlich wirkt.
- Erstelle ein Video mit schnellen Schnitten, in dem alle 1 Sekunde ein anderes seltenes
[thing]zu sehen ist. Verwende fröhliche Musik und füge Text hinzu, um die Dinge zu beschriften.
Text in Videos
Sie können einen Prompt eingeben, um Text in Ihr Video einzufügen. Gemini Omni rendert den Text dann so, dass er korrekt und lesbar ist. Wenn in Ihrem Video Text zu sehen ist, auch in Hintergrundelementen, kann es hilfreich sein, anzugeben, was dort stehen soll.
- Es wird jeweils ein Wort auf dem Bildschirm angezeigt: „Wusstest, du, dass, Omni, tollen, Text, erstellen, kann?“ Jedes Wort wird eine Sekunde lang in einem anderen animierten Stil angezeigt. Keine Dialoge.
- Es gibt ein Straßenschild mit der Aufschrift „This is an AI generation by Omni“, ein Schaufenster mit der Aufschrift „All you need AI“ und ein Auto mit dem Nummernschild „OMN111“.
Bildrollen mit Tags in Prompts festlegen
Mit Tags können Sie hochgeladene Medien an bestimmte Generierungsrollen binden. So können Sie angeben, ob jedes Bild ein Anfangs- oder ein Referenzbild ist.
1. Einfache Tags (empfohlen)
In einfachen Fällen, in denen die Bildrollen aus dem Prompt hervorgehen, können Sie Bilder direkt an Rollen binden:
<FIRST_FRAME>: Verwenden Sie das Bild als Startframe des Videos, z. B.<FIRST_FRAME> a woman is walking.<IMAGE_REF_N>: Verwenden Sie das Bild als Referenz, z. B.in the style of <IMAGE_REF_0> a woman <IMAGE_REF_1> is walking(kombiniert die Stilreferenz aus dem ersten Bild und die Motivreferenz aus dem zweiten Bild). Bildreferenzen beginnen bei 0.
Hier ein Beispiel mit sechs Referenzbildern:
[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. Explizite Deklarationen
Bei komplexeren Fällen mit mehreren Bildern und mehreren Rollen können Sie explizite Präfix-Tags in Kombination mit Suffixen in natürlicher Sprache verwenden.
- Quellen und Referenzbilder angeben:
[# Sources <FIRST_FRAME>@Image1]verwendet das erste Bild als Startframe.[# References <IMAGE_REF_0>@Image1]verwendet das erste Bild als Referenz.[# References <IMAGE_REF_1>@Image2]verwendet das zweite Bild als Referenz.[# References <IMAGE_REF_0>@Image1 <IMAGE_REF_1>@Image2]verwendet beide Bilder als Referenzen.[# Sources <FIRST_FRAME>@Image1] [# References <IMAGE_REF_0>@Image2]verwendet das erste Bild als Startframe und das zweite Bild als Referenz.
- Anleitung: Fügen Sie am Ende des Prompts eine Anleitung hinzu:
- Startframe:
"Use this image as the starting frame." - Referenzbilder:
"Use the given image(s) as references for video generation. The images should not be used as literal initial frames."
- Startframe:
Beispiel für einen erweiterten Prompt:
[# 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.
Nächste Schritte
- Beginnen Sie mit Gemini Omni Flash, indem Sie im Omni Quickstart Colab experimentieren.
- Einführung in das Prompt-Design