Veo를 사용하여 동영상 생성

Veo는 Google의 고화질 동영상 생성 모델로, 다양한 시네마틱 및 시각적 스타일로 동영상을 생성할 수 있습니다. Veo는 프롬프트의 미묘한 차이를 포착하여 프레임 전반에 걸쳐 복잡한 세부정보를 일관되게 렌더링합니다.

이 가이드에서는 Veo로 동영상을 생성하는 방법을 보여줍니다. 동영상 프롬프트 작성에 관한 팁은 Veo 프롬프트 가이드를 참고하세요.

Veo 버전

Gemini API는 Veo 3와 Veo 2의 두 가지 동영상 생성 모델을 제공합니다. 최신 모델인 Veo 3를 사용하는 것이 좋습니다. 품질과 오디오 생성 기능이 우수하기 때문입니다.

Veo 3는 프리뷰로 제공되며, 대규모 프로덕션 사용에 제한이 있을 수 있습니다. Veo 2안정적이며 더 나은 프로덕션 환경을 제공합니다.

모델 간 주요 기능 차이에 관한 자세한 안내는 모델 버전 비교 섹션을 참고하세요.

텍스트로 동영상 생성

이 섹션의 코드 샘플은 Veo 3를 사용하여 오디오가 통합된 동영상을 생성합니다.

Python

import time
from google import genai
from google.genai import types

client = genai.Client()

operation = client.models.generate_videos(
    model="veo-3.0-generate-preview",
    prompt="Panning wide shot of a purring kitten sleeping in the sunshine",
    config=types.GenerateVideosConfig(
        person_generation="allow_all",  # "allow_adult" and "dont_allow" for Veo 2 only
        aspect_ratio="16:9",  # "16:9", and "9:16" for Veo 2 only
    ),
)

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")

자바스크립트

import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";

const ai = new GoogleGenAI({});

async function main() {
  let operation = await ai.models.generateVideos({
    model: "veo-3.0-generate-preview",
    prompt: "Panning wide shot of a purring kitten sleeping in the sunshine",
    config: {
      personGeneration: "allow_all",
      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=GEMINI_API_KEY`); // append your API key
    const writer = createWriteStream(`video${n}.mp4`);
    Readable.fromWeb(resp.body).pipe(writer);
  });
}

main();

Go

package main

import (
  "context"
  "fmt"
  "os"
  "time"
  "google.golang.org/genai"
)

func main() {

  ctx := context.Background()
  client, err := genai.NewClient(ctx, nil)
  if err != nil {
      log.Fatal(err)
  }

  videoConfig := &genai.GenerateVideosConfig{
      AspectRatio:      "16:9",
      PersonGeneration: "allow_all",
  }

  operation, _ := client.Models.GenerateVideos(
      ctx,
      "veo-3.0-generate-preview",
      "Panning wide shot of a purring 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)
  }
}

REST

# 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-3.0-generate-preview:predictLongRunning" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -X "POST" \
  -d '{
    "instances": [{
        "prompt": "Panning wide shot of a purring kitten sleeping in the sunshine"
      }
    ],
    "parameters": {
      "aspectRatio": "16:9",
      "personGeneration": "allow_all",
    }
  }' | 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 -H "x-goog-api-key: $GEMINI_API_KEY" "${BASE_URL}/${op_name}" | 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

햇볕 아래에서 자고 있는 아기 고양이

이 코드는 실행하는 데 약 1분이 걸리지만 리소스가 제한된 경우 더 오래 걸릴 수 있습니다. 실행이 완료되면 여기에 있는 것과 같은 잠자는 아기 고양이 동영상이 표시됩니다.

동영상 대신 오류 메시지가 표시되면 리소스가 제한되어 요청을 완료할 수 없다는 의미입니다. 이 경우 코드를 다시 실행합니다.

생성된 동영상은 서버에 2일 동안 저장된 후 삭제됩니다. 생성된 동영상의 로컬 사본을 저장하려면 생성 후 2일 이내에 result()save()를 실행해야 합니다.

이미지에서 동영상 생성

다음 코드는 Imagen을 사용하여 이미지를 생성한 다음 생성된 이미지를 생성된 동영상의 시작 프레임으로 사용합니다.

먼저 Imagen을 사용하여 이미지를 생성합니다.

Python

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({});
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

Go

package main

import (
    "context"
    "fmt"
    "os"
    "time"
    "google.golang.org/genai"
)

func main() {

    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
  if err != nil {
      log.Fatal(err)
  }

    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
}

그런 다음 결과 이미지를 첫 번째 프레임으로 사용하여 동영상을 생성합니다.

Python

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({});

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=GEMINI_API_KEY`, // append your API key
    );
    const writer = createWriteStream(`video${n}.mp4`);
    Readable.fromWeb(resp.body).pipe(writer);
  });
}

