Gemini API دسترسی به Veo 2 ، تواناترین مدل تولید ویدیوی گوگل تا به امروز را فراهم می کند. Veo ویدیوها را در طیف وسیعی از سبکهای سینمایی و بصری تولید میکند، و جزئیات دقیق را برای ارائه جزئیات پیچیده به طور مداوم در فریمها ثبت میکند. این راهنما به شما کمک می کند تا با استفاده از Gemini API با Veo شروع کنید.
برای راهنمایی درخواست ویدیو، بخش راهنمای اعلان Veo را بررسی کنید.
قبل از شروع
قبل از تماس با Gemini API، مطمئن شوید که SDK مورد نظر خود را نصب کرده اید و یک کلید Gemini API پیکربندی شده و آماده استفاده است.
برای استفاده از Veo با Google Gen AI SDK، مطمئن شوید که یکی از نسخههای زیر را نصب کردهاید:
- پایتون نسخه 1.10.0 یا بالاتر
- TypeScript و JavaScript نسخه 0.8.0 یا بالاتر
- نسخه 1.0.0 یا بالاتر بروید
ویدیوها را تولید کنید
این بخش نمونه کدهایی را برای تولید فیلم با استفاده از پیام های متنی و استفاده از تصاویر ارائه می دهد.
تولید از متن
برای تولید ویدیو با Veo می توانید از کد زیر استفاده کنید:
import time
from google import genai
from google.genai import types
client = genai.Client() # read API key from GOOGLE_API_KEY
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
),
)
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, generated_video in enumerate(operation.response.generated_videos):
client.files.download(file=generated_video.video)
generated_video.video.save(f"video{n}.mp4") # save the video
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
personGeneration: "dont_allow",
aspectRatio: "16:9",
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`); // append your API key
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
PersonGeneration: "dont_allow",
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"Panning wide shot of a calico kitten sleeping in the sunshine",
nil,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
# Use curl to send a POST request to the predictLongRunning endpoint.
# The request body includes the prompt for video generation.
curl "${BASE_URL}/models/veo-2.0-generate-001:predictLongRunning?key=${GOOGLE_API_KEY}" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "Panning wide shot of a calico kitten sleeping in the sunshine"
}
],
"parameters": {
"aspectRatio": "16:9",
"personGeneration": "dont_allow",
}
}' | tee result.json | jq .name | sed 's/"//g' > op_name
# Obtain operation name to download video.
op_name=$(cat op_name)
# Check against status of operation.
while true; do
is_done=$(curl "${BASE_URL}/${op_name}?key=${GOOGLE_API_KEY}" | tee op_check.json | jq .done)
if [ "${is_done}" = "true" ]; then
cat op_check.json
echo "** Attach API_KEY to download video, or examine error message."
break
fi
echo "** Video ${op_name} has not downloaded yet! Check again after 5 seconds..."
# Wait for 5 seoncds to check again.
sleep 5
done
این کد حدود 2-3 دقیقه طول می کشد تا اجرا شود، اگرچه ممکن است در صورت محدود بودن منابع بیشتر طول بکشد. پس از اجرای آن، باید ویدیویی را ببینید که چیزی شبیه به این است:
اگر بهجای ویدیو پیام خطا میبینید، به این معنی است که منابع محدود است و درخواست شما تکمیل نمیشود. در این صورت کد را دوباره اجرا کنید.
ویدیوهای تولید شده به مدت 2 روز در سرور ذخیره می شوند و پس از آن حذف می شوند. اگر می خواهید یک کپی محلی از ویدیوی تولید شده خود را ذخیره کنید، باید result()
و save()
در عرض 2 روز پس از تولید اجرا کنید.
تولید از تصاویر
همچنین میتوانید با استفاده از تصاویر ویدیو تولید کنید. کد زیر با استفاده از Imagen یک تصویر تولید می کند، سپس از تصویر تولید شده به عنوان فریم شروع فیلم تولید شده استفاده می کند.
ابتدا با استفاده از Imagen یک تصویر ایجاد کنید:
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
imagen = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
aspect_ratio="16:9",
number_of_images=1
)
)
imagen.generated_images[0].image
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const response = await ai.models.generateImages({
model: "imagen-3.0-generate-002",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
numberOfImages: 1,
},
});
// you'll pass response.generatedImages[0].image.imageBytes to Veo
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
config := &genai.GenerateImagesConfig{
AspectRatio: "16:9",
NumberOfImages: 1,
}
response, _ := client.Models.GenerateImages(
ctx,
"imagen-3.0-generate-002",
"Panning wide shot of a calico kitten sleeping in the sunshine",
config,
)
// you'll pass response.GeneratedImages[0].Image to Veo
}
سپس، با استفاده از تصویر حاصل به عنوان اولین فریم، یک ویدیو ایجاد کنید:
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt=prompt,
image = imagen.generated_images[0].image,
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
number_of_videos=2
),
)
# Wait for videos to generate
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, video in enumerate(operation.response.generated_videos):
fname = f'with_image_input{n}.mp4'
print(fname)
client.files.download(file=video.video)
video.video.save(fname)
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
// get image bytes from Imagen, as shown above
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
image: {
imageBytes: response.generatedImages[0].image.imageBytes, // response from Imagen
mimeType: "image/png",
},
config: {
aspectRatio: "16:9",
numberOfVideos: 2,
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(
`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`, // append your API key
);
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
image := response.GeneratedImages[0].Image
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
NumberOfVideos: 2,
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"A dramatic scene based on the input image",
image,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_with_image_input_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
پارامترهای مدل Veo
(قراردادهای نامگذاری بسته به زبان برنامه نویسی متفاوت است.)
-
prompt
: درخواست متنی برای ویدیو. در صورت وجود، پارامترimage
اختیاری است. -
image
: تصویری که به عنوان اولین فریم برای ویدیو استفاده می شود. در صورت وجود، پارامترprompt
اختیاری است. -
negativePrompt
: رشته متنی که هر چیزی را که می خواهید مدل را از تولید منصرف کنید، توصیف می کند -
aspectRatio
: نسبت تصویر تولید شده را تغییر می دهد. مقادیر پشتیبانی شده"16:9"
و"9:16"
هستند. پیش فرض"16:9"
است. -
personGeneration
: به مدل اجازه می دهد تا ویدیوهایی از افراد تولید کند. مقادیر زیر پشتیبانی می شوند:- تولید متن به ویدئو:
-
"dont_allow"
: اجازه ندهید افراد یا چهره ها درج شوند. -
"allow_adult"
: ویدیوهایی ایجاد کنید که شامل بزرگسالان می شود، اما نه کودکان.
-
- تولید تصویر به ویدئو:
-
"dont_allow"
: اجازه ندهید افراد یا چهره ها درج شوند. -
"allow_adult"
: ویدیوهایی ایجاد کنید که شامل بزرگسالان می شود، اما نه کودکان. - محدودیت ها را ببینید.
-
- تولید متن به ویدئو:
-
numberOfVideos
: خروجی ویدیوهای درخواستی،1
یا2
. -
durationSeconds
: طول هر ویدیوی خروجی در ثانیه، بین5
تا8
. -
enhance_prompt
: بازنویسی درخواست را فعال یا غیرفعال کنید. به طور پیش فرض فعال است.
مشخصات
ویدیوهای ایجاد شده توسط Veo با استفاده از SynthID ، ابزار ما برای واترمارک گذاری و شناسایی محتوای تولید شده توسط هوش مصنوعی، واترمارک می شوند و از فیلترهای ایمنی و فرآیندهای بررسی حفظی عبور داده می شوند که به کاهش خطرات حریم خصوصی، حق نسخه برداری و سوگیری کمک می کند.
چیزهایی که باید امتحان کنید
برای استفاده حداکثری از Veo، اصطلاحات خاص ویدیو را در دستورات خود بگنجانید. Veo طیف گسترده ای از اصطلاحات مربوط به موارد زیر را درک می کند:
- ترکیب عکس: کادربندی و تعداد سوژه ها را در عکس مشخص کنید (به عنوان مثال، "تک شات"، "دو شات"، "عکس از روی شانه").
- موقعیت و حرکت دوربین: مکان و حرکت دوربین را با استفاده از عباراتی مانند "سطح چشم"، "زاویه بالا"، "چشم کرم"، "دالی شات"، "زوم شات"، "پان شات" و "شات پیگیری" کنترل کنید.
- فوکوس و جلوههای لنز: برای دستیابی به جلوههای بصری خاص، از عباراتی مانند «فوکوس کم عمق»، «فوکوس عمیق»، «فوکوس نرم»، «لنز ماکرو» و «عدسی با زاویه دید عریض» استفاده کنید.
- سبک و موضوع کلی: با مشخص کردن سبک هایی مانند "علمی تخیلی"، "کمدی عاشقانه"، "فیلم اکشن" یا "انیمیشن"، جهت خلاقانه Veo را هدایت کنید. همچنین میتوانید موضوعات و پسزمینههایی را که میخواهید، مانند «منظره شهری»، «طبیعت»، «وسایل نقلیه» یا «حیوانات» توصیف کنید.
راهنمای سریع Veo
این بخش از راهنمای Veo شامل نمونههایی از ویدیوهایی است که میتوانید با استفاده از Veo ایجاد کنید، و به شما نشان میدهد که چگونه درخواستها را برای ایجاد نتایج متمایز تغییر دهید.
فیلترهای ایمنی
Veo فیلترهای ایمنی را در سراسر Gemini اعمال می کند تا اطمینان حاصل کند که ویدیوهای تولید شده و عکس های آپلود شده حاوی محتوای توهین آمیز نیستند. درخواست هایی که شرایط و دستورالعمل های ما را نقض می کنند مسدود شده اند.
اصول اولیه نوشتن سریع
دستورات خوب توصیفی و واضح هستند. برای اینکه ویدیوی تولید شده خود را تا حد امکان به آنچه می خواهید نزدیک کنید، با شناسایی ایده اصلی خود شروع کنید و سپس ایده خود را با افزودن کلمات کلیدی و اصلاح کننده ها اصلاح کنید.
عناصر زیر باید در اعلان شما گنجانده شوند:
- موضوع : شی، شخص، حیوان یا مناظری که در ویدیوی خود میخواهید.
- زمینه : زمینه یا زمینه ای که موضوع در آن قرار می گیرد.
- کنش : کاری که سوژه انجام می دهد (مثلاً راه رفتن ، دویدن یا چرخاندن سر ).
- سبک : این می تواند کلی یا بسیار خاص باشد. استفاده از کلیدواژههای خاص سبک فیلم، مانند فیلم ترسناک ، فیلم نوآر ، یا سبکهای انیمیشنی مانند سبک کارتونی را در نظر بگیرید.
- حرکت دوربین : [اختیاری] کاری که دوربین انجام می دهد، مانند نمای هوایی ، سطح چشم ، عکس از بالا به پایین ، یا عکس با زاویه پایین .
- ترکیب : [اختیاری] نحوه کادربندی عکس، مانند عکس واید ، نمای نزدیک ، یا نمای نزدیک شدید .
- محیط : [اختیاری] نحوه کمک رنگ و نور به صحنه، مانند رنگهای آبی ، شب ، یا تنهای گرم .
نکات بیشتر برای نوشتن دستورات
نکات زیر به شما کمک می کند تا اعلان هایی بنویسید که ویدیوهای شما را تولید می کنند:
- از زبان توصیفی استفاده کنید : از صفت ها و قیدها برای ترسیم یک تصویر واضح برای Veo استفاده کنید.
- زمینه را ارائه دهید : در صورت لزوم، اطلاعات پس زمینه را برای کمک به مدل خود در درک آنچه می خواهید بگنجانید.
- ارجاع به سبک های هنری خاص : اگر زیبایی شناسی خاصی در ذهن دارید، به سبک های هنری یا حرکات هنری خاصی اشاره کنید.
- از ابزارهای مهندسی سریع استفاده کنید : کاوش در ابزارها یا منابع مهندسی سریع را در نظر بگیرید تا به شما کمک کنند تا درخواست های خود را اصلاح کنید و به نتایج مطلوب برسید. برای کسب اطلاعات بیشتر، به Introduction to Prompt design مراجعه کنید.
- جزئیات چهره را در تصاویر شخصی و گروهی خود بهبود بخشید : جزئیات صورت را به عنوان کانون عکس مانند استفاده از کلمه پرتره در درخواست مشخص کنید.
نمونه دستورات و خروجی
این بخش چندین اعلان را ارائه میکند، که نشان میدهد چگونه جزئیات توصیفی میتوانند نتیجه هر ویدیو را ارتقا دهند.
یخ ها
این ویدیو نشان میدهد که چگونه میتوانید از عناصر اولیه نوشتن سریع در اعلان خود استفاده کنید.
اعلان | خروجی تولید شده |
---|---|
نمای نزدیک (ترکیب) از یخهای در حال ذوب (موضوع) روی دیواره سنگی یخزده (زمینه) با رنگهای آبی سرد (محیط) بزرگنمایی شده (حرکت دوربین) با حفظ جزئیات نزدیک از چکههای آب (اکشن). | ![]() |
مرد پشت تلفن
این ویدیوها نشان میدهند که چگونه میتوانید درخواست خود را با جزئیات ویژهتر اصلاح کنید تا از Veo بخواهید خروجی را مطابق میل شما اصلاح کند.
اعلان | خروجی تولید شده | تجزیه و تحلیل |
---|---|---|
عروسک دوربین برای نشان دادن نمای نزدیک از مردی ناامید با کت سبز رنگ. او با یک تلفن دیواری به سبک چرخشی با چراغ نئون سبز تماس می گیرد. شبیه صحنه فیلم است. | ![]() | این اولین ویدیویی است که بر اساس درخواست تولید شده است. |
یک نما سینمایی کلوزآپ مردی مستاصل را با یک کت سبز رنگ فرسوده دنبال می کند که در حال شماره گیری تلفن چرخشی نصب شده روی دیوار آجری شنی است که در درخشش ترسناک تابلوی نئونی سبز رنگ غوطه ور شده است. دوربين داخل ميشود و تنش را در آروارهاش نشان ميدهد و يأس حك شده در چهرهاش را هنگام تلاش براي برقراري تماس نشان ميدهد. عمق میدان کم روی ابروی شیاردار و تلفن چرخشی مشکی او متمرکز میشود و پسزمینه را در دریایی از رنگهای نئونی و سایههای نامشخص محو میکند و حس فوریت و انزوا را ایجاد میکند. | ![]() | یک اعلان دقیقتر منجر به ویدیویی میشود که با محیط غنیتر تمرکز بیشتری دارد. |
ویدیویی با حرکت صاف که به مردی ناامید با کت سبز رنگ، با استفاده از یک تلفن چرخشی قدیمی در مقابل دیواری که در نور سبز وهمآوری نئونی غرق شده است، مینشیند. دوربین از فاصلهای متوسط شروع میشود و به آرامی به چهره مرد نزدیکتر میشود و حالت عصبانی و عرق روی پیشانیاش را نشان میدهد که او فوراً تلفن را شمارهگیری میکند. تمرکز روی دستهای مرد است، انگشتهایش در حالی که ناامیدانه تلاش میکند تا با صفحه تماس بگیرد. نور سبز نئون سایه های بلندی روی دیوار می اندازد و بر فضای متشنج می افزاید. این صحنه برای تاکید بر انزوا و استیصال مرد طراحی شده است و تضاد فاحش بین درخشش پر جنب و جوش نئون و عزم تیره مرد را برجسته می کند. | ![]() | افزودن جزئیات بیشتر به سوژه بیانی واقعی می دهد و صحنه ای شدید و پر جنب و جوش ایجاد می کند. |
پلنگ برفی
این مثال خروجی Veo را نشان می دهد که ممکن است برای یک دستور ساده ایجاد کند.
اعلان | خروجی تولید شده |
---|---|
موجودی بامزه با خز پلنگ برفی در حال قدم زدن در جنگل زمستانی، رندر سه بعدی کارتونی. | ![]() |
دویدن پلنگ برفی
این درخواست دارای جزئیات بیشتری است و خروجی تولید شده را نشان می دهد که ممکن است به آنچه در ویدیوی شما می خواهید نزدیکتر باشد.
اعلان | خروجی تولید شده |
---|---|
یک صحنه متحرک سه بعدی کوتاه به سبک کارتونی شاد ایجاد کنید. موجودی بامزه با خز پلنگمانند برفی، چشمهای رسا درشت، و فرمی دوستانه و گرد، با خوشحالی در جنگلی عجیب زمستانی میچرخد. صحنه باید شامل درختان گرد و پوشیده از برف، دانه های برف ملایم در حال سقوط و نور گرم خورشید باشد که از میان شاخه ها عبور می کند. حرکات تندی و لبخند پهن موجودات باید لذت خالص را منتقل کند. با رنگهای روشن و شاد و انیمیشنهای بازیگوش، لحنی شاد و دلانگیز را هدف بگیرید. | ![]() |
نمونه هایی با نوشتن عناصر
این مثالها به شما نشان میدهند که چگونه درخواستهای خود را با هر عنصر اصلی اصلاح کنید.
موضوع
این مثال به شما نشان می دهد که چگونه یک توضیح موضوع را مشخص کنید.
شرح موضوع | اعلان | خروجی تولید شده |
---|---|---|
توصیف می تواند شامل یک موضوع یا چندین موضوع و کنش باشد. در اینجا موضوع ما «آپارتمان آپارتمان بتنی سفید» است. | نمایی معماری از یک ساختمان آپارتمانی بتنی سفید با اشکال ارگانیک روان، ترکیبی یکپارچه با فضای سبز سرسبز و عناصر آینده نگر | ![]() |
زمینه
این مثال به شما نشان می دهد که چگونه زمینه را مشخص کنید.
زمینه | اعلان | خروجی تولید شده |
---|---|---|
زمینه یا زمینه ای که موضوع در آن قرار می گیرد بسیار مهم است. سعی کنید سوژه خود را در پس زمینه های مختلف مانند خیابان شلوغ یا در فضای بیرونی قرار دهید. | ماهواره ای که در فضای بیرونی با ماه و چند ستاره در پس زمینه شناور است. | ![]() |
اقدام
این مثال به شما نشان می دهد که چگونه عمل را مشخص کنید.
اقدام | اعلان | خروجی تولید شده |
---|---|---|
سوژه چه کاری انجام می دهد مانند راه رفتن، دویدن یا چرخاندن سر. | تصویری گسترده از زنی که در امتداد ساحل قدم میزند، در غروب آفتاب راضی به نظر میرسد و به سمت افق آرام میگیرد. | ![]() |
سبک
این مثال به شما نشان می دهد که چگونه استایل را مشخص کنید.
سبک | اعلان | خروجی تولید شده |
---|---|---|
میتوانید کلمات کلیدی را برای بهبود کیفیت تولید و نزدیکتر کردن آن به سبک مورد نظر اضافه کنید، مانند عمق میدان کم، فیلم ثابت، مینیمالیستی، سورئال، قدیمی، آیندهنگر یا نوردهی دوگانه. | سبک فیلم نوآر، راه رفتن زن و مرد در خیابان، معمایی، سینمایی، سیاه و سفید. | ![]() |
حرکت دوربین
این مثال به شما نشان می دهد که چگونه حرکت دوربین را مشخص کنید.
حرکت دوربین | اعلان | خروجی تولید شده |
---|---|---|
گزینههای حرکت دوربین شامل عکسبرداری POV، نمای هوایی، ردیابی نمای هواپیمای بدون سرنشین یا عکس ردیابی است. | عکس POV از یک ماشین قدیمی که در باران رانندگی می کند، کانادا در شب، سینمایی. | ![]() |
ترکیب
این مثال به شما نشان می دهد که چگونه ترکیب را مشخص کنید.
ترکیب | اعلان | خروجی تولید شده |
---|---|---|
نحوه کادربندی عکس (شات واید، کلوزآپ، زاویه کم). | نمای نزدیک از یک چشم که شهر در آن منعکس شده است. | ![]() |
ویدیویی از یک عکس گسترده از موج سوار در حال راه رفتن در ساحل با تخته موج سواری، غروب زیبا، سینمایی ایجاد کنید. | ![]() |
محیط
این مثال به شما نشان می دهد که چگونه محیط را مشخص کنید.
محیط | اعلان | خروجی تولید شده |
---|---|---|
پالت های رنگی نقش حیاتی در عکاسی دارند و بر خلق و خو و انتقال احساسات مورد نظر تاثیر می گذارند. چیزهایی مانند "تنهای گرم نارنجی خاموش"، "نور طبیعی"، "طلوع خورشید" یا "غروب خورشید" را امتحان کنید. به عنوان مثال، یک پالت گرم و طلایی می تواند حسی رمانتیک و جوی را به عکس القا کند. | نمای نزدیک از دختری که توله سگ گلدن رتریور شایان ستایش را در پارک در دست دارد، نور خورشید. | ![]() |
عکس کلوزآپ سینمایی از زنی غمگین سوار اتوبوس زیر باران، رنگ آبی سرد، حال و هوای غمگین. | ![]() |
از تصاویر مرجع برای تولید فیلم استفاده کنید
با استفاده از قابلیت تصویر به ویدئو Veo می توانید تصاویر را زنده کنید. میتوانید از داراییهای موجود استفاده کنید یا Imagen را امتحان کنید تا چیز جدیدی ایجاد کنید.
اعلان | خروجی تولید شده |
---|---|
اسم حیوان دست اموز با آب نبات شکلاتی. | ![]() |
بانی فرار می کند. | ![]() |
پیام های منفی
اعلانهای منفی میتوانند ابزار قدرتمندی برای کمک به تعیین عناصری باشند که در ویدیو نمیخواهید . بعد از عبارت «اخطار منفی»، آنچه را که میخواهید مدل را از تولید منصرف کنید، توصیف کنید. این نکات را دنبال کنید:
❌ از زبان آموزنده یا کلماتی مانند نه یا نه استفاده نکنید. به عنوان مثال، "بدون دیوار" یا "دیوارها را نشان ندهد".
✅ آنچه را که نمی خواهید ببینید را توصیف کنید. به عنوان مثال، "دیوار، قاب"، به این معنی که شما یک دیوار یا یک قاب در ویدیو نمی خواهید.
اعلان | خروجی تولید شده |
---|---|
یک انیمیشن کوتاه و سبک از یک درخت بلوط بزرگ و منفرد با برگهایی که به شدت در باد شدید می وزند ایجاد کنید. درخت باید فرم کمی اغراق آمیز و عجیب و غریب، با شاخه های پویا و روان داشته باشد. برگ ها باید رنگ های متنوع پاییزی را به نمایش بگذارند و در باد می چرخند و می رقصند. انیمیشن باید از یک پالت رنگی گرم و جذاب استفاده کند. | ![]() |
یک انیمیشن کوتاه و سبک از یک درخت بلوط بزرگ و منفرد با برگهایی که به شدت در باد شدید می وزند ایجاد کنید. درخت باید فرم کمی اغراق آمیز و عجیب و غریب، با شاخه های پویا و روان داشته باشد. برگ ها باید رنگ های متنوع پاییزی را به نمایش بگذارند و در باد می چرخند و می رقصند. انیمیشن باید از یک پالت رنگی گرم و جذاب استفاده کند. با اعلان منفی - پس زمینه شهری، سازه های دست ساز، جو تاریک، طوفانی یا تهدیدآمیز. | ![]() |
نسبت ابعاد
تولید ویدیو Gemini Veo از دو نسبت تصویر زیر پشتیبانی می کند:
نسبت ابعاد | توضیحات |
---|---|
صفحه عریض یا 16:9 | رایج ترین نسبت تصویر برای تلویزیون، مانیتور و صفحه نمایش تلفن همراه (منظره). هنگامی که می خواهید بیشتر پس زمینه را بگیرید، مانند مناظر منظره، از این استفاده کنید. |
پرتره یا 9:16 | چرخش صفحه عریض این نسبت تصویر توسط برنامه های ویدئویی فرم کوتاه، مانند شورت های یوتیوب، رایج شده است. از این برای پرتره ها یا اشیاء بلند با جهت های عمودی قوی مانند ساختمان ها، درختان، آبشار یا ساختمان ها استفاده کنید. |
صفحه عریض
این اعلان نمونه ای از نسبت تصویر عریض 16:9 است.
اعلان | خروجی تولید شده |
---|---|
ویدیویی با نمای هواپیمای بدون سرنشین ردیابی از مردی که در حال رانندگی یک ماشین تبدیلپذیر قرمز در پالم اسپرینگز، دهه 1970، نور گرم خورشید، سایههای طولانی است، ایجاد کنید. | ![]() |
پرتره
این اعلان نمونه ای از نسبت تصویر پرتره 9:16 است.
اعلان | خروجی تولید شده |
---|---|
ویدئویی ایجاد کنید که حرکت صاف یک آبشار باشکوه هاوایی را در یک جنگل بارانی سرسبز برجسته کند. برای انتقال آرامش، بر جریان واقعی آب، شاخ و برگ دقیق و نور طبیعی تمرکز کنید. آب تند، جو مه آلود و نور خورشید را که از میان سایبان متراکم عبور می کند، ثبت کنید. از حرکات روان و سینمایی دوربین برای نمایش آبشار و محیط اطراف آن استفاده کنید. لحن صلح آمیز و واقع گرایانه را هدف بگیرید و بیننده را به زیبایی آرام جنگل های بارانی هاوایی منتقل کنید. | ![]() |
بعدش چی
- با Veo Colab تجربه بیشتری در تولید ویدیوهای هوش مصنوعی به دست آورید.
- نمونه های جالب استفاده از Veo 2 را در سایت Google DeepMind بررسی کنید
Gemini API دسترسی به Veo 2 ، تواناترین مدل تولید ویدیوی گوگل تا به امروز را فراهم می کند. Veo ویدیوها را در طیف وسیعی از سبکهای سینمایی و بصری تولید میکند، و جزئیات دقیق را برای ارائه جزئیات پیچیده به طور مداوم در فریمها ثبت میکند. این راهنما به شما کمک می کند تا با استفاده از Gemini API با Veo شروع کنید.
برای راهنمایی درخواست ویدیو، بخش راهنمای اعلان Veo را بررسی کنید.
قبل از شروع
قبل از تماس با Gemini API، مطمئن شوید که SDK مورد نظر خود را نصب کرده اید و یک کلید Gemini API پیکربندی شده و آماده استفاده است.
برای استفاده از Veo با Google Gen AI SDK، مطمئن شوید که یکی از نسخههای زیر را نصب کردهاید:
- پایتون نسخه 1.10.0 یا بالاتر
- TypeScript و JavaScript نسخه 0.8.0 یا بالاتر
- نسخه 1.0.0 یا بالاتر بروید
ویدیوها را تولید کنید
این بخش نمونه کدهایی را برای تولید فیلم با استفاده از پیام های متنی و استفاده از تصاویر ارائه می دهد.
تولید از متن
برای تولید ویدیو با Veo می توانید از کد زیر استفاده کنید:
import time
from google import genai
from google.genai import types
client = genai.Client() # read API key from GOOGLE_API_KEY
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
),
)
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, generated_video in enumerate(operation.response.generated_videos):
client.files.download(file=generated_video.video)
generated_video.video.save(f"video{n}.mp4") # save the video
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
personGeneration: "dont_allow",
aspectRatio: "16:9",
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`); // append your API key
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
PersonGeneration: "dont_allow",
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"Panning wide shot of a calico kitten sleeping in the sunshine",
nil,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
# Use curl to send a POST request to the predictLongRunning endpoint.
# The request body includes the prompt for video generation.
curl "${BASE_URL}/models/veo-2.0-generate-001:predictLongRunning?key=${GOOGLE_API_KEY}" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "Panning wide shot of a calico kitten sleeping in the sunshine"
}
],
"parameters": {
"aspectRatio": "16:9",
"personGeneration": "dont_allow",
}
}' | tee result.json | jq .name | sed 's/"//g' > op_name
# Obtain operation name to download video.
op_name=$(cat op_name)
# Check against status of operation.
while true; do
is_done=$(curl "${BASE_URL}/${op_name}?key=${GOOGLE_API_KEY}" | tee op_check.json | jq .done)
if [ "${is_done}" = "true" ]; then
cat op_check.json
echo "** Attach API_KEY to download video, or examine error message."
break
fi
echo "** Video ${op_name} has not downloaded yet! Check again after 5 seconds..."
# Wait for 5 seoncds to check again.
sleep 5
done
این کد حدود 2-3 دقیقه طول می کشد تا اجرا شود، اگرچه ممکن است در صورت محدود بودن منابع بیشتر طول بکشد. پس از اجرای آن، باید ویدیویی را ببینید که چیزی شبیه به این است:
اگر بهجای ویدیو پیام خطا میبینید، به این معنی است که منابع محدود است و درخواست شما تکمیل نمیشود. در این صورت کد را دوباره اجرا کنید.
ویدیوهای تولید شده به مدت 2 روز در سرور ذخیره می شوند و پس از آن حذف می شوند. اگر می خواهید یک کپی محلی از ویدیوی تولید شده خود را ذخیره کنید، باید result()
و save()
را در عرض 2 روز پس از تولید اجرا کنید.
تولید از تصاویر
همچنین میتوانید با استفاده از تصاویر ویدیو تولید کنید. کد زیر با استفاده از Imagen یک تصویر تولید می کند، سپس از تصویر تولید شده به عنوان فریم شروع فیلم تولید شده استفاده می کند.
ابتدا با استفاده از Imagen یک تصویر ایجاد کنید:
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
imagen = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
aspect_ratio="16:9",
number_of_images=1
)
)
imagen.generated_images[0].image
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const response = await ai.models.generateImages({
model: "imagen-3.0-generate-002",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
numberOfImages: 1,
},
});
// you'll pass response.generatedImages[0].image.imageBytes to Veo
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
config := &genai.GenerateImagesConfig{
AspectRatio: "16:9",
NumberOfImages: 1,
}
response, _ := client.Models.GenerateImages(
ctx,
"imagen-3.0-generate-002",
"Panning wide shot of a calico kitten sleeping in the sunshine",
config,
)
// you'll pass response.GeneratedImages[0].Image to Veo
}
سپس، با استفاده از تصویر حاصل به عنوان اولین فریم، یک ویدیو ایجاد کنید:
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt=prompt,
image = imagen.generated_images[0].image,
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
number_of_videos=2
),
)
# Wait for videos to generate
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, video in enumerate(operation.response.generated_videos):
fname = f'with_image_input{n}.mp4'
print(fname)
client.files.download(file=video.video)
video.video.save(fname)
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
// get image bytes from Imagen, as shown above
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
image: {
imageBytes: response.generatedImages[0].image.imageBytes, // response from Imagen
mimeType: "image/png",
},
config: {
aspectRatio: "16:9",
numberOfVideos: 2,
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(
`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`, // append your API key
);
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
image := response.GeneratedImages[0].Image
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
NumberOfVideos: 2,
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"A dramatic scene based on the input image",
image,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_with_image_input_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
پارامترهای مدل Veo
(قراردادهای نامگذاری بسته به زبان برنامه نویسی متفاوت است.)
-
prompt
: درخواست متنی برای ویدیو. در صورت وجود، پارامترimage
اختیاری است. -
image
: تصویری که به عنوان اولین فریم برای ویدیو استفاده می شود. در صورت وجود، پارامترprompt
اختیاری است. -
negativePrompt
: رشته متنی که هر چیزی را که می خواهید مدل را از تولید منصرف کنید، توصیف می کند -
aspectRatio
: نسبت تصویر تولید شده را تغییر می دهد. مقادیر پشتیبانی شده"16:9"
و"9:16"
هستند. پیش فرض"16:9"
است. -
personGeneration
: به مدل اجازه می دهد تا ویدیوهایی از افراد تولید کند. مقادیر زیر پشتیبانی می شوند:- تولید متن به ویدئو:
-
"dont_allow"
: اجازه ندهید افراد یا چهره ها درج شوند. -
"allow_adult"
: ویدیوهایی ایجاد کنید که شامل بزرگسالان می شود، اما نه کودکان.
-
- تولید تصویر به ویدئو:
-
"dont_allow"
: اجازه ندهید افراد یا چهره ها درج شوند. -
"allow_adult"
: ویدیوهایی ایجاد کنید که شامل بزرگسالان می شود، اما نه کودکان. - محدودیت ها را ببینید.
-
- تولید متن به ویدئو:
-
numberOfVideos
: خروجی ویدیوهای درخواستی،1
یا2
. -
durationSeconds
: طول هر ویدیوی خروجی در ثانیه، بین5
تا8
. -
enhance_prompt
: بازنویسی درخواست را فعال یا غیرفعال کنید. به طور پیش فرض فعال است.
مشخصات
ویدیوهای ایجاد شده توسط Veo با استفاده از SynthID ، ابزار ما برای واترمارک گذاری و شناسایی محتوای تولید شده توسط هوش مصنوعی، واترمارک می شوند و از فیلترهای ایمنی و فرآیندهای بررسی حفظی عبور داده می شوند که به کاهش خطرات حریم خصوصی، حق نسخه برداری و سوگیری کمک می کند.
چیزهایی که باید امتحان کنید
برای استفاده حداکثری از Veo، اصطلاحات خاص ویدیو را در دستورات خود بگنجانید. Veo طیف گسترده ای از اصطلاحات مربوط به موارد زیر را درک می کند:
- ترکیب عکس: کادربندی و تعداد سوژه ها را در عکس مشخص کنید (به عنوان مثال، "تک شات"، "دو شات"، "عکس از روی شانه").
- موقعیت و حرکت دوربین: مکان و حرکت دوربین را با استفاده از عباراتی مانند "سطح چشم"، "زاویه بالا"، "چشم کرم"، "دالی شات"، "زوم شات"، "پان شات" و "شات پیگیری" کنترل کنید.
- فوکوس و جلوههای لنز: برای دستیابی به جلوههای بصری خاص، از عباراتی مانند «فوکوس کم عمق»، «فوکوس عمیق»، «فوکوس نرم»، «لنز ماکرو» و «عدسی با زاویه دید عریض» استفاده کنید.
- سبک و موضوع کلی: با مشخص کردن سبک هایی مانند "علمی تخیلی"، "کمدی عاشقانه"، "فیلم اکشن" یا "انیمیشن"، جهت خلاقانه Veo را هدایت کنید. همچنین میتوانید موضوعات و پسزمینههایی را که میخواهید، مانند «منظره شهری»، «طبیعت»، «وسایل نقلیه» یا «حیوانات» توصیف کنید.
راهنمای سریع Veo
این بخش از راهنمای Veo شامل نمونههایی از ویدیوهایی است که میتوانید با استفاده از Veo ایجاد کنید، و به شما نشان میدهد که چگونه درخواستها را برای ایجاد نتایج متمایز تغییر دهید.
فیلترهای ایمنی
Veo فیلترهای ایمنی را در سراسر Gemini اعمال می کند تا اطمینان حاصل کند که ویدیوهای تولید شده و عکس های آپلود شده حاوی محتوای توهین آمیز نیستند. درخواست هایی که شرایط و دستورالعمل های ما را نقض می کنند مسدود شده اند.
اصول اولیه نوشتن سریع
دستورات خوب توصیفی و واضح هستند. برای اینکه ویدیوی تولید شده خود را تا حد امکان به آنچه می خواهید نزدیک کنید، با شناسایی ایده اصلی خود شروع کنید و سپس ایده خود را با افزودن کلمات کلیدی و اصلاح کننده ها اصلاح کنید.
عناصر زیر باید در اعلان شما گنجانده شوند:
- موضوع : شی، شخص، حیوان یا مناظری که در ویدیوی خود میخواهید.
- زمینه : زمینه یا زمینه ای که موضوع در آن قرار می گیرد.
- کنش : کاری که سوژه انجام می دهد (مثلاً راه رفتن ، دویدن یا چرخاندن سر ).
- سبک : این می تواند کلی یا بسیار خاص باشد. استفاده از کلیدواژههای خاص سبک فیلم، مانند فیلم ترسناک ، فیلم نوآر ، یا سبکهای انیمیشنی مانند سبک کارتونی را در نظر بگیرید.
- حرکت دوربین : [اختیاری] کاری که دوربین انجام می دهد، مانند نمای هوایی ، سطح چشم ، عکس از بالا به پایین ، یا عکس با زاویه پایین .
- ترکیب : [اختیاری] نحوه کادربندی عکس، مانند عکس واید ، نمای نزدیک ، یا نمای نزدیک شدید .
- محیط : [اختیاری] نحوه کمک رنگ و نور به صحنه، مانند رنگهای آبی ، شب ، یا تنهای گرم .
نکات بیشتر برای نوشتن دستورات
نکات زیر به شما کمک می کند تا اعلان هایی بنویسید که ویدیوهای شما را تولید می کنند:
- از زبان توصیفی استفاده کنید : از صفت ها و قیدها برای ترسیم یک تصویر واضح برای Veo استفاده کنید.
- زمینه را ارائه دهید : در صورت لزوم، اطلاعات پس زمینه را برای کمک به مدل خود در درک آنچه می خواهید بگنجانید.
- ارجاع به سبک های هنری خاص : اگر زیبایی شناسی خاصی در ذهن دارید، به سبک های هنری یا حرکات هنری خاصی اشاره کنید.
- از ابزارهای مهندسی سریع استفاده کنید : کاوش در ابزارها یا منابع مهندسی سریع را در نظر بگیرید تا به شما کمک کنند تا درخواست های خود را اصلاح کنید و به نتایج مطلوب برسید. برای کسب اطلاعات بیشتر، به Introduction to Prompt design مراجعه کنید.
- جزئیات چهره را در تصاویر شخصی و گروهی خود بهبود بخشید : جزئیات صورت را به عنوان کانون عکس مانند استفاده از کلمه پرتره در درخواست مشخص کنید.
نمونه دستورات و خروجی
این بخش چندین اعلان را ارائه میکند، که نشان میدهد چگونه جزئیات توصیفی میتوانند نتیجه هر ویدیو را ارتقا دهند.
یخ ها
این ویدیو نشان میدهد که چگونه میتوانید از عناصر اولیه نوشتن سریع در اعلان خود استفاده کنید.
اعلان | خروجی تولید شده |
---|---|
نمای نزدیک (ترکیب) از یخهای در حال ذوب (موضوع) روی دیواره سنگی یخزده (زمینه) با رنگهای آبی سرد (محیط) بزرگنمایی شده (حرکت دوربین) با حفظ جزئیات نزدیک از چکههای آب (اکشن). | ![]() |
مرد پشت تلفن
این ویدیوها نشان میدهند که چگونه میتوانید درخواست خود را با جزئیات ویژهتر اصلاح کنید تا از Veo بخواهید خروجی را مطابق میل شما اصلاح کند.
اعلان | خروجی تولید شده | تجزیه و تحلیل |
---|---|---|
عروسک دوربین برای نشان دادن نمای نزدیک از مردی ناامید با کت سبز رنگ. او با یک تلفن دیواری به سبک چرخشی با چراغ نئون سبز تماس می گیرد. شبیه صحنه فیلم است. | ![]() | این اولین ویدیویی است که بر اساس درخواست تولید شده است. |
یک نما سینمایی کلوزآپ مردی مستاصل را با یک کت سبز رنگ فرسوده دنبال می کند که در حال شماره گیری تلفن چرخشی نصب شده روی دیوار آجری شنی است که در درخشش ترسناک تابلوی نئونی سبز رنگ غوطه ور شده است. دوربين داخل ميشود و تنش را در آروارهاش نشان ميدهد و يأس حك شده در چهرهاش را هنگام تلاش براي برقراري تماس نشان ميدهد. عمق میدان کم روی ابروی شیاردار و تلفن چرخشی مشکی او متمرکز میشود و پسزمینه را در دریایی از رنگهای نئونی و سایههای نامشخص محو میکند و حس فوریت و انزوا را ایجاد میکند. | ![]() | یک اعلان دقیقتر منجر به ویدیویی میشود که با محیط غنیتر تمرکز بیشتری دارد. |
ویدیویی با حرکت صاف که به مردی ناامید با کت سبز رنگ، با استفاده از یک تلفن چرخشی قدیمی در مقابل دیواری که در نور سبز وهمآوری نئونی غرق شده است، مینشیند. دوربین از فاصلهای متوسط شروع میشود و به آرامی به چهره مرد نزدیکتر میشود و حالت عصبانی و عرق روی پیشانیاش را نشان میدهد که او فوراً تلفن را شمارهگیری میکند. تمرکز روی دستهای مرد است، انگشتهایش در حالی که ناامیدانه تلاش میکند تا با صفحه تماس بگیرد. نور سبز نئون سایه های بلندی روی دیوار می اندازد و بر فضای متشنج می افزاید. این صحنه برای تاکید بر انزوا و استیصال مرد طراحی شده است و تضاد فاحش بین درخشش پر جنب و جوش نئون و عزم تیره مرد را برجسته می کند. | ![]() | افزودن جزئیات بیشتر به سوژه بیانی واقعی می دهد و صحنه ای شدید و پر جنب و جوش ایجاد می کند. |
پلنگ برفی
این مثال خروجی Veo را نشان می دهد که ممکن است برای یک دستور ساده ایجاد کند.
اعلان | خروجی تولید شده |
---|---|
موجودی بامزه با خز پلنگ برفی در حال قدم زدن در جنگل زمستانی، رندر سه بعدی کارتونی. | ![]() |
دویدن پلنگ برفی
این درخواست دارای جزئیات بیشتری است و خروجی تولید شده را نشان می دهد که ممکن است به آنچه در ویدیوی شما می خواهید نزدیکتر باشد.
اعلان | خروجی تولید شده |
---|---|
یک صحنه متحرک سه بعدی کوتاه به سبک کارتونی شاد ایجاد کنید. موجودی بامزه با خز پلنگمانند برفی، چشمهای رسا درشت، و فرمی دوستانه و گرد، با خوشحالی در جنگلی عجیب زمستانی میچرخد. صحنه باید شامل درختان گرد و پوشیده از برف، دانه های برف ملایم در حال سقوط و نور گرم خورشید باشد که از میان شاخه ها عبور می کند. حرکات تندی و لبخند پهن موجودات باید لذت خالص را منتقل کند. با رنگهای روشن و شاد و انیمیشنهای بازیگوش، لحنی شاد و دلانگیز را هدف بگیرید. | ![]() |
نمونه هایی با نوشتن عناصر
این مثالها به شما نشان میدهند که چگونه درخواستهای خود را با هر عنصر اصلی اصلاح کنید.
موضوع
این مثال به شما نشان می دهد که چگونه یک توضیح موضوع را مشخص کنید.
شرح موضوع | اعلان | خروجی تولید شده |
---|---|---|
توصیف می تواند شامل یک موضوع یا چندین موضوع و کنش باشد. در اینجا موضوع ما «آپارتمان آپارتمان بتنی سفید» است. | نمایی معماری از یک ساختمان آپارتمانی بتنی سفید با اشکال ارگانیک روان، ترکیبی یکپارچه با فضای سبز سرسبز و عناصر آینده نگر | ![]() |
زمینه
این مثال به شما نشان می دهد که چگونه زمینه را مشخص کنید.
زمینه | اعلان | خروجی تولید شده |
---|---|---|
زمینه یا زمینه ای که موضوع در آن قرار می گیرد بسیار مهم است. سعی کنید سوژه خود را در پس زمینه های مختلف مانند خیابان شلوغ یا در فضای بیرونی قرار دهید. | ماهواره ای که در فضای بیرونی با ماه و چند ستاره در پس زمینه شناور است. | ![]() |
اقدام
این مثال به شما نشان می دهد که چگونه عمل را مشخص کنید.
اقدام | اعلان | خروجی تولید شده |
---|---|---|
سوژه چه کاری انجام می دهد مانند راه رفتن، دویدن یا چرخاندن سر. | تصویری گسترده از زنی که در امتداد ساحل قدم میزند، در غروب آفتاب راضی به نظر میرسد و به سمت افق آرام میگیرد. | ![]() |
سبک
این مثال به شما نشان می دهد که چگونه استایل را مشخص کنید.
سبک | اعلان | خروجی تولید شده |
---|---|---|
میتوانید کلمات کلیدی را برای بهبود کیفیت تولید و نزدیکتر کردن آن به سبک مورد نظر اضافه کنید، مانند عمق میدان کم، فیلم ثابت، مینیمالیستی، سورئال، قدیمی، آیندهنگر یا نوردهی دوگانه. | سبک فیلم نوآر، راه رفتن زن و مرد در خیابان، معمایی، سینمایی، سیاه و سفید. | ![]() |
حرکت دوربین
این مثال به شما نشان می دهد که چگونه حرکت دوربین را مشخص کنید.
حرکت دوربین | اعلان | خروجی تولید شده |
---|---|---|
گزینههای حرکت دوربین شامل عکسبرداری POV، نمای هوایی، ردیابی نمای هواپیمای بدون سرنشین یا عکس ردیابی است. | عکس POV از یک ماشین قدیمی که در باران رانندگی می کند، کانادا در شب، سینمایی. | ![]() |
ترکیب
این مثال به شما نشان می دهد که چگونه ترکیب را مشخص کنید.
ترکیب | اعلان | خروجی تولید شده |
---|---|---|
نحوه کادربندی عکس (شات واید، کلوزآپ، زاویه کم). | نمای نزدیک از یک چشم که شهر در آن منعکس شده است. | ![]() |
ویدیویی از یک عکس گسترده از موج سوار در حال راه رفتن در ساحل با تخته موج سواری، غروب زیبا، سینمایی ایجاد کنید. | ![]() |
محیط
این مثال به شما نشان می دهد که چگونه محیط را مشخص کنید.
محیط | اعلان | خروجی تولید شده |
---|---|---|
پالت های رنگی نقش حیاتی در عکاسی دارند و بر خلق و خو و انتقال احساسات مورد نظر تاثیر می گذارند. چیزهایی مانند "تنهای گرم نارنجی خاموش"، "نور طبیعی"، "طلوع خورشید" یا "غروب خورشید" را امتحان کنید. به عنوان مثال، یک پالت گرم و طلایی می تواند حسی رمانتیک و جوی را به عکس القا کند. | نمای نزدیک از دختری که توله سگ گلدن رتریور شایان ستایش را در پارک در دست دارد، نور خورشید. | ![]() |
عکس کلوزآپ سینمایی از زنی غمگین سوار اتوبوس زیر باران، رنگ آبی سرد، حال و هوای غمگین. | ![]() |
از تصاویر مرجع برای تولید فیلم استفاده کنید
با استفاده از قابلیت تصویر به ویدئو Veo می توانید تصاویر را زنده کنید. میتوانید از داراییهای موجود استفاده کنید یا Imagen را امتحان کنید تا چیز جدیدی ایجاد کنید.
اعلان | خروجی تولید شده |
---|---|
اسم حیوان دست اموز با آب نبات شکلاتی. | ![]() |
بانی فرار می کند. | ![]() |
پیام های منفی
اعلانهای منفی میتوانند ابزار قدرتمندی برای کمک به تعیین عناصری باشند که در ویدیو نمیخواهید . بعد از عبارت «اخطار منفی»، آنچه را که میخواهید مدل را از تولید منصرف کنید، توصیف کنید. این نکات را دنبال کنید:
❌ از زبان آموزنده یا کلماتی مانند نه یا نه استفاده نکنید. به عنوان مثال، "بدون دیوار" یا "دیوارها را نشان ندهد".
✅ آنچه را که نمی خواهید ببینید را توصیف کنید. به عنوان مثال، "دیوار، قاب"، به این معنی که شما یک دیوار یا یک قاب در ویدیو نمی خواهید.
اعلان | خروجی تولید شده |
---|---|
یک انیمیشن کوتاه و سبک از یک درخت بلوط بزرگ و منفرد با برگهایی که به شدت در باد شدید می وزند ایجاد کنید. درخت باید فرم کمی اغراق آمیز و عجیب و غریب، با شاخه های پویا و روان داشته باشد. برگ ها باید رنگ های متنوع پاییزی را به نمایش بگذارند و در باد می چرخند و می رقصند. انیمیشن باید از یک پالت رنگی گرم و جذاب استفاده کند. | ![]() |
یک انیمیشن کوتاه و سبک از یک درخت بلوط بزرگ و منفرد با برگهایی که به شدت در باد شدید می وزند ایجاد کنید. درخت باید فرم کمی اغراق آمیز و عجیب و غریب، با شاخه های پویا و روان داشته باشد. برگ ها باید رنگ های متنوع پاییزی را به نمایش بگذارند و در باد می چرخند و می رقصند. انیمیشن باید از یک پالت رنگی گرم و جذاب استفاده کند. با اعلان منفی - پس زمینه شهری، سازه های دست ساز، جو تاریک، طوفانی یا تهدیدآمیز. | ![]() |
نسبت ابعاد
تولید ویدیو Gemini Veo از دو نسبت تصویر زیر پشتیبانی می کند:
نسبت ابعاد | توضیحات |
---|---|
صفحه عریض یا 16:9 | رایج ترین نسبت تصویر برای تلویزیون، مانیتور و صفحه نمایش تلفن همراه (منظره). هنگامی که می خواهید بیشتر پس زمینه را بگیرید، مانند مناظر منظره، از این استفاده کنید. |
پرتره یا 9:16 | چرخش صفحه عریض این نسبت تصویر توسط برنامه های ویدئویی فرم کوتاه، مانند شورت های یوتیوب، رایج شده است. از این برای پرتره ها یا اشیاء بلند با جهت های عمودی قوی مانند ساختمان ها، درختان، آبشار یا ساختمان ها استفاده کنید. |
صفحه عریض
این اعلان نمونه ای از نسبت تصویر عریض 16:9 است.
اعلان | خروجی تولید شده |
---|---|
ویدیویی با نمای هواپیمای بدون سرنشین ردیابی از مردی که در حال رانندگی یک ماشین تبدیلپذیر قرمز در پالم اسپرینگز، دهه 1970، نور گرم خورشید، سایههای طولانی است، ایجاد کنید. | ![]() |
پرتره
این اعلان نمونه ای از نسبت تصویر پرتره 9:16 است.
اعلان | خروجی تولید شده |
---|---|
ویدئویی ایجاد کنید که حرکت صاف یک آبشار باشکوه هاوایی را در یک جنگل بارانی سرسبز برجسته کند. برای انتقال آرامش بر جریان آب واقع گرایانه ، شاخ و برگهای دقیق و روشنایی طبیعی تمرکز کنید. آب عجله ، جو مه آلود و فیلتر نور خورشید را از طریق سایبان متراکم ضبط کنید. برای نمایش آبشار و محیط اطراف آن از حرکات دوربین صاف و سینمایی استفاده کنید. هدف یک لحن مسالمت آمیز و واقع بینانه ، انتقال بیننده به زیبایی های آرام جنگلهای بارانی هاوایی. | ![]() |
بعدش چی
- تجربه بیشتری در تولید فیلم های هوش مصنوعی با Veo Colab کسب کنید.
- نمونه های جالب را با استفاده از VEO 2 در سایت Google DeepMind ببینید
Gemini API دسترسی به VEO 2 ، با توانایی ترین مدل تولید ویدیویی Google را تا به امروز فراهم می کند. VEO فیلم هایی را در طیف گسترده ای از سبک های سینمایی و بصری تولید می کند و به دست می آورد و ظرافت سریع را برای ارائه جزئیات پیچیده به طور مداوم در قاب ها ضبط می کند. این راهنما به شما کمک می کند تا با استفاده از API Gemini با VEO شروع کنید.
برای راهنمایی های ویدئویی ، بخش راهنمای سریع VEO را بررسی کنید.
قبل از شروع
قبل از تماس با Gemini API ، اطمینان حاصل کنید که SDK مورد نظر خود را نصب کرده اید و یک کلید API Gemini پیکربندی شده و آماده استفاده است.
برای استفاده از VEO با Google Gen AI SDK ها ، اطمینان حاصل کنید که یکی از نسخه های زیر را نصب کرده اید:
- Python v1.10.0 یا بعد از آن
- TypeScript و JavaScript v0.8.0 یا بعد از آن
- به v1.0.0 یا بعد بروید
فیلم تولید کنید
در این بخش نمونه های کد برای تولید فیلم با استفاده از متن متن و استفاده از تصاویر ارائه شده است.
از متن تولید کنید
برای تولید فیلم با VEO می توانید از کد زیر استفاده کنید:
import time
from google import genai
from google.genai import types
client = genai.Client() # read API key from GOOGLE_API_KEY
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
),
)
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, generated_video in enumerate(operation.response.generated_videos):
client.files.download(file=generated_video.video)
generated_video.video.save(f"video{n}.mp4") # save the video
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
personGeneration: "dont_allow",
aspectRatio: "16:9",
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`); // append your API key
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
PersonGeneration: "dont_allow",
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"Panning wide shot of a calico kitten sleeping in the sunshine",
nil,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
# Use curl to send a POST request to the predictLongRunning endpoint.
# The request body includes the prompt for video generation.
curl "${BASE_URL}/models/veo-2.0-generate-001:predictLongRunning?key=${GOOGLE_API_KEY}" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "Panning wide shot of a calico kitten sleeping in the sunshine"
}
],
"parameters": {
"aspectRatio": "16:9",
"personGeneration": "dont_allow",
}
}' | tee result.json | jq .name | sed 's/"//g' > op_name
# Obtain operation name to download video.
op_name=$(cat op_name)
# Check against status of operation.
while true; do
is_done=$(curl "${BASE_URL}/${op_name}?key=${GOOGLE_API_KEY}" | tee op_check.json | jq .done)
if [ "${is_done}" = "true" ]; then
cat op_check.json
echo "** Attach API_KEY to download video, or examine error message."
break
fi
echo "** Video ${op_name} has not downloaded yet! Check again after 5 seconds..."
# Wait for 5 seoncds to check again.
sleep 5
done
این کد حدود 2-3 دقیقه طول می کشد ، هرچند اگر منابع محدود شود ممکن است بیشتر طول بکشد. پس از اتمام کار ، باید ویدئویی را ببینید که چیزی شبیه به این است:
اگر به جای یک فیلم ، پیام خطا را مشاهده می کنید ، این بدان معنی است که منابع محدود شده اند و درخواست شما نمی تواند تکمیل شود. در این حالت ، کد را دوباره اجرا کنید.
فیلم های تولید شده به مدت 2 روز در سرور ذخیره می شوند و پس از آن حذف می شوند. اگر می خواهید یک نسخه محلی از ویدیوی تولید شده خود را ذخیره کنید ، باید در طی 2 روز از تولید result()
و save()
ذخیره کنید.
از تصاویر تولید می شود
همچنین می توانید با استفاده از تصاویر فیلم هایی تولید کنید. کد زیر تصویری را با استفاده از Imagen ایجاد می کند ، سپس از تصویر تولید شده به عنوان قاب شروع برای ویدیوی تولید شده استفاده می کند.
ابتدا با استفاده از Imagen تصویری ایجاد کنید:
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
imagen = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
aspect_ratio="16:9",
number_of_images=1
)
)
imagen.generated_images[0].image
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const response = await ai.models.generateImages({
model: "imagen-3.0-generate-002",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
numberOfImages: 1,
},
});
// you'll pass response.generatedImages[0].image.imageBytes to Veo
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
config := &genai.GenerateImagesConfig{
AspectRatio: "16:9",
NumberOfImages: 1,
}
response, _ := client.Models.GenerateImages(
ctx,
"imagen-3.0-generate-002",
"Panning wide shot of a calico kitten sleeping in the sunshine",
config,
)
// you'll pass response.GeneratedImages[0].Image to Veo
}
سپس ، یک ویدیو را با استفاده از تصویر حاصل به عنوان اولین قاب تولید کنید:
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt=prompt,
image = imagen.generated_images[0].image,
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
number_of_videos=2
),
)
# Wait for videos to generate
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, video in enumerate(operation.response.generated_videos):
fname = f'with_image_input{n}.mp4'
print(fname)
client.files.download(file=video.video)
video.video.save(fname)
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
// get image bytes from Imagen, as shown above
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
image: {
imageBytes: response.generatedImages[0].image.imageBytes, // response from Imagen
mimeType: "image/png",
},
config: {
aspectRatio: "16:9",
numberOfVideos: 2,
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(
`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`, // append your API key
);
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
image := response.GeneratedImages[0].Image
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
NumberOfVideos: 2,
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"A dramatic scene based on the input image",
image,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_with_image_input_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
پارامترهای مدل VEO
(نامگذاری کنوانسیون ها با زبان برنامه نویسی متفاوت است.)
-
prompt
: متن متن برای فیلم. در صورت وجود ، پارامترimage
اختیاری است. -
image
: تصویری که به عنوان اولین قاب برای فیلم استفاده می شود. در صورت وجود ، پارامترprompt
اختیاری است. -
negativePrompt
: رشته متن که هر چیزی را که می خواهید مدل را از تولید آن دلسرد کنید ، توصیف می کند -
aspectRatio
: نسبت ابعاد فیلم تولید شده را تغییر می دهد. مقادیر پشتیبانی شده"16:9"
و"9:16"
هستند. پیش فرض"16:9"
است. -
personGeneration
: به مدل اجازه دهید فیلم های مردم را تولید کند. مقادیر زیر پشتیبانی می شوند:- نسل متن به فیلم:
-
"dont_allow"
: اجازه ورود افراد یا صورت را نکنید. -
"allow_adult"
: فیلم هایی تولید کنید که شامل بزرگسالان می شود ، اما کودکان نیستند.
-
- نسل تصویر به ویدئو:
-
"dont_allow"
: اجازه ورود افراد یا صورت را نکنید. -
"allow_adult"
: فیلم هایی تولید کنید که شامل بزرگسالان می شود ، اما کودکان نیستند. - محدودیت ها را ببینید.
-
- نسل متن به فیلم:
-
numberOfVideos
: فیلم های خروجی درخواست شده ، یا1
یا2
. -
durationSeconds
: طول هر فیلم خروجی در چند ثانیه ، بین5
تا8
. -
enhance_prompt
: بازنویسی سریع را فعال یا غیرفعال کنید. به طور پیش فرض فعال است.
مشخصات
فیلم های ایجاد شده توسط VEO با استفاده از synthid ، ابزار ما برای علامت گذاری و شناسایی محتوای تولید شده AI ، علامت گذاری می شوند و از طریق فیلترهای ایمنی و فرآیندهای بررسی یادآوری که به کاهش حریم خصوصی ، حق چاپ و خطرات تعصب کمک می کند ، منتقل می شوند.
چیزهایی که باید امتحان کنید
برای به دست آوردن بیشترین استفاده از VEO ، اصطلاحات خاص ویدیویی را در اعلان های خود وارد کنید. VEO طیف گسترده ای از اصطلاحات مربوط به:
- ترکیب شات: فریم و تعداد سوژه ها را در شات مشخص کنید (به عنوان مثال ، "تک شات" ، "دو شات" ، "شلیک بیش از حد شانه").
- موقعیت یابی دوربین و حرکت: مکان و حرکت دوربین را با استفاده از اصطلاحاتی مانند "سطح چشم" ، "زاویه بلند" ، "کرم چشم" ، "شلیک دالی" ، "شات زوم" ، "شات پان" و "شلیک ردیابی" کنترل کنید.
- تمرکز و اثرات لنز: از اصطلاحاتی مانند "تمرکز کم عمق" ، "تمرکز عمیق" ، "تمرکز نرم" ، "لنزهای کلان" و "لنزهای زاویه ای گسترده" استفاده کنید تا به جلوه های بصری خاصی برسد.
- سبک و موضوع کلی: راهنمای خلاقیت VEO را با مشخص کردن سبک هایی مانند "Sci-Fi" ، "کمدی عاشقانه" ، "فیلم اکشن" یا "انیمیشن" راهنمایی کنید. همچنین می توانید موضوعات و پیشینه های مورد نظر خود را توصیف کنید ، مانند "منظره شهری" ، "طبیعت" ، "وسایل نقلیه" یا "حیوانات".
راهنمای سریع Veo
این بخش از راهنمای VEO شامل نمونه هایی از فیلم هایی است که می توانید با استفاده از VEO ایجاد کنید و به شما نشان می دهد که چگونه می توانید درخواست های خود را برای تولید نتایج مشخص تغییر دهید.
فیلترهای ایمنی
VEO فیلترهای ایمنی را در سراسر جمینی اعمال می کند تا اطمینان حاصل شود که فیلم های تولید شده و عکس های بارگذاری شده حاوی محتوای توهین آمیز نیستند. منجر به نقض شرایط و دستورالعمل های ما می شود.
اصول اولیه نوشتن
دستورالعمل های خوب توصیفی و واضح است. برای به دست آوردن فیلم تولید شده خود تا حد امکان به آنچه می خواهید ، با شناسایی ایده اصلی خود شروع کنید و سپس با اضافه کردن کلمات کلیدی و اصلاح کننده ، ایده خود را اصلاح کنید.
عناصر زیر باید در سریع شما گنجانده شود:
- موضوع : شی ، شخص ، حیوان یا مناظر مورد نظر خود در ویدیوی خود.
- زمینه : پیشینه یا زمینه ای که موضوع در آن قرار دارد.
- عمل : آنچه موضوع انجام می دهد (به عنوان مثال ، راه رفتن ، دویدن یا چرخاندن سر آنها ).
- سبک : این می تواند کلی یا بسیار خاص باشد. در نظر بگیرید که از کلمات کلیدی خاص فیلم مانند فیلم ترسناک ، فیلم نوآر یا سبک های متحرک مانند سبک کارتونی استفاده کنید.
- حرکت دوربین : [اختیاری] آنچه دوربین انجام می دهد ، مانند نمای هوایی ، سطح چشم ، شلیک از بالا به پایین یا شلیک زاویه ای کم .
- ترکیب : [اختیاری] چگونه این شات قاب بندی می شود ، مانند شات وسیع ، نزدیک یا نزدیک نزدیک .
- محیط : [اختیاری] چگونه رنگ و نور در صحنه نقش دارد ، مانند رنگ های آبی ، شب یا تن گرم .
نکات بیشتر برای نوشتن مطالب
نکات زیر به شما در نوشتن مطالب کمک می کند که فیلم های شما را تولید می کنند:
- از زبان توصیفی استفاده کنید : از صفت ها و قید ها برای ترسیم یک تصویر واضح برای VEO استفاده کنید.
- زمینه را فراهم کنید : در صورت لزوم ، اطلاعات پس زمینه را درج کنید تا به مدل خود کمک کنید تا آنچه را می خواهید درک کنید.
- سبک های خاص هنری مرجع : اگر زیبایی شناسی خاصی در ذهن دارید ، سبک های خاص هنری یا حرکات هنری را مرجع کنید.
- از ابزارهای سریع مهندسی استفاده کنید : برای کمک به شما در اصلاح دستورالعمل ها و دستیابی به نتایج بهینه ، به کاوش در مورد ابزارها یا منابع سریع مهندسی در نظر بگیرید. برای اطلاعات بیشتر ، به مقدمه برای طراحی سریع مراجعه کنید.
- جزئیات صورت را در تصاویر شخصی و گروهی خود تقویت کنید : جزئیات صورت را به عنوان تمرکز عکس مانند استفاده از کلمه پرتره در سریع مشخص کنید.
مثال و خروجی
در این بخش چندین مطلب ارائه شده است ، و برجسته می کند که چگونه جزئیات توصیفی می توانند نتیجه هر ویدیو را بالا ببرند.
یخ ها
این ویدیو نشان می دهد که چگونه می توانید از عناصر اصول نوشتن سریع در سریع خود استفاده کنید.
اعلان | خروجی تولید شده |
---|---|
شات نزدیک (ترکیب) یخچال های ذوب (موضوع) بر روی یک دیوار سنگ منجمد (متن) با رنگ های آبی خنک (محیط) ، بزرگنمایی در (حرکت دوربین) با حفظ جزئیات نزدیک از آب (عمل). | ![]() |
مرد پشت تلفن
این فیلم ها نشان می دهد که چگونه می توانید با جزئیات فزاینده خاص ، سریع خود را تجدید نظر کنید تا VEO را برای تصحیح بازده به دلخواه خود بدست آورید.
اعلان | خروجی تولید شده | تجزیه و تحلیل |
---|---|---|
دوربین های دوربین برای نشان دادن نزدیک یک مرد ناامید در یک کت سنگر سبز. او در حال برقراری تماس با تلفن دیواری به سبک دوار با نور نئون سبز است. به نظر می رسد صحنه فیلم است. | ![]() | این اولین ویدیوی تولید شده بر اساس سریع است. |
یک شلیک سینمایی نزدیک ، یک مرد ناامید را در یک کت سنگر سبز آب و هوا دنبال می کند ، زیرا او یک تلفن دوار نصب شده بر روی یک دیوار آجری ریز و درشت را که در درخشش بی نظیر یک علامت نئون سبز غرق می شود ، دنبال می کند. دوربین های دوربین در آن قرار دارند و تنش در فک او را نشان می دهند و ناامیدی بر چهره او هنگام تلاش برای برقراری تماس ، بر چهره او می شود. عمق کم عمق میدان روی ابروهای خزنده او و تلفن چرخشی سیاه تمرکز دارد و پس زمینه را به دریای رنگهای نئون و سایه های نامشخص تار می کند و باعث ایجاد حس فوریت و انزوا می شود. | ![]() | سریعتر سریعتر در ویدئویی که بیشتر با یک محیط غنی تر متمرکز شده است ، نتیجه می گیرد. |
ویدئویی با حرکت صاف که روی یک مرد ناامید در یک کت سنگر سبز ، با استفاده از یک تلفن چرخشی پرنعمت در برابر دیواره ای که در درخشش نئون سبز گرم قرار گرفته است ، عروسک می کند. دوربین از فاصله متوسط شروع می شود و به آرامی به چهره مرد نزدیک می شود و بیان ناخوشایند او و عرق را روی ابروش نشان می دهد زیرا او فوراً تلفن را شماره گیری می کند. تمرکز روی دستان مرد است ، انگشتانش با شماره گیری در حالی که ناامیدانه سعی در اتصال دارد ، می شود. نور نئون سبز سایه های طولانی را روی دیوار می اندازد و به فضای پرتنش اضافه می کند. این صحنه برای تأکید بر انزوا و ناامیدی مرد ساخته شده است و تضاد شدید بین درخشش پر جنب و جوش نئون و عزم شدید مرد را برجسته می کند. | ![]() | اضافه کردن جزئیات بیشتر به موضوع یک بیان واقع بینانه می دهد و صحنه ای شدید و پر جنب و جوش ایجاد می کند. |
پلنگ برفی
این مثال نشان می دهد که خروجی VEO ممکن است برای یک فوری ساده ایجاد کند.
اعلان | خروجی تولید شده |
---|---|
موجودی زیبا با خز پلنگ مانند برفی در جنگل زمستانی ، به سبک کارتونی سه بعدی در حال قدم زدن است. | ![]() |
دویدن پلنگ برفی
این سریع جزئیات بیشتری دارد و نشان می دهد خروجی تولید شده که ممکن است به آنچه در ویدیوی شما می خواهید نزدیکتر باشد.
اعلان | خروجی تولید شده |
---|---|
یک صحنه انیمیشن سه بعدی کوتاه را به سبک کارتونی شاد ایجاد کنید. موجودی زیبا با خز پلنگ مانند برفی ، چشمان بزرگ و بیانگر و یک شکل دوستانه و گرد با خوشحالی از طریق یک جنگل زمستانی غریبانه غرق می شود. این صحنه باید دارای درختان گرد و پوشیده از برف ، برف های در حال ریزش ملایم و فیلتر آفتاب گرم از طریق شاخه ها باشد. حرکات تند و زننده موجودات و لبخند گسترده باید لذت خالص را به وجود آورد. هدف خود را برای یک لحن خوشایند و دلچسب با رنگ های روشن و شاد و انیمیشن بازیگوش هدف قرار دهید. | ![]() |
نمونه هایی با نوشتن عناصر
این مثالها به شما نشان می دهد که چگونه می توانید با هر عنصر اصلی ، درخواست های خود را اصلاح کنید.
موضوع
این مثال به شما نشان می دهد که چگونه توضیحات موضوع را مشخص کنید.
شرح موضوع | اعلان | خروجی تولید شده |
---|---|---|
توضیحات می تواند شامل یک موضوع یا چندین موضوع و اقدامات باشد. در اینجا ، موضوع ما "ساختمان آپارتمان بتونی سفید" است. | ارائه معماری از یک آپارتمان بتونی سفید با شکل های ارگانیک جریان ، یکپارچه با فضای سبز سرسبز و عناصر آینده نگر آمیخته است | ![]() |
زمینه
این مثال به شما نشان می دهد که چگونه زمینه را مشخص کنید.
زمینه | اعلان | خروجی تولید شده |
---|---|---|
پیشینه یا زمینه ای که موضوع در آن قرار می گیرد بسیار مهم است. سعی کنید موضوع خود را در پس زمینه های مختلف مانند خیابان شلوغ یا در فضای بیرونی قرار دهید. | ماهواره ای که در فضای بیرونی با ماه و برخی از ستاره ها در پس زمینه شناور است. | ![]() |
اقدام
این مثال به شما نشان می دهد که چگونه عمل را مشخص کنید.
اقدام | اعلان | خروجی تولید شده |
---|---|---|
موضوعی که مانند راه رفتن ، دویدن یا چرخاندن سرشان انجام می شود ، چه کاری انجام می شود. | شلیک گسترده ای از زنی که در امتداد ساحل قدم می زند ، به دنبال محتوا و آرامش به سمت افق در غروب آفتاب است. | ![]() |
سبک
این مثال به شما نشان می دهد که چگونه سبک را مشخص کنید.
سبک | اعلان | خروجی تولید شده |
---|---|---|
شما می توانید کلمات کلیدی را برای بهبود کیفیت تولید اضافه کرده و آن را به سبک مورد نظر نزدیک تر کنید ، مانند عمق کم عمق زمینه ، فیلم هنوز ، مینیمالیستی ، سورئال ، پرنعمت ، آینده نگر یا دو برابر. | سبک نوآر فیلم ، زن و مرد در خیابان قدم می زنند ، رمز و راز ، سینمایی ، سیاه و سفید. | ![]() |
حرکت دوربین
این مثال نحوه مشخص کردن حرکت دوربین را به شما نشان می دهد.
حرکت دوربین | اعلان | خروجی تولید شده |
---|---|---|
گزینه های حرکت دوربین شامل عکس POV ، نمای هوایی ، ردیابی نمای هواپیماهای بدون سرنشین یا ردیابی شات است. | یک شلیک POV از یک ماشین پرنعمت که در باران ، کانادا در شب ، سینمایی رانندگی می کند. | ![]() |
ترکیب
این مثال نحوه مشخص کردن ترکیب را به شما نشان می دهد.
ترکیب | اعلان | خروجی تولید شده |
---|---|---|
نحوه شات (شات گسترده ، نزدیک ، زاویه کم). | نزدیک نزدیک به یک چشم با شهر منعکس شده در آن. | ![]() |
ویدئویی از یک عکس گسترده از گشت و گذار در ساحل با یک تخته گشت و گذار ، غروب آفتاب زیبا ، سینمایی ایجاد کنید. | ![]() |
محیط
این مثال به شما نشان می دهد که چگونه محیط را مشخص کنید.
محیط | اعلان | خروجی تولید شده |
---|---|---|
پالت های رنگی نقش مهمی در عکاسی ، تأثیرگذاری بر خلق و خوی و انتقال احساسات در نظر گرفته شده دارند. مواردی مانند "تن های گرم نارنجی خاموش" ، "نور طبیعی" ، "طلوع آفتاب" یا "غروب آفتاب" را امتحان کنید. به عنوان مثال ، یک پالت گرم و طلایی می تواند احساس عاشقانه و جوی را به یک عکس تزریق کند. | نزدیکی دختری که توله سگ طلایی شایان ستایش را در پارک ، نور خورشید برگزار می کند. | ![]() |
شوت نزدیک سینمایی یک زن غمگین که سوار اتوبوس در باران ، رنگ های آبی خنک ، روحیه غم انگیز است. | ![]() |
برای تولید فیلم از تصاویر مرجع استفاده کنید
می توانید با استفاده از قابلیت تصویر به ویدیو وئو ، تصاویر را به زندگی بیاورید. شما می توانید از دارایی های موجود استفاده کنید ، یا Imagen را برای تولید چیز جدید امتحان کنید.
اعلان | خروجی تولید شده |
---|---|
اسم حیوان دست اموز با نوار آب نبات شکلاتی. | ![]() |
اسم حیوان دست اموز فرار می کند. | ![]() |
پیام های منفی
ارسال های منفی می تواند ابزاری قدرتمند برای کمک به مشخص کردن عناصری باشد که در این ویدئو نمی خواهید. آنچه را که می خواهید بعد از عبارت "سریع منفی" از تولید خودداری کنید ، توصیف کنید. این نکات را دنبال کنید:
❌ از زبان آموزنده یا کلماتی مانند نه استفاده نکنید یا نه . به عنوان مثال ، "بدون دیوار" یا "دیوارها نشان ندهید".
✅ آنچه را که نمی خواهید ببینید را توصیف کنید. به عنوان مثال ، "دیوار ، قاب" ، به این معنی که شما یک دیوار یا یک قاب در فیلم نمی خواهید.
اعلان | خروجی تولید شده |
---|---|
یک انیمیشن کوتاه و سبک از یک درخت بلوط بزرگ و انفرادی با برگهایی که به شدت در باد شدید می وزد ، ایجاد کنید. درخت باید شکلی کمی اغراق آمیز و غریب ، با شاخه های پویا و روان داشته باشد. برگها باید انواع رنگهای پاییزی ، چرخش و رقصیدن در باد را نشان دهند. انیمیشن باید از یک پالت رنگی گرم و دعوت کننده استفاده کند. | ![]() |
یک انیمیشن کوتاه و سبک از یک درخت بلوط بزرگ و انفرادی با برگهایی که به شدت در باد شدید می وزد ، ایجاد کنید. درخت باید شکلی کمی اغراق آمیز و غریب ، با شاخه های پویا و روان داشته باشد. برگها باید انواع رنگهای پاییزی ، چرخش و رقصیدن در باد را نشان دهند. انیمیشن باید از یک پالت رنگی گرم و دعوت کننده استفاده کند. با سرعت منفی - پیشینه شهری ، ساختارهای ساخته شده توسط انسان ، فضای تاریک ، طوفانی یا تهدیدآمیز. | ![]() |
نسبت ابعاد
Gemini Veo Generation از دو نسبت دو ابعاد زیر پشتیبانی می کند:
نسبت ابعاد | توضیحات |
---|---|
صفحه گسترده یا 16: 9 | متداول ترین نسبت ابعاد تلویزیون ، مانیتورها و صفحه نمایش تلفن همراه (چشم انداز). از این استفاده کنید وقتی می خواهید پس زمینه بیشتر ، مانند مناظر منظره را ضبط کنید. |
پرتره یا 9:16 | صفحه گسترده چرخشی. این نسبت ابعاد توسط برنامه های ویدیویی با فرم کوتاه ، مانند شورت های YouTube محبوب شده است. این مورد را برای پرتره ها یا اشیاء بلند با جهت گیری های عمودی قوی مانند ساختمانها ، درختان ، آبشار یا ساختمانها استفاده کنید. |
صفحه عریض
این سریع نمونه ای از نسبت ابعاد صفحه گسترده 16: 9 است.
اعلان | خروجی تولید شده |
---|---|
ویدئویی را با نمای هواپیماهای بدون سرنشین ردیابی از مردی که در حال رانندگی یک ماشین قابل تبدیل قرمز در Palm Springs ، 1970 ، نور آفتاب گرم ، سایه های طولانی است ، ایجاد کنید. | ![]() |
پرتره
این سریع نمونه ای از نسبت ابعاد پرتره 9:16 است.
اعلان | خروجی تولید شده |
---|---|
یک فیلم ایجاد کنید که حرکت صاف یک آبشار با شکوه هاوایی را در یک جنگل بارانی سرسبز برجسته کنید. برای انتقال آرامش بر جریان آب واقع گرایانه ، شاخ و برگهای دقیق و روشنایی طبیعی تمرکز کنید. آب عجله ، جو مه آلود و فیلتر نور خورشید را از طریق سایبان متراکم ضبط کنید. برای نمایش آبشار و محیط اطراف آن از حرکات دوربین صاف و سینمایی استفاده کنید. هدف یک لحن مسالمت آمیز و واقع بینانه ، انتقال بیننده به زیبایی های آرام جنگلهای بارانی هاوایی. | ![]() |
بعدش چی
- تجربه بیشتری در تولید فیلم های هوش مصنوعی با Veo Colab کسب کنید.
- نمونه های جالب را با استفاده از VEO 2 در سایت Google DeepMind ببینید
Gemini API دسترسی به VEO 2 ، با توانایی ترین مدل تولید ویدیویی Google را تا به امروز فراهم می کند. VEO فیلم هایی را در طیف گسترده ای از سبک های سینمایی و بصری تولید می کند و به دست می آورد و ظرافت سریع را برای ارائه جزئیات پیچیده به طور مداوم در قاب ها ضبط می کند. این راهنما به شما کمک می کند تا با استفاده از API Gemini با VEO شروع کنید.
برای راهنمایی های ویدئویی ، بخش راهنمای سریع VEO را بررسی کنید.
قبل از شروع
قبل از تماس با Gemini API ، اطمینان حاصل کنید که SDK مورد نظر خود را نصب کرده اید و یک کلید API Gemini پیکربندی شده و آماده استفاده است.
برای استفاده از VEO با Google Gen AI SDK ها ، اطمینان حاصل کنید که یکی از نسخه های زیر را نصب کرده اید:
- Python v1.10.0 یا بعد از آن
- TypeScript و JavaScript v0.8.0 یا بعد از آن
- به v1.0.0 یا بعد بروید
فیلم تولید کنید
در این بخش نمونه های کد برای تولید فیلم با استفاده از متن متن و استفاده از تصاویر ارائه شده است.
از متن تولید کنید
برای تولید فیلم با VEO می توانید از کد زیر استفاده کنید:
import time
from google import genai
from google.genai import types
client = genai.Client() # read API key from GOOGLE_API_KEY
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
),
)
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, generated_video in enumerate(operation.response.generated_videos):
client.files.download(file=generated_video.video)
generated_video.video.save(f"video{n}.mp4") # save the video
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
personGeneration: "dont_allow",
aspectRatio: "16:9",
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`); // append your API key
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
PersonGeneration: "dont_allow",
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"Panning wide shot of a calico kitten sleeping in the sunshine",
nil,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
# Use curl to send a POST request to the predictLongRunning endpoint.
# The request body includes the prompt for video generation.
curl "${BASE_URL}/models/veo-2.0-generate-001:predictLongRunning?key=${GOOGLE_API_KEY}" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "Panning wide shot of a calico kitten sleeping in the sunshine"
}
],
"parameters": {
"aspectRatio": "16:9",
"personGeneration": "dont_allow",
}
}' | tee result.json | jq .name | sed 's/"//g' > op_name
# Obtain operation name to download video.
op_name=$(cat op_name)
# Check against status of operation.
while true; do
is_done=$(curl "${BASE_URL}/${op_name}?key=${GOOGLE_API_KEY}" | tee op_check.json | jq .done)
if [ "${is_done}" = "true" ]; then
cat op_check.json
echo "** Attach API_KEY to download video, or examine error message."
break
fi
echo "** Video ${op_name} has not downloaded yet! Check again after 5 seconds..."
# Wait for 5 seoncds to check again.
sleep 5
done
این کد حدود 2-3 دقیقه طول می کشد ، هرچند اگر منابع محدود شود ممکن است بیشتر طول بکشد. پس از اتمام کار ، باید ویدئویی را ببینید که چیزی شبیه به این است:
اگر به جای یک فیلم ، پیام خطا را مشاهده می کنید ، این بدان معنی است که منابع محدود شده اند و درخواست شما نمی تواند تکمیل شود. در این حالت ، کد را دوباره اجرا کنید.
فیلم های تولید شده به مدت 2 روز در سرور ذخیره می شوند و پس از آن حذف می شوند. اگر می خواهید یک نسخه محلی از ویدیوی تولید شده خود را ذخیره کنید ، باید در طی 2 روز از تولید result()
و save()
ذخیره کنید.
از تصاویر تولید می شود
همچنین می توانید با استفاده از تصاویر فیلم هایی تولید کنید. کد زیر تصویری را با استفاده از Imagen ایجاد می کند ، سپس از تصویر تولید شده به عنوان قاب شروع برای ویدیوی تولید شده استفاده می کند.
ابتدا با استفاده از Imagen تصویری ایجاد کنید:
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
imagen = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
aspect_ratio="16:9",
number_of_images=1
)
)
imagen.generated_images[0].image
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const response = await ai.models.generateImages({
model: "imagen-3.0-generate-002",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
config: {
numberOfImages: 1,
},
});
// you'll pass response.generatedImages[0].image.imageBytes to Veo
package main
import (
"context"
"fmt"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, _ := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
config := &genai.GenerateImagesConfig{
AspectRatio: "16:9",
NumberOfImages: 1,
}
response, _ := client.Models.GenerateImages(
ctx,
"imagen-3.0-generate-002",
"Panning wide shot of a calico kitten sleeping in the sunshine",
config,
)
// you'll pass response.GeneratedImages[0].Image to Veo
}
سپس ، یک ویدیو را با استفاده از تصویر حاصل به عنوان اولین قاب تولید کنید:
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt=prompt,
image = imagen.generated_images[0].image,
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
number_of_videos=2
),
)
# Wait for videos to generate
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, video in enumerate(operation.response.generated_videos):
fname = f'with_image_input{n}.mp4'
print(fname)
client.files.download(file=video.video)
video.video.save(fname)
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
// get image bytes from Imagen, as shown above
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001",
prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
image: {
imageBytes: response.generatedImages[0].image.imageBytes, // response from Imagen
mimeType: "image/png",
},
config: {
aspectRatio: "16:9",
numberOfVideos: 2,
},
});
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
const resp = await fetch(
`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`, // append your API key
);
const writer = createWriteStream(`video${n}.mp4`);
Readable.fromWeb(resp.body).pipe(writer);
});
}
main();
image := response.GeneratedImages[0].Image
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
NumberOfVideos: 2,
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
"A dramatic scene based on the input image",
image,
videoConfig,
)
for !operation.Done {
time.Sleep(20 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
for n, video := range operation.Response.GeneratedVideos {
client.Files.Download(ctx, video.Video, nil)
fname := fmt.Sprintf("video_with_image_input_%d.mp4", n)
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
}
}
پارامترهای مدل VEO
(نامگذاری کنوانسیون ها با زبان برنامه نویسی متفاوت است.)
-
prompt
: متن متن برای فیلم. در صورت وجود ، پارامترimage
اختیاری است. -
image
: تصویری که به عنوان اولین قاب برای فیلم استفاده می شود. در صورت وجود ، پارامترprompt
اختیاری است. -
negativePrompt
: رشته متن که هر چیزی را که می خواهید مدل را از تولید آن دلسرد کنید ، توصیف می کند -
aspectRatio
: نسبت ابعاد فیلم تولید شده را تغییر می دهد. مقادیر پشتیبانی شده"16:9"
و"9:16"
هستند. پیش فرض"16:9"
است. -
personGeneration
: به مدل اجازه دهید فیلم های مردم را تولید کند. مقادیر زیر پشتیبانی می شوند:- نسل متن به فیلم:
-
"dont_allow"
: اجازه ورود افراد یا صورت را نکنید. -
"allow_adult"
: فیلم هایی تولید کنید که شامل بزرگسالان می شود ، اما کودکان نیستند.
-
- نسل تصویر به ویدئو:
-
"dont_allow"
: اجازه ورود افراد یا صورت را نکنید. -
"allow_adult"
: فیلم هایی تولید کنید که شامل بزرگسالان می شود ، اما کودکان نیستند. - محدودیت ها را ببینید.
-
- نسل متن به فیلم:
-
numberOfVideos
: فیلم های خروجی درخواست شده ، یا1
یا2
. -
durationSeconds
: طول هر فیلم خروجی در چند ثانیه ، بین5
تا8
. -
enhance_prompt
: بازنویسی سریع را فعال یا غیرفعال کنید. به طور پیش فرض فعال است.
مشخصات
فیلم های ایجاد شده توسط VEO با استفاده از synthid ، ابزار ما برای علامت گذاری و شناسایی محتوای تولید شده AI ، علامت گذاری می شوند و از طریق فیلترهای ایمنی و فرآیندهای بررسی یادآوری که به کاهش حریم خصوصی ، حق چاپ و خطرات تعصب کمک می کند ، منتقل می شوند.
چیزهایی که باید امتحان کنید
برای به دست آوردن بیشترین استفاده از VEO ، اصطلاحات خاص ویدیویی را در اعلان های خود وارد کنید. VEO طیف گسترده ای از اصطلاحات مربوط به:
- ترکیب شات: فریم و تعداد سوژه ها را در شات مشخص کنید (به عنوان مثال ، "تک شات" ، "دو شات" ، "شلیک بیش از حد شانه").
- موقعیت یابی دوربین و حرکت: مکان و حرکت دوربین را با استفاده از اصطلاحاتی مانند "سطح چشم" ، "زاویه بلند" ، "کرم چشم" ، "شلیک دالی" ، "شات زوم" ، "شات پان" و "شلیک ردیابی" کنترل کنید.
- تمرکز و اثرات لنز: از اصطلاحاتی مانند "تمرکز کم عمق" ، "تمرکز عمیق" ، "تمرکز نرم" ، "لنزهای کلان" و "لنزهای زاویه ای گسترده" استفاده کنید تا به جلوه های بصری خاصی برسد.
- سبک و موضوع کلی: راهنمای خلاقیت VEO را با مشخص کردن سبک هایی مانند "Sci-Fi" ، "کمدی عاشقانه" ، "فیلم اکشن" یا "انیمیشن" راهنمایی کنید. همچنین می توانید موضوعات و پیشینه های مورد نظر خود را توصیف کنید ، مانند "منظره شهری" ، "طبیعت" ، "وسایل نقلیه" یا "حیوانات".
راهنمای سریع Veo
این بخش از راهنمای VEO شامل نمونه هایی از فیلم هایی است که می توانید با استفاده از VEO ایجاد کنید و به شما نشان می دهد که چگونه می توانید درخواست های خود را برای تولید نتایج مشخص تغییر دهید.
فیلترهای ایمنی
VEO فیلترهای ایمنی را در سراسر جمینی اعمال می کند تا اطمینان حاصل شود که فیلم های تولید شده و عکس های بارگذاری شده حاوی محتوای توهین آمیز نیستند. منجر به نقض شرایط و دستورالعمل های ما می شود.
اصول اولیه نوشتن
دستورالعمل های خوب توصیفی و واضح است. برای به دست آوردن فیلم تولید شده خود تا حد امکان به آنچه می خواهید ، با شناسایی ایده اصلی خود شروع کنید و سپس با اضافه کردن کلمات کلیدی و اصلاح کننده ، ایده خود را اصلاح کنید.
عناصر زیر باید در سریع شما گنجانده شود:
- موضوع : شی ، شخص ، حیوان یا مناظر مورد نظر خود در ویدیوی خود.
- زمینه : پیشینه یا زمینه ای که موضوع در آن قرار دارد.
- عمل : آنچه موضوع انجام می دهد (به عنوان مثال ، راه رفتن ، دویدن یا چرخاندن سر آنها ).
- سبک : این می تواند کلی یا بسیار خاص باشد. در نظر بگیرید که از کلمات کلیدی خاص فیلم مانند فیلم ترسناک ، فیلم نوآر یا سبک های متحرک مانند سبک کارتونی استفاده کنید.
- حرکت دوربین : [اختیاری] آنچه دوربین انجام می دهد ، مانند نمای هوایی ، سطح چشم ، شلیک از بالا به پایین یا شلیک زاویه ای کم .
- ترکیب : [اختیاری] چگونه این شات قاب بندی می شود ، مانند شات وسیع ، نزدیک یا نزدیک نزدیک .
- محیط : [اختیاری] چگونه رنگ و نور در صحنه نقش دارد ، مانند رنگ های آبی ، شب یا تن گرم .
نکات بیشتر برای نوشتن مطالب
نکات زیر به شما در نوشتن مطالب کمک می کند که فیلم های شما را تولید می کنند:
- از زبان توصیفی استفاده کنید : از صفت ها و قید ها برای ترسیم یک تصویر واضح برای VEO استفاده کنید.
- زمینه را فراهم کنید : در صورت لزوم ، اطلاعات پس زمینه را درج کنید تا به مدل خود کمک کنید تا آنچه را می خواهید درک کنید.
- سبک های خاص هنری مرجع : اگر زیبایی شناسی خاصی در ذهن دارید ، سبک های خاص هنری یا حرکات هنری را مرجع کنید.
- از ابزارهای سریع مهندسی استفاده کنید : برای کمک به شما در اصلاح دستورالعمل ها و دستیابی به نتایج بهینه ، به کاوش در مورد ابزارها یا منابع سریع مهندسی در نظر بگیرید. برای اطلاعات بیشتر ، به مقدمه برای طراحی سریع مراجعه کنید.
- جزئیات صورت را در تصاویر شخصی و گروهی خود تقویت کنید : جزئیات صورت را به عنوان تمرکز عکس مانند استفاده از کلمه پرتره در سریع مشخص کنید.
مثال و خروجی
در این بخش چندین مطلب ارائه شده است ، و برجسته می کند که چگونه جزئیات توصیفی می توانند نتیجه هر ویدیو را بالا ببرند.
یخ ها
این ویدیو نشان می دهد که چگونه می توانید از عناصر اصول نوشتن سریع در سریع خود استفاده کنید.
اعلان | خروجی تولید شده |
---|---|
شات نزدیک (ترکیب) یخچال های ذوب (موضوع) بر روی یک دیوار سنگ منجمد (متن) با رنگ های آبی خنک (محیط) ، بزرگنمایی در (حرکت دوربین) با حفظ جزئیات نزدیک از آب (عمل). | ![]() |
مرد پشت تلفن
این فیلم ها نشان می دهد که چگونه می توانید با جزئیات فزاینده خاص ، سریع خود را تجدید نظر کنید تا VEO را برای تصحیح بازده به دلخواه خود بدست آورید.
اعلان | خروجی تولید شده | تجزیه و تحلیل |
---|---|---|
دوربین های دوربین برای نشان دادن نزدیک یک مرد ناامید در یک کت سنگر سبز. او در حال برقراری تماس با تلفن دیواری به سبک دوار با نور نئون سبز است. به نظر می رسد صحنه فیلم است. | ![]() | این اولین ویدیوی تولید شده بر اساس سریع است. |
یک شلیک سینمایی نزدیک ، یک مرد ناامید را در یک کت سنگر سبز آب و هوا دنبال می کند ، زیرا او یک تلفن دوار نصب شده بر روی یک دیوار آجری ریز و درشت را که در درخشش بی نظیر یک علامت نئون سبز غرق می شود ، دنبال می کند. دوربین های دوربین در آن قرار دارند و تنش در فک او را نشان می دهند و ناامیدی بر چهره او هنگام تلاش برای برقراری تماس ، بر چهره او می شود. عمق کم عمق میدان روی ابروهای خزنده او و تلفن چرخشی سیاه تمرکز دارد و پس زمینه را به دریای رنگهای نئون و سایه های نامشخص تار می کند و باعث ایجاد حس فوریت و انزوا می شود. | ![]() | سریعتر سریعتر در ویدئویی که بیشتر با یک محیط غنی تر متمرکز شده است ، نتیجه می گیرد. |
ویدئویی با حرکت صاف که روی یک مرد ناامید در یک کت سنگر سبز ، با استفاده از یک تلفن چرخشی پرنعمت در برابر دیواره ای که در درخشش نئون سبز گرم قرار گرفته است ، عروسک می کند. دوربین از فاصله متوسط شروع می شود و به آرامی به چهره مرد نزدیک می شود و بیان ناخوشایند او و عرق را روی ابروش نشان می دهد زیرا او فوراً تلفن را شماره گیری می کند. تمرکز روی دستان مرد است ، انگشتانش با شماره گیری در حالی که ناامیدانه سعی در اتصال دارد ، می شود. نور نئون سبز سایه های طولانی را روی دیوار می اندازد و به فضای پرتنش اضافه می کند. این صحنه برای تأکید بر انزوا و ناامیدی مرد ساخته شده است و تضاد شدید بین درخشش پر جنب و جوش نئون و عزم شدید مرد را برجسته می کند. | ![]() | اضافه کردن جزئیات بیشتر به موضوع یک بیان واقع بینانه می دهد و صحنه ای شدید و پر جنب و جوش ایجاد می کند. |
پلنگ برفی
این مثال نشان می دهد که خروجی VEO ممکن است برای یک فوری ساده ایجاد کند.
اعلان | خروجی تولید شده |
---|---|
موجودی زیبا با خز پلنگ مانند برفی در جنگل زمستانی ، به سبک کارتونی سه بعدی در حال قدم زدن است. | ![]() |
دویدن پلنگ برفی
این سریع جزئیات بیشتری دارد و نشان می دهد خروجی تولید شده که ممکن است به آنچه در ویدیوی شما می خواهید نزدیکتر باشد.
اعلان | خروجی تولید شده |
---|---|
یک صحنه انیمیشن سه بعدی کوتاه را به سبک کارتونی شاد ایجاد کنید. موجودی زیبا با خز پلنگ مانند برفی ، چشمان بزرگ و بیانگر و یک شکل دوستانه و گرد با خوشحالی از طریق یک جنگل زمستانی غریبانه غرق می شود. این صحنه باید دارای درختان گرد و پوشیده از برف ، برف های در حال ریزش ملایم و فیلتر آفتاب گرم از طریق شاخه ها باشد. حرکات تند و زننده موجودات و لبخند گسترده باید لذت خالص را به وجود آورد. هدف خود را برای یک لحن خوشایند و دلچسب با رنگ های روشن و شاد و انیمیشن بازیگوش هدف قرار دهید. | ![]() |
نمونه هایی با نوشتن عناصر
این مثالها به شما نشان می دهد که چگونه می توانید با هر عنصر اصلی ، درخواست های خود را اصلاح کنید.
موضوع
این مثال به شما نشان می دهد که چگونه توضیحات موضوع را مشخص کنید.
شرح موضوع | اعلان | خروجی تولید شده |
---|---|---|
توضیحات می تواند شامل یک موضوع یا چندین موضوع و اقدامات باشد. در اینجا ، موضوع ما "ساختمان آپارتمان بتونی سفید" است. | ارائه معماری از یک آپارتمان بتونی سفید با اشکال ارگانیک جریان ، یکپارچه با فضای سبز سرسبز و عناصر آینده نگر آمیخته است | ![]() |
زمینه
این مثال به شما نشان می دهد که چگونه زمینه را مشخص کنید.
زمینه | اعلان | خروجی تولید شده |
---|---|---|
پیشینه یا زمینه ای که موضوع در آن قرار می گیرد بسیار مهم است. سعی کنید موضوع خود را در پس زمینه های مختلف مانند خیابان شلوغ یا در فضای بیرونی قرار دهید. | ماهواره ای که در فضای بیرونی با ماه و برخی از ستاره ها در پس زمینه شناور است. | ![]() |
اقدام
این مثال به شما نشان می دهد که چگونه عمل را مشخص کنید.
اقدام | اعلان | خروجی تولید شده |
---|---|---|
موضوعی که مانند راه رفتن ، دویدن یا چرخاندن سرشان انجام می شود ، چه کاری انجام می شود. | شلیک گسترده ای از زنی که در امتداد ساحل قدم می زند ، به دنبال محتوا و آرامش به سمت افق در غروب آفتاب است. | ![]() |
سبک
این مثال به شما نشان می دهد که چگونه سبک را مشخص کنید.
سبک | اعلان | خروجی تولید شده |
---|---|---|
شما می توانید کلمات کلیدی را برای بهبود کیفیت تولید اضافه کرده و آن را به سبک مورد نظر نزدیک تر کنید ، مانند عمق کم عمق زمینه ، فیلم هنوز ، مینیمالیستی ، سورئال ، پرنعمت ، آینده نگر یا دو برابر. | سبک نوآر فیلم ، زن و مرد در خیابان قدم می زنند ، رمز و راز ، سینمایی ، سیاه و سفید. | ![]() |
حرکت دوربین
این مثال نحوه مشخص کردن حرکت دوربین را به شما نشان می دهد.
حرکت دوربین | اعلان | خروجی تولید شده |
---|---|---|
گزینه های حرکت دوربین شامل عکس POV ، نمای هوایی ، ردیابی نمای هواپیماهای بدون سرنشین یا ردیابی شات است. | یک شلیک POV از یک ماشین پرنعمت که در باران ، کانادا در شب ، سینمایی رانندگی می کند. | ![]() |
ترکیب
این مثال نحوه مشخص کردن ترکیب را به شما نشان می دهد.
ترکیب | اعلان | خروجی تولید شده |
---|---|---|
نحوه شات (شات گسترده ، نزدیک ، زاویه کم). | نزدیک نزدیک به یک چشم با شهر منعکس شده در آن. | ![]() |
ویدئویی از یک عکس گسترده از گشت و گذار در ساحل با یک تخته گشت و گذار ، غروب آفتاب زیبا ، سینمایی ایجاد کنید. | ![]() |
محیط
این مثال به شما نشان می دهد که چگونه محیط را مشخص کنید.
محیط | اعلان | خروجی تولید شده |
---|---|---|
پالت های رنگی نقش مهمی در عکاسی ، تأثیرگذاری بر خلق و خوی و انتقال احساسات در نظر گرفته شده دارند. مواردی مانند "تن های گرم نارنجی خاموش" ، "نور طبیعی" ، "طلوع آفتاب" یا "غروب آفتاب" را امتحان کنید. به عنوان مثال ، یک پالت گرم و طلایی می تواند احساس عاشقانه و جوی را به یک عکس تزریق کند. | نزدیکی دختری که توله سگ طلایی شایان ستایش را در پارک ، نور خورشید برگزار می کند. | ![]() |
شوت نزدیک سینمایی یک زن غمگین که سوار اتوبوس در باران ، رنگ های آبی خنک ، روحیه غم انگیز است. | ![]() |
برای تولید فیلم از تصاویر مرجع استفاده کنید
می توانید با استفاده از قابلیت تصویر به ویدیو وئو ، تصاویر را به زندگی بیاورید. شما می توانید از دارایی های موجود استفاده کنید ، یا Imagen را برای تولید چیز جدید امتحان کنید.
اعلان | خروجی تولید شده |
---|---|
اسم حیوان دست اموز با نوار آب نبات شکلاتی. | ![]() |
اسم حیوان دست اموز فرار می کند. | ![]() |
پیام های منفی
ارسال های منفی می تواند ابزاری قدرتمند برای کمک به مشخص کردن عناصری باشد که در این ویدئو نمی خواهید. آنچه را که می خواهید بعد از عبارت "سریع منفی" از تولید خودداری کنید ، توصیف کنید. این نکات را دنبال کنید:
❌ از زبان آموزنده یا کلماتی مانند نه استفاده نکنید یا نه . به عنوان مثال ، "بدون دیوار" یا "دیوارها نشان ندهید".
✅ آنچه را که نمی خواهید ببینید را توصیف کنید. به عنوان مثال ، "دیوار ، قاب" ، به این معنی که شما یک دیوار یا یک قاب در فیلم نمی خواهید.
اعلان | خروجی تولید شده |
---|---|
یک انیمیشن کوتاه و سبک از یک درخت بلوط بزرگ و انفرادی با برگهایی که به شدت در باد شدید می وزد ، ایجاد کنید. درخت باید شکلی کمی اغراق آمیز و غریب ، با شاخه های پویا و روان داشته باشد. برگها باید انواع رنگهای پاییزی ، چرخش و رقصیدن در باد را نشان دهند. انیمیشن باید از یک پالت رنگی گرم و دعوت کننده استفاده کند. | ![]() |
یک انیمیشن کوتاه و سبک از یک درخت بلوط بزرگ و انفرادی با برگهایی که به شدت در باد شدید می وزد ، ایجاد کنید. درخت باید شکلی کمی اغراق آمیز و غریب ، با شاخه های پویا و روان داشته باشد. برگها باید انواع رنگهای پاییزی ، چرخش و رقصیدن در باد را نشان دهند. انیمیشن باید از یک پالت رنگی گرم و دعوت کننده استفاده کند. با سرعت منفی - پیشینه شهری ، ساختارهای ساخته شده توسط انسان ، فضای تاریک ، طوفانی یا تهدیدآمیز. | ![]() |
نسبت ابعاد
Gemini Veo Generation از دو نسبت دو ابعاد زیر پشتیبانی می کند:
نسبت ابعاد | توضیحات |
---|---|
صفحه گسترده یا 16: 9 | متداول ترین نسبت ابعاد تلویزیون ، مانیتورها و صفحه نمایش تلفن همراه (چشم انداز). از این استفاده کنید وقتی می خواهید پس زمینه بیشتر ، مانند مناظر منظره را ضبط کنید. |
پرتره یا 9:16 | صفحه گسترده چرخشی. این نسبت ابعاد توسط برنامه های ویدیویی با فرم کوتاه ، مانند شورت های YouTube محبوب شده است. Use this for portraits or tall objects with strong vertical orientations, such as buildings, trees, waterfall, or buildings. |
صفحه عریض
This prompt is an example of the widescreen aspect ratio of 16:9.
اعلان | Generated output |
---|---|
Create a video with a tracking drone view of a man driving a red convertible car in Palm Springs, 1970s, warm sunlight, long shadows. | ![]() |
پرتره
This prompt is an example of the portrait aspect ratio of 9:16.
اعلان | Generated output |
---|---|
Create a video highlighting the smooth motion of a majestic Hawaiian waterfall within a lush rainforest. Focus on realistic water flow, detailed foliage, and natural lighting to convey tranquility. Capture the rushing water, misty atmosphere, and dappled sunlight filtering through the dense canopy. Use smooth, cinematic camera movements to showcase the waterfall and its surroundings. Aim for a peaceful, realistic tone, transporting the viewer to the serene beauty of the Hawaiian rainforest. | ![]() |
بعدش چی
- Gain more experience generating AI videos with the Veo Colab .
- Check out cool examples using Veo 2 on the Google DeepMind site