Gemini API는 Google의 최신 동영상 생성 모델인 Veo 2에 대한 액세스를 제공합니다. Veo는 사용자 프롬프트와 이미지를 고품질 동영상 애셋으로 변환하는 차세대 AI 애플리케이션을 빌드하는 데 도움이 되도록 설계되었습니다.
이 가이드를 통해 Gemini API를 사용하여 Veo를 시작할 수 있습니다.
Veo 정보
Veo는 현재 Google의 가장 강력한 동영상 생성 모델입니다. Veo는 다양한 시네마틱 및 시각적 스타일로 동영상을 생성하여 프롬프트의 미묘한 차이를 포착하여 프레임 전체에서 복잡한 세부정보를 일관되게 렌더링합니다.
자세한 내용을 알아보고 출력 예시를 보려면 Google DeepMind Veo 개요를 확인하세요.
사양
형식 |
|
요청 지연 시간 |
|
가변 길이 생성 | 5~8초 |
해결 방법 | 720p |
프레임 속도 | 24fps |
가로세로 비율 |
|
입력 언어 (텍스트 대 동영상) | 영어 |
Veo에서 만든 동영상에는 AI 생성 콘텐츠에 워터마크를 지정하고 이를 식별하는 Google의 도구인 SynthID를 사용하여 워터마크가 지정되며, 개인 정보 보호, 저작권, 편향 위험을 완화하는 데 도움이 되는 안전 필터와 암기 확인 프로세스를 거칩니다.
시작하기 전에
Gemini API를 호출하기 전에 선택한 SDK가 설치되어 있고 Gemini API 키가 구성되어 있고 사용할 준비가 되었는지 확인합니다.
Google Gen AI SDK와 함께 Veo를 사용하려면 다음 버전 중 하나가 설치되어 있는지 확인합니다.
- Python v1.10.0 이상
- TypeScript 및 JavaScript v0.8.0 이상
- Go v1.0.0 이상
동영상 생성
이 섹션에서는 텍스트 프롬프트를 사용하고 이미지를 사용하여 동영상을 생성하는 코드 예시를 제공합니다.
텍스트에서 생성
다음 코드를 사용하여 Veo로 동영상을 생성할 수 있습니다.
Python
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
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-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
이 코드는 실행하는 데 약 2~3분 정도 걸리지만 리소스가 제약된 경우에는 더 오래 걸릴 수 있습니다. 실행이 완료되면 다음과 같은 동영상이 표시됩니다.
동영상 대신 오류 메시지가 표시되면 리소스가 제한되어 요청을 완료할 수 없음을 의미합니다. 이 경우 코드를 다시 실행합니다.
생성된 동영상은 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
그런 다음 결과 이미지를 첫 번째 프레임으로 사용하여 동영상을 생성합니다.
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 only accepts "dont_allow" for image-to-video
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)
Veo 모델 매개변수
(이름 지정 규칙은 프로그래밍 언어에 따라 다릅니다.)
prompt
: 동영상의 텍스트 프롬프트입니다.image
매개변수는 있는 경우 선택사항입니다.image
: 동영상의 첫 번째 프레임으로 사용할 이미지입니다.prompt
매개변수는 있는 경우 선택사항입니다.negativePrompt
: 모델이 생성하지 못하도록 방해하려는 항목을 설명하는 텍스트 문자열입니다.aspectRatio
: 생성된 동영상의 가로세로 비율을 변경합니다. 지원되는 값은"16:9"
및"9:16"
입니다. 기본값은"16:9"
입니다.personGeneration
: 모델이 사람의 동영상을 생성하도록 허용합니다. 다음과 같은 값이 지원됩니다.- 텍스트 대 동영상 생성:
"dont_allow"
: 사람 또는 얼굴을 포함하지 않습니다."allow_adult"
: 성인은 포함하고 어린이는 포함하지 않는 동영상을 생성합니다.
- 이미지-동영상 생성:
"dont_allow"
: 이미지-동영상 생성의 기본값이자 유일한 값입니다.
- 텍스트 대 동영상 생성:
numberOfVideos
: 요청된 동영상 출력(1
또는2
)입니다.durationSeconds
: 각 출력 동영상의 길이(초,5
~8
)입니다.enhance_prompt
: 프롬프트 재작성기를 사용 설정 또는 중지합니다. 기본적으로 사용 설정됩니다.
해결 방법
Veo를 최대한 활용하려면 프롬프트에 동영상 관련 용어를 포함하세요. Veo는 다음과 관련된 다양한 용어를 이해합니다.
- 장면 구성: 장면의 프레이밍과 피사체 수를 지정합니다(예: '단독 촬영', '투 샷', '오버 더 숄더 샷').
- 카메라 위치 및 움직임: '눈높이', '하이 앵글', '웜스 아이', '달리 샷', '확대 샷', '팬 샷', '트랙킹 샷'과 같은 용어를 사용하여 카메라의 위치와 움직임을 제어합니다.
- 포커스 및 렌즈 효과: '얕은 초점', '깊은 초점', '부드러운 초점', '매크로 렌즈', '광각 렌즈'와 같은 용어를 사용하여 특정 시각 효과를 얻습니다.
- 전반적인 스타일 및 주제: 'SF', '로맨틱 코미디', '액션 영화', '애니메이션'과 같은 스타일을 지정하여 Veo의 크리에이티브 방향을 안내합니다. '도시 풍경', '자연', '차량', '동물'과 같은 원하는 피사체와 배경을 설명할 수도 있습니다.
Veo 프롬프트 가이드
Veo 가이드의 이 섹션에는 Veo를 사용하여 만들 수 있는 동영상의 예시가 포함되어 있으며, 프롬프트를 수정하여 고유한 결과를 얻는 방법을 보여줍니다.
안전 필터
Veo는 생성된 동영상과 업로드된 사진에 불쾌감을 주는 콘텐츠가 포함되지 않도록 Gemini 전반에 안전 필터를 적용합니다. Google의 약관 및 가이드라인을 위반하는 프롬프트는 차단됩니다.
프롬프트 작성 기본사항
유용한 프롬프트는 설명적이고 명확합니다. 생성된 동영상이 원하는 동영상에 최대한 근접하도록 하려면 먼저 핵심 아이디어를 파악한 다음 키워드와 수정자를 추가하여 아이디어를 미세 조정합니다.
프롬프트에는 다음 요소가 포함되어야 합니다.
- 피사체: 동영상에 담고 싶은 사물, 사람, 동물 또는 풍경입니다.
- 컨텍스트: 피사체가 배치되는 배경 또는 컨텍스트입니다.
- 액션: 피사체가 하는 행동입니다 (예: 걷기, 달리기, 머리 돌리기).
- 스타일: 일반적이거나 매우 구체적일 수 있습니다. 공포 영화, 필름 누아르와 같은 특정 영화 스타일 키워드나 만화 스타일과 같은 애니메이션 스타일을 사용하는 것이 좋습니다.
- 카메라 모션: [선택사항] 공중 촬영, 눈높이, 하단에서 위로 촬영, 로우앵글 촬영 등 카메라의 작동 상태입니다.
- 구도: [선택사항] 와이드 샷, 클로즈업, 익스트림 클로즈업과 같은 촬영 구도입니다.
- Ambiance: [선택사항] 색상과 조명이 장면에 미치는 영향입니다(예: 파란색 톤, 밤, 따뜻한 색조).
프롬프트 작성을 위한 추가 도움말
다음 팁은 동영상을 생성하는 프롬프트를 작성하는 데 도움이 됩니다.
- 설명적인 언어 사용: 형용사와 부사를 사용하여 Veo에서 명확한 그림을 그릴 수 있도록 합니다.
- 맥락 정보 제공: 필요한 경우 모델이 원하는 바를 이해하는 데 도움이 되는 배경 정보를 포함합니다.
- 특정 아티스트 스타일 참조: 특정 스타일을 원한다면 특정 아티스트 스타일이나 예술 사조를 참조하는 것이 도움이 될 수 있습니다.
- 프롬프트 엔지니어링 도구 사용: 프롬프트를 미세 조정하고 최적의 결과를 얻는 데 도움이 되는 프롬프트 엔지니어링 도구 또는 리소스를 살펴보세요. 자세한 내용은 프롬프트 설계 소개를 참고하세요.
- 개인 및 그룹 이미지의 얼굴 세부정보 개선: 프롬프트에서 인물 사진이라는 단어를 사용하는 것처럼 얼굴 세부정보를 사진의 초점으로 지정합니다.
프롬프트 및 출력 예시
이 섹션에서는 설명적인 세부정보가 각 동영상의 결과를 개선하는 방법을 강조하는 여러 프롬프트를 제공합니다.
고드름
이 동영상에서는 프롬프트 작성 기본사항의 요소를 프롬프트에 사용하는 방법을 보여줍니다.
프롬프트 | 생성된 출력 |
---|---|
차가운 파란색 색조 (분위기)의 얼어붙은 암벽 (맥락)에 매달려 녹고 있는 고드름 (피사체)의 클로즈업 샷 (구도)으로, 물방울이 떨어지는 모습 (액션)을 클로즈업 세부정보로 유지하면서 확대 (카메라 모션)합니다. |
![]() |
전화 중인 남성
이 동영상에서는 점점 더 구체적인 세부정보를 사용하여 프롬프트를 수정하여 Veo가 원하는 대로 결과물을 미세 조정하는 방법을 보여줍니다.
프롬프트 | 생성된 출력 | 분석 |
---|---|---|
카메라가 초록색 트렌치코트를 입고 절망적인 표정을 짓고 있는 남성을 클로즈업으로 보여주기 위해 움직입니다. 녹색 네온 조명이 있는 회전식 벽면 전화로 통화를 하고 있습니다. 마치 영화 장면처럼 보입니다. |
![]() |
프롬프트를 기반으로 생성된 첫 번째 동영상입니다. |
초록색 네온사인의 기이한 불빛에 휩싸여 낡은 녹색 트렌치코트를 입은 절망적인 남자가 거친 벽돌 벽에 설치된 회전식 전화기를 누르는 장면을 클로즈업한 시네마틱 샷이 이어집니다. 카메라가 가까이 다가와 전화를 걸기 위해 고군분투하는 그의 턱에 긴장감이 감돌고 얼굴에 절박함이 새겨져 있는 모습을 보여줍니다. 얕은 피사계 심도는 그의 주름진 눈썹과 검은색 회전식 전화기에 초점을 맞추고 배경을 수많은 네온 색상과 희미한 그림자로 흐리게 처리하여 긴박하고 고립된 느낌을 연출합니다. |
![]() |
프롬프트가 더 구체적일수록 더 풍부한 환경에서 더 집중된 동영상이 생성됩니다. |
초록색 트렌치코트를 입고 으스스한 녹색 네온 조명에 휩싸인 벽에 기대어 빈티지 회전식 전화를 사용하는 절망적인 남성을 부드럽게 화면 안으로 당겨오는 동영상입니다. 카메라는 중간 거리에서 시작하여 천천히 남자의 얼굴 가까이 다가가면서 남자가 다급하게 전화를 거는 그의 당황한 표정과 이마에 맺힌 땀을 보여줍니다. 필사적으로 다이얼을 조작하며 연결하려고 애쓰는 남자의 손에 초점이 맞춰져 있습니다. 녹색 네온 불빛이 벽에 긴 그림자를 드리우며 긴장감 넘치는 분위기를 더합니다. 이 장면은 남자의 고립감과 절박함을 강조하기 위해 네온의 생생한 빛과 남자의 냉혹한 결단력 사이의 극명한 대비를 강조하는 프레임으로 구성되었습니다. |
![]() |
세부적인 부분을 추가하면 피사체가 사실적으로 표현되어 강렬하고 생생한 장면을 만들 수 있습니다. |
눈표범
이 예는 Veo가 간단한 프롬프트에 대해 생성할 수 있는 출력을 보여줍니다.
프롬프트 | 생성된 출력 |
---|---|
눈표범 같은 털을 가진 귀여운 생물이 겨울 숲을 걷고 있는 3D 만화 스타일의 렌더링입니다. |
![]() |
달리는 눈표범
이 프롬프트는 보다 자세하며 동영상에서 원하는 내용에 더 근접하게 생성된 출력을 보여줍니다.
프롬프트 | 생성된 출력 |
---|---|
재미있는 만화 스타일의 짧은 3D 애니메이션 장면을 만듭니다. 눈표범 같은 털과 표정이 풍부한 커다란 눈, 친근하고 동글동글한 모습을 한 귀여운 동물이 기발한 겨울 숲을 즐겁게 뛰어다니고 있습니다. 이 장면에는 둥글고 눈 덮인 나무, 부드럽게 떨어지는 눈송이, 나뭇가지 사이로 들어오는 따뜻한 햇빛이 담겨 있어야 합니다. 생물의 통통 튀는 움직임과 환한 미소는 순수한 기쁨을 전달해야 합니다. 밝고 경쾌한 색상과 장난기 넘치는 애니메이션으로 낙관적이고 따뜻한 분위기를 연출하세요. |
![]() |
작성 요소별 예시
다음 예에서는 각 기본 요소별로 프롬프트를 미세 조정하는 방법을 보여줍니다.
제목
이 예시에서는 피사체 설명을 지정하는 방법을 보여줍니다.
피사체 설명 | 프롬프트 | 생성된 출력 |
---|---|---|
설명에는 주제 또는 여러 주제와 작업이 포함될 수 있습니다. 여기서 주제는 '흰색 콘크리트 아파트 건물'입니다. | 유기적인 흐름을 보여주는 흰색 콘크리트 아파트 건물의 건축 렌더링으로, 울창한 녹지와 미래지향적인 요소가 자연스럽게 조화를 이루고 있습니다. |
![]() |
컨텍스트
이 예시에서는 컨텍스트를 지정하는 방법을 보여줍니다.
컨텍스트 | 프롬프트 | 생성된 출력 |
---|---|---|
피사체가 배치될 배경 또는 맥락이 매우 중요합니다. 붐비는 거리나 우주 공간과 같은 다양한 배경에 피사체를 배치해 보세요. | 달과 별을 배경으로 우주 공간을 떠다니는 위성입니다. |
![]() |
액션
이 예시에서는 액션을 지정하는 방법을 보여줍니다.
액션 | 프롬프트 | 생성된 출력 |
---|---|---|
피사체가 하는 행동입니다(예: 걷기, 달리기, 머리 돌리기). | 일몰 무렵 해변을 따라 걸으며 만족스러운 표정으로 지평선을 바라보는 여성의 와이드 샷 |
![]() |
스타일
이 예시에서는 스타일을 지정하는 방법을 보여줍니다.
스타일 | 프롬프트 | 생성된 출력 |
---|---|---|
키워드를 추가하여 생성 품질을 개선하고 의도한 스타일(예: 얕은 피사계 심도, 영화 스틸컷, 미니멀리즘, 초현실주의, 빈티지, 미래지향적, 이중 노출)에 더 가까워지도록 유도할 수 있습니다. | 필름 느와르 스타일, 남녀가 거리를 걷는 모습, 미스터리, 시네마틱, 흑백 |
![]() |
카메라 모션
이 예시에서는 카메라 모션을 지정하는 방법을 보여줍니다.
카메라 모션 | 프롬프트 | 생성된 출력 |
---|---|---|
카메라 모션 옵션에는 POV 샷, 공중 촬영, 추적 드론 뷰 또는 추적 샷이 있습니다. | 캐나다의 밤, 빗속을 달리는 빈티지 자동차에서 시점으로 촬영한 시네마틱 영상입니다. |
![]() |
구도
이 예시에서는 구도를 지정하는 방법을 보여줍니다.
구도 | 프롬프트 | 생성된 출력 |
---|---|---|
촬영 구도 (와이드 샷, 클로즈업, 로우 앵글) | 도시가 비친 눈을 극단적으로 클로즈업합니다. |
![]() |
서핑보드를 타고 해변을 걷는 서퍼의 와이드 샷, 아름다운 일몰, 시네마틱한 영상을 만들어 보세요. |
![]() |
분위기
이 예시에서는 분위기를 지정하는 방법을 보여줍니다.
분위기 | 프롬프트 | 생성된 출력 |
---|---|---|
색상 팔레트는 분위기에 영향을 미치고 의도한 감정을 전달하는 등 사진에서 중요한 역할을 합니다. '부드러운 주황색의 따뜻한 색조', '자연광', '일출' 또는 '일몰'과 같은 표현을 사용해 보세요. 예를 들어 따뜻한 금색 팔레트를 사용하면 로맨틱하고 분위기 있는 느낌을 사진에 담을 수 있습니다. | 공원에서 귀여운 골든 리트리버 강아지를 안고 있는 소녀의 클로즈업. 햇빛이 비치고 있습니다. |
![]() |
비가 내리는 날 버스를 타고 있는 슬픈 여자의 시네마틱 클로즈업 샷, 차가운 파란색 색조, 슬픈 분위기 |
![]() |
참조 이미지를 사용하여 동영상 생성
Veo의 이미지-동영상 기능을 사용하면 이미지에 생기를 불어넣을 수 있습니다. 기존 확장 소재를 사용하거나 Imagen을 사용하여 새로운 확장 소재를 생성할 수 있습니다.
프롬프트 | 생성된 출력 |
---|---|
초콜릿 캔디바를 들고 있는 토끼 |
![]() |
토끼가 도망갑니다. |
![]() |
부정적인 프롬프트
제외 프롬프트는 동영상에 포함하고 싶지 않은 요소를 지정하는 데 도움이 되는 강력한 도구가 될 수 있습니다. '부정 프롬프트' 문구 뒤에 모델이 생성하지 않도록 하려는 항목을 설명합니다. 다음 팁을 따르세요.
❌ 지시적인 언어나 아니요 또는 하지 마세요와 같은 단어를 사용하지 않습니다. 예를 들어 '벽 없음' 또는 '벽 표시 안함'과 같은 문구를 사용하지 않습니다.
✅ 보고 싶지 않은 항목을 설명하세요. 예를 들어 '벽, 프레임'은 동영상에 벽이나 프레임이 표시되지 않도록 하라는 의미입니다.
프롬프트 | 생성된 출력 |
---|---|
강한 바람에 나뭇잎이 격렬하게 휘날리는 크고 고독한 참나무의 스타일리시한 짧은 애니메이션을 생성합니다. 나무는 역동적이고 흐르는 가지가 있는 약간 과장되고 기발한 형태여야 합니다. 잎은 바람에 흩날리며 춤추는 다양한 가을 색상을 보여줘야 합니다. 애니메이션은 따뜻하고 매력적인 색상 팔레트를 사용해야 합니다. |
![]() |
강한 바람에 나뭇잎이 격렬하게 휘날리는 크고 고독한 참나무의 스타일리시한 짧은 애니메이션을 생성합니다. 나무는 역동적이고 흐르는 가지가 있는 약간 과장되고 기발한 형태여야 합니다. 잎은 바람에 흩날리며 춤추는 다양한 가을 색상을 보여줘야 합니다. 애니메이션은 따뜻하고 매력적인 색상 팔레트를 사용해야 합니다.
부정적인 프롬프트 - 도시 배경, 인공 구조물, 어둡거나 폭풍이 치거나 위협적인 분위기 |
![]() |
가로세로 비율
Gemini Veo 동영상 생성은 다음 두 가지 가로세로 비율을 지원합니다.
가로세로 비율 | 설명 |
---|---|
와이드스크린 또는 16:9 | 텔레비전, 모니터, 휴대전화 화면 (가로 모드)에서 가장 일반적으로 사용되는 가로세로 비율입니다. 경치 좋은 풍경과 같이 배경을 더 많이 캡처하려면 이 모드를 사용하세요. |
세로 모드 또는 9:16 | 회전된 와이드스크린 이 가로세로 비율은 YouTube Shorts와 같은 짧은 형식 동영상 애플리케이션에서 인기가 있습니다. 건물, 나무, 폭포 또는 건물과 같이 수직 방향이 강한 인물 사진이나 긴 객체에 사용합니다. |
와이드스크린
이 메시지는 16:9의 와이드스크린 가로세로 비율의 예입니다.
프롬프트 | 생성된 출력 |
---|---|
1970년대 팜스프링스, 따뜻한 햇살, 긴 그림자 속에서 빨간색 오픈카를 운전하는 한 남자의 모습을 드론으로 추적하여 동영상을 제작하세요. |
![]() |
세로
이 프롬프트는 9:16의 세로 모드 가로세로 비율의 예입니다.
프롬프트 | 생성된 출력 |
---|---|
울창한 열대우림에 있는 장엄한 하와이 폭포의 부드러운 움직임을 강조하는 동영상을 만들어 보세요. 사실적인 물 흐름, 섬세한 나뭇잎, 자연광에 초점을 맞춰 평온함을 전달하세요. 급류, 안개가 자욱한 대기, 울창한 나무 사이로 비치는 햇빛을 담아보세요. 부드럽고 영화 같은 카메라 움직임을 사용하여 폭포와 주변 환경을 보여줍니다. 평화롭고 사실적인 색조를 지향하여 시청자를 하와이 열대우림의 고요한 아름다움으로 안내하세요. |
![]() |
다음 단계
- Veo Colab으로 AI 동영상을 생성하는 경험을 더 많이 쌓으세요.