main();

Go

    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": Veo 3 및 Veo 2에서 지원됩니다.
    • "9:16": Veo 2에서만 지원됩니다 (기본값은 "16:9").
  • personGeneration: 모델이 사람 동영상을 생성하도록 허용합니다. 다음과 같은 값이 지원됩니다.
    • 텍스트-동영상 변환 생성:
      • "allow_all": 성인과 어린이가 포함된 동영상을 생성합니다. 현재 Veo 3에 사용할 수 있는 유일한 personGeneration 값입니다.
      • "dont_allow": Veo 2만 해당 사람이나 얼굴이 포함되지 않습니다.
      • "allow_adult": Veo 2만 해당 성인은 포함되지만 어린이는 포함되지 않는 동영상을 생성합니다.
    • 이미지-동영상 생성: Veo 2만 해당
      • "dont_allow": 사람이나 얼굴을 포함하지 않습니다.
      • "allow_adult": 성인은 포함되지만 어린이는 포함되지 않는 동영상을 생성합니다.
    • 제한사항을 참고하세요.
  • numberOfVideos: 요청된 출력 동영상
    • 1: Veo 3 및 Veo 2에서 지원
    • 2: Veo 2에서만 지원됩니다.
  • durationSeconds: Veo 2만 해당 각 출력 동영상의 길이(초)(5~8)
    • Veo 3에서는 구성할 수 없으며 기본 설정은 8초입니다.
  • enhancePrompt: Veo 2만 해당 프롬프트 리라이터를 사용 설정 또는 사용 중지합니다. 기본적으로 사용 설정됩니다.
    • Veo 3에서는 구성할 수 없으며 기본 프롬프트 개선 기능이 항상 사용 설정되어 있습니다.

Veo 3와 Veo 2의 매개변수 차이를 나란히 비교하려면 모델 버전 비교 표를 참고하세요.

사양

형식
  • 텍스트 동영상 변환 생성
  • 이미지 동영상 변환 생성 (Veo 2만 해당)
요청 지연 시간
  • 최소: 11초
  • 최대: 6분 (피크 시간대)
가변 길이 생성
  • Veo 2: 5~8초
  • Veo 3: 8초
해결 방법 720p
프레임 속도 24fps
가로세로 비율
  • 16:9 - 가로 모드
  • 9:16 - 세로 모드 (Veo 2만 해당)
입력 언어 (텍스트를 동영상으로) 영어
제한사항
  • EU, 영국, 스위스, MENA 지역에서는 이미지 동영상 변환 personGeneration이 허용되지 않습니다.
  • EU, 영국, 스위스, MENA 지역에서는 텍스트-동영상 personGeneration: "allow_all"이 허용되지 않습니다.

Veo로 만든 동영상에는 AI 생성 콘텐츠에 워터마크를 지정하고 식별하는 Google 도구인 SynthID를 사용하여 워터마크가 지정되며, 개인 정보 보호, 저작권, 편향 위험을 완화하는 데 도움이 되는 안전 필터와 기억 검사 프로세스를 거칩니다.

Veo 프롬프트 가이드

Veo 가이드의 이 섹션에는 Veo를 사용하여 만들 수 있는 동영상의 예시가 나와 있으며, 프롬프트를 수정하여 다양한 결과를 얻는 방법을 보여줍니다.

안전 필터

Veo는 Gemini 전반에 안전 필터를 적용하여 생성된 동영상과 업로드된 사진에 불쾌감을 주는 콘텐츠가 포함되지 않도록 합니다. Google의 약관 및 가이드라인을 위반하는 프롬프트는 차단됩니다.

프롬프트 작성 기본사항

유용한 프롬프트는 설명적이고 명확합니다. Veo를 최대한 활용하려면 먼저 핵심 아이디어를 파악하고, 키워드와 수정자를 추가하여 아이디어를 조정하고, 동영상 관련 용어를 프롬프트에 포함하세요.

프롬프트에 다음 요소를 포함해야 합니다.

  • 주제: 동영상에 담고 싶은 사물, 사람, 동물 또는 풍경입니다(예: 도시 경관, 자연, 차량, 강아지).
  • 동작: 피사체가 하는 행동입니다 (예: 걷기, 달리기, 머리 돌리기).
  • 스타일: SF, 공포 영화, 필름 누아르 또는 만화와 같은 애니메이션 스타일 등 특정 영화 스타일 키워드를 사용하여 크리에이티브 방향을 지정합니다.
  • 카메라 위치 및 모션: [선택사항] 공중 촬영, 눈높이, 위에서 아래로 촬영, 돌리 샷, 버즈아이와 같은 용어를 사용하여 카메라의 위치와 움직임을 제어합니다.
  • 구도: [선택사항] 와이드 샷, 클로즈업, 싱글 샷, 투 샷 등 촬영이 프레이밍되는 방식입니다.
  • 초점 및 렌즈 효과: [선택사항] 얕은 초점, 깊은 초점, 부드러운 초점, 매크로 렌즈, 광각 렌즈와 같은 용어를 사용하여 특정 시각 효과를 구현합니다.
  • 분위기: [선택사항] 색상과 조명이 장면에 기여하는 방식(예: 파란색 톤, 야간, 따뜻한 색조)입니다.
  • 암시적 또는 명시적 오디오 신호: [Veo 3만 해당] Veo 3를 사용하면 음향 효과, 주변 소음, 대화에 대한 신호를 제공할 수 있습니다.

프롬프트 작성을 위한 추가 도움말

다음 팁은 동영상을 생성하는 프롬프트를 작성하는 데 도움이 됩니다.

  • 설명적인 언어 사용: 형용사와 부사를 사용하여 Veo에서 명확한 그림을 그릴 수 있도록 합니다.
  • 맥락 정보 제공: 필요한 경우 모델이 원하는 바를 이해하는 데 도움이 되는 배경 정보를 포함합니다.
  • 특정 아티스트 스타일 참조: 특정 스타일을 원한다면 특정 아티스트 스타일이나 예술 사조를 참조하는 것이 도움이 될 수 있습니다.
  • 프롬프트 엔지니어링 도구 사용: 프롬프트를 미세 조정하고 최적의 결과를 얻는 데 도움이 되는 프롬프트 엔지니어링 도구 또는 리소스를 살펴보세요. 자세한 내용은 프롬프트 설계 소개를 참고하세요.
  • 개인 및 그룹 이미지의 얼굴 세부정보 개선: 프롬프트에서 인물 사진이라는 단어를 사용하는 등 얼굴 세부정보를 사진의 초점으로 지정합니다.

프롬프트 및 출력 예시

이 섹션에서는 여러 프롬프트를 제시하여 설명적인 세부정보가 각 동영상의 결과를 어떻게 향상시킬 수 있는지 보여줍니다.

통합 오디오

이 동영상에서는 세부정보 수준을 높여 Veo 3의 오디오 생성을 프롬프트하는 방법을 보여줍니다.

프롬프트 생성된 출력
자세히 보기
벽에 그려진 알 수 없는 그림을 응시하는 두 사람의 클로즈업, 손전등이 깜박입니다. '이게 열쇠일 거야' 그는 패턴을 따라가며 중얼거렸습니다. '하지만 그게 무슨 뜻이야?' 그녀는 고개를 갸웃거리며 의아해했습니다. 축축한 돌, 복잡한 조각, 숨겨진 상징. 배경에서 희미하고 기이한 험이 울려 퍼집니다.
동굴 속 보물 사냥꾼
세부정보 줄이기
캠핑 (스톱 모션): 캠핑객: '이제 자연과 하나가 되었어!' 곰: '자연은 개인적인 공간을 선호합니다.'
동굴 속 보물 사냥꾼

직접 프롬프트를 사용해 오디오를 들어 보세요. Veo 3 사용해 보기

고드름

이 동영상에서는 프롬프트에서 프롬프트 작성 기본사항의 요소를 사용하는 방법을 보여줍니다.

프롬프트 생성된 출력
차가운 파란색 색조 (분위기)의 얼어붙은 암벽 (맥락)에 매달려 녹고 있는 고드름 (피사체)의 클로즈업 샷 (구도)으로, 물방울이 떨어지는 모습 (액션)을 클로즈업 세부정보로 유지하면서 확대 (카메라 모션)합니다. 파란색 배경에 고드름이 떨어지고 있습니다.

전화 중인 남성

이 동영상에서는 점점 더 구체적인 세부정보를 사용하여 프롬프트를 수정하여 Veo가 원하는 대로 출력을 수정하도록 하는 방법을 보여줍니다.

프롬프트 생성된 출력
세부정보 감소
카메라가 녹색 트렌치코트를 입은 절망적인 남성을 클로즈업합니다. 녹색 네온 불빛이 비추는 회전식 월폰으로 전화를 걸고 있습니다. 영화 장면처럼 보입니다.
전화 통화 중인 남성
자세한 내용
초록색 네온사인의 기이한 불빛에 휩싸여 낡은 녹색 트렌치코트를 입은 절망적인 남자가 거친 벽돌 벽에 설치된 회전식 전화기를 누르는 장면을 클로즈업한 시네마틱 샷이 이어집니다. 카메라가 가까이 다가와 전화를 걸기 위해 고군분투하는 그의 턱에 긴장감이 감돌고 얼굴에 절박함이 새겨져 있는 모습을 보여줍니다. 얕은 피사계 심도는 그의 주름진 눈썹과 검은색 회전식 전화기에 초점을 맞추고 배경을 수많은 네온 색상과 희미한 그림자로 흐리게 처리하여 긴박하고 고립된 느낌을 연출합니다.
전화 통화 중인 남성

눈표범

이 예에서는 간단한 프롬프트에 대해 Veo가 생성할 수 있는 출력을 보여줍니다.

프롬프트 생성된 출력
눈표범 같은 털을 가진 귀여운 생물이 겨울 숲을 걷고 있는 3D 만화 스타일의 렌더링입니다. 눈표범이 무기력합니다.

달리는 눈표범

이 프롬프트는 보다 자세하며 동영상에서 원하는 내용에 더 근접하게 생성된 출력을 보여줍니다.

프롬프트 생성된 출력
재미있는 만화 스타일의 짧은 3D 애니메이션 장면을 만듭니다. 눈표범 같은 털과 표정이 풍부한 커다란 눈, 친근하고 동글동글한 모습을 한 귀여운 동물이 기발한 겨울 숲을 즐겁게 뛰어다니고 있습니다. 이 장면에는 둥글고 눈 덮인 나무, 부드럽게 떨어지는 눈송이, 나뭇가지 사이로 들어오는 따뜻한 햇빛이 담겨 있어야 합니다. 생물의 통통 튀는 움직임과 환한 미소는 순수한 기쁨을 전달해야 합니다. 밝고 경쾌한 색상과 장난기 넘치는 애니메이션으로 낙관적이고 따뜻한 분위기를 연출하세요. 눈표범이 더 빠르게 달리고 있습니다.

쓰기 요소별 예

다음 예시에서는 각 기본 요소를 기준으로 프롬프트를 미세 조정하는 방법을 보여줍니다.

제목

이 예시에서는 피사체 설명을 지정하는 방법을 보여줍니다. 설명에는 피사체 또는 여러 피사체와 작업이 포함될 수 있습니다. 여기서 주제는 '흰색 콘크리트 아파트 건물'입니다.

프롬프트 생성된 출력
유기적인 흐름을 보여주는 흰색 콘크리트 아파트 건물의 건축 렌더링으로, 울창한 녹지와 미래지향적인 요소가 자연스럽게 조화를 이루고 있습니다. 자리표시자.

컨텍스트

이 예시에서는 컨텍스트를 지정하는 방법을 보여줍니다. 피사체가 배치될 배경 또는 컨텍스트가 매우 중요합니다. 번화한 거리나 우주와 같은 다양한 배경에 피사체를 배치해 보세요.

프롬프트 생성된 출력
달과 별을 배경으로 우주 공간을 떠다니는 위성입니다. 대기권에 떠 있는 위성.

작업

이 예시에서는 액션을 지정하는 방법을 보여줍니다. 액션은 피사체가 걷기, 달리기, 머리 돌리기와 같은 행동을 나타냅니다.

프롬프트 생성된 출력
해질녘 수평선을 바라보며 만족스럽고 여유로운 표정으로 해변을 걷고 있는 여성의 와이드 샷입니다. 일몰이 정말 아름답습니다.

스타일

이 예시에서는 스타일을 지정하는 방법을 보여줍니다. 키워드를 추가하여 생성 품질을 개선하고 얕은 피사계 심도, 영화 스틸, 미니멀리즘, 초현실주의, 빈티지, 미래지향적, 이중 노출 등 의도한 스타일에 더 가깝게 조정할 수 있습니다.

프롬프트 생성된 출력
필름 느와르 스타일, 남녀가 거리를 걷는 모습, 미스터리, 시네마틱, 흑백 필름 느와르 스타일이 정말 아름답습니다.

카메라 움직임

이 예시에서는 카메라 모션을 지정하는 방법을 보여줍니다. 카메라 모션 옵션에는 POV 촬영, 공중 촬영, 추적 드론 뷰 또는 추적 촬영이 있습니다.

프롬프트 생성된 출력
캐나다의 밤, 빗속을 달리는 빈티지 자동차에서 시점으로 촬영한 시네마틱 영상입니다. 일몰이 정말 아름답습니다.

음악작품

이 예시에서는 구도를 지정하는 방법을 보여줍니다. 구도란 촬영 구도 (와이드 샷, 클로즈업, 로우 앵글 등)를 말합니다.

프롬프트 생성된 출력
도시가 비친 눈을 극단적으로 클로즈업합니다. 일몰이 정말 아름답습니다.
서핑보드를 타고 해변을 걷는 서퍼의 와이드 샷, 아름다운 일몰, 시네마틱한 영상을 만들어 보세요. 일몰이 정말 아름답습니다.

분위기

이 예시에서는 분위기를 지정하는 방법을 보여줍니다. 색상 팔레트는 사진에서 중요한 역할을 하며 분위기에 영향을 미치고 의도한 감정을 전달합니다. '차분한 오렌지색 따뜻한 색조', '자연광', '일출', '일몰'과 같은 단어를 사용해 보세요. 예를 들어 따뜻한 황금색 팔레트는 사진에 로맨틱하고 분위기 있는 느낌을 불어넣을 수 있습니다.

프롬프트 생성된 출력
공원에서 사랑스러운 골든 리트리버 강아지를 안고 있는 소녀의 클로즈업, 햇빛 어린 소녀의 품에 안긴 강아지
비가 내리는 날 버스를 타고 있는 슬픈 여자의 시네마틱 클로즈업 샷, 차가운 파란색 색조, 슬픈 분위기 슬픈 기분으로 버스를 타고 있는 여성

참조 이미지를 사용하여 동영상 생성

Veo의 이미지 동영상 변환 기능을 사용하여 이미지에 생명력을 불어넣을 수 있습니다. 기존 확장 소재를 사용하거나 Imagen을 사용하여 새로운 콘텐츠를 생성할 수 있습니다.

프롬프트 생성된 출력
초콜릿 캔디 바를 들고 있는 토끼 토끼가 도망가고 있습니다.
토끼가 도망갑니다. 토끼가 도망가고 있습니다.

부정적인 프롬프트

부정적인 프롬프트는 동영상에 포함하고 싶지 않은 요소를 지정하는 데 도움이 되는 강력한 도구가 될 수 있습니다. '부정 프롬프트'라는 문구 뒤에 모델이 생성하지 않도록 하려는 항목을 설명합니다. 다음 팁을 따르세요.

  • ❌ 지시적인 언어나 아니요 또는 하지 마세요와 같은 단어는 사용하지 마세요. 예를 들어 '벽 없음' 또는 '벽 표시 안함'과 같은 문구를 사용합니다.

  • ✅ 보고 싶지 않은 항목을 설명하세요. 예를 들어 '벽, 프레임'은 동영상에 벽이나 프레임을 원하지 않는다는 의미입니다.

프롬프트 생성된 출력
강한 바람에 나뭇잎이 격렬하게 휘날리는 크고 고독한 참나무의 스타일리시한 짧은 애니메이션을 생성합니다. 나무는 역동적이고 흐르는 가지가 있는 약간 과장되고 기발한 형태여야 합니다. 잎은 바람에 흩날리며 춤추는 다양한 가을 색상을 보여줘야 합니다. 애니메이션은 따뜻하고 매력적인 색상 팔레트를 사용해야 합니다. 단어를 사용하는 나무
강한 바람에 나뭇잎이 격렬하게 휘날리는 크고 고독한 참나무의 스타일리시한 짧은 애니메이션을 생성합니다. 나무는 역동적이고 흐르는 가지가 있는 약간 과장되고 기발한 형태여야 합니다. 잎은 바람에 흩날리며 춤추는 다양한 가을 색상을 보여줘야 합니다. 애니메이션은 따뜻하고 매력적인 색상 팔레트를 사용해야 합니다.

부정적인 프롬프트 사용 - 도시 배경, 인공 구조물, 어둡거나 폭풍이 몰아치거나 위협적인 분위기
부정적인 단어가 없는 나무

가로세로 비율

Gemini Veo 동영상 생성은 다음 두 가지 가로세로 비율을 지원합니다.

가로세로 비율 설명
와이드스크린 또는 16:9 TV, 모니터, 휴대전화 화면 (가로 모드)에서 가장 일반적으로 사용되는 가로세로 비율입니다. 풍경 사진과 같이 배경을 더 많이 캡처하려면 이 옵션을 사용합니다.
세로 모드 또는 9:16
(Veo 2만 해당)
회전된 와이드스크린 이 가로세로 비율은 YouTube Shorts와 같은 짧은 형식 동영상 애플리케이션에서 인기가 있습니다. 건물, 나무, 폭포 또는 건물과 같이 수직 방향이 강한 인물 사진이나 긴 사물에 사용합니다.

와이드스크린

이 프롬프트는 16:9 와이드스크린 가로세로 비율의 예입니다.

프롬프트 생성된 출력
1970년대 팜스프링스, 따뜻한 햇살, 긴 그림자 속에서 빨간색 오픈카를 운전하는 한 남자의 모습을 드론으로 추적하여 동영상을 제작하세요. 폭포가 정말 아름답습니다.

세로

이 프롬프트는 세로 모드 가로세로 비율 9:16의 예입니다. 이 비율은 Veo 2에서만 사용할 수 있습니다.

프롬프트 생성된 출력
울창한 열대우림에 있는 장엄한 하와이 폭포의 부드러운 움직임이 담긴 동영상을 만들어 보세요. 사실적인 물 흐름, 섬세한 나뭇잎, 자연광에 초점을 맞춰 평온함을 전달하세요. 급류, 안개가 자욱한 대기, 울창한 나무 사이로 비치는 햇빛을 담아보세요. 부드럽고 영화 같은 카메라 움직임을 사용하여 폭포와 주변 환경을 보여주세요. 평화롭고 사실적인 색조를 지향하여 시청자를 하와이 열대우림의 고요한 아름다움으로 안내하세요. 폭포가 정말 아름답습니다.

모델 버전 비교

최고의 성능, 충실도, 품질을 위해 Veo 3를 사용하는 것이 좋습니다.

다음 표에서는 Veo 2와 현재 Veo 3 미리보기 상태 간의 기능, 사양, 매개변수 차이점을 설명합니다.

모델 Veo 3 Veo 2
제공 지역 미리보기 안정화
오디오 동영상과 함께 오디오 재생 (항상 사용 설정) 오디오 없음
생성 텍스트로 동영상 생성 텍스트 및 이미지 동영상 변환
요청당 동영상 수 1 1 또는 2
aspectRatio 16:9만 지원 16:9 또는 19:6
personGeneration allow_all만 해당 (구성할 수 없음) allow_adult, dont_allow 또는 allow_all (텍스트를 동영상으로만)
durationSeconds 구성할 수 없음, 8초만 가능 5~8초
enhancePrompt 구성할 수 없음, 항상 사용 설정 사용 설정 (기본값) 또는 사용 중지

모델 이름을 업데이트하여 Veo 3 모델 코드를 사용하면 매개변수를 최소한으로 변경하여 Veo 2에서 Veo 3로 이전할 수 있습니다.

다음 단계