Vertex AI 기반 Veo를 사용하면 마스크와 이미지 객체를 제공한 다음 원하는 출력에 대한 설명이 포함된 프롬프트를 모델에 제공하여 동영상에 객체를 삽입할 수 있습니다.
다음 모델은 동영상에 객체 삽입을 지원합니다.
동영상 생성에 효과적인 텍스트 프롬프트 작성에 대한 자세한 내용은 Veo 프롬프트 가이드를 참조하세요.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
환경에 대한 인증을 설정하세요.
이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.
콘솔
Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스하는 경우 인증을 설정할 필요가 없습니다.
Python
로컬 개발 환경에서 이 페이지의 Python 샘플을 사용하려면 gcloud CLI를 설치하고 초기화한 후 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정합니다.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
로컬 셸을 사용하는 경우 사용자 계정에 대한 로컬 인증 사용자 인증 정보를 만듭니다.
gcloud auth application-default login
Cloud Shell을 사용하는 경우 이 작업을 수행할 필요는 없습니다.
인증 오류가 반환되고 외부 ID 공급업체(IdP)를 사용하는 경우 제휴 ID로 gcloud CLI에 로그인했는지 확인합니다.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경의 ADC 설정을 참고하세요.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.
Google Cloud CLI를 설치합니다.
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참조하세요.
-
동영상에 객체 삽입
콘솔
Google Cloud 콘솔에서 Vertex AI > Media Studio 페이지로 이동합니다.
동영상을 클릭합니다.
작업 메뉴에서 동영상 인페인트 (삽입)를 선택합니다.
모델 메뉴에서 표시된 옵션 중 하나를 선택합니다.
입력 동영상 섹션에서 추가를 클릭합니다.
프롬프트 상자에 생성할 동영상을 설명하는 텍스트 프롬프트를 입력합니다.
선택사항: 다음 파라미터를 조정합니다.
결과 수: 슬라이더를 조정하거나 1~4 사이의 값을 입력합니다.
출력 디렉터리: 찾아보기를 클릭하여 생성된 파일을 저장할 Cloud Storage 버킷을 만들거나 선택합니다.
실행을 클릭합니다.
Python
설치
pip install --upgrade google-genai
자세한 내용은 SDK 참고 문서를 참고하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
환경을 설정하면 REST를 사용하여 텍스트 프롬프트를 테스트할 수 있습니다. 다음 샘플은 요청을 게시자 모델 엔드포인트에 전송합니다.
Veo API에 대한 자세한 내용은 다음을 참고하세요.
- 메서드:
endpoints.predict VideoGenerationModelInstanceVideoGenerationModelParamsVideoGenerationModelResult
다음 명령어를 사용하여 동영상 생성 요청을 전송합니다. 이 요청은 장기 실행 작업을 시작하고 지정한 Cloud Storage 버킷에 출력을 저장합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트 ID-
TEXT_PROMPT: 동영상 생성을 안내하는 데 사용되는 텍스트 프롬프트 -
MASK_STORAGE_URI: 마스크 객체의 Cloud Storage 버킷 URI 경로 -
MASK_MIME_TYPE: 이미지 마스크의 MIME 유형. 다음 중 하나만 사용할 수 있습니다.image/pngimage/jpegimage/webp
-
VIDEO_INPUT_STORAGE_URI: Cloud Storage 버킷 URI 경로 동영상 입력 객체 -
VIDEO_MIME_TYPE: 동영상 객체의 MIME 유형. 다음 중 하나만 사용할 수 있습니다.video/movvideo/mpegvideo/mp4video/mpgvideo/avivideo/wmvvideo/mpegpsvideo/flv
-
OUTPUT_STORAGE_URI: (선택사항) 출력 동영상을 저장할 Cloud Storage 버킷. 제공되지 않으면 Base64 바이트로 인코딩된 동영상이 응답으로 반환됩니다. 예를 들면gs://video-bucket/output/입니다. -
RESPONSE_COUNT: 생성할 동영상 파일의 수. 허용되는 정수 값의 범위는 1~4입니다. -
추가 선택적 파라미터
사용 사례에 따라 다음 선택적 변수를 사용하세요.
"parameters": {}객체에 다음 파라미터 중 일부 또는 전부를 추가합니다."parameters": { "aspectRatio": "ASPECT_RATIO", "negativePrompt": "NEGATIVE_PROMPT", "personGeneration": "PERSON_SAFETY_SETTING", // "resolution": RESOLUTION, // Veo 3 models only "sampleCount": RESPONSE_COUNT, "seed": SEED_NUMBER }-
ASPECT_RATIO: (선택사항) 생성된 동영상의 가로세로 비율을 설명하는 문자열 값. 다음 값을 사용할 수 있습니다.- 가로 모드의 경우
"16:9" - 세로 모드의 경우
"9:16"
기본값은
"16:9"입니다. - 가로 모드의 경우
-
NEGATIVE_PROMPT: (선택사항) 모델이 생성하지 않도록 하려는 콘텐츠를 설명하는 문자열 값입니다. -
PERSON_SAFETY_SETTING: (선택사항) 사람 또는 얼굴 생성의 안전 설정을 제어하는 문자열 값입니다. 다음 값을 사용할 수 있습니다.-
"allow_adult": 성인 인물 및 얼굴만 생성합니다. -
"disallow": 사람이나 얼굴을 생성하지 않습니다.
기본값은
"allow_adult"입니다. -
-
RESOLUTION: (선택사항) 생성된 동영상의 해상도를 제어하는 문자열 값입니다. Veo 3 모델에서만 지원됩니다. 다음 값을 사용할 수 있습니다."720p""1080p""4k"(Veo 3.1 프리뷰 모델만 해당)
기본값은
"720p"입니다. -
RESPONSE_COUNT: (선택사항) 생성할 동영상 수를 설명하는 정수 값. 허용되는 값의 범위는1~4입니다. -
SEED_NUMBER: (선택사항) 모델이 결정론적 동영상을 생성하는 데 사용하는 uint32 값. 다른 파라미터를 변경하지 않고 요청에 시드 수를 지정하면 모델에서 동일한 동영상을 생성합니다. 허용되는 값의 범위는0~4294967295입니다.
-
HTTP 메서드 및 URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-preview:predictLongRunning
JSON 요청 본문:
{ "instances": [ { "prompt": "TEXT_PROMPT", // The following fields can be repeated for up to three total // images. "mask": { "gcsUri": "MASK_STORAGE_URI", "mimeType": "MASK_MIME_TYPE", "maskMode": "insert" }, "video": { "gcsUri": "VIDEO_INPUT_STORAGE_URI", "mimeType": "VIDEO_MIME_TYPE" } } ], "parameters": { "storageUri": "OUTPUT_STORAGE_URI", "sampleCount": RESPONSE_COUNT, } }요청을 보내려면 다음 옵션 중 하나를 선택합니다.
이 요청은 고유한 작업 ID가 포함된 전체 작업 이름을 반환합니다. 이 전체 작업 이름을 사용하여 동영상 생성 요청 상태를 폴링합니다.curl
요청 본문을
request.json파일에 저장하고 다음 명령어를 실행합니다.curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-preview:predictLongRunning"PowerShell
요청 본문을
request.json파일에 저장하고 다음 명령어를 실행합니다.$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-preview:predictLongRunning" | Select-Object -Expand Content{ "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8" }(선택사항) 동영상 생성 장기 실행 작업의 상태를 확인합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트 ID
- MODEL_ID: 사용할 모델 ID
- OPERATION_ID: 원래 동영상 생성 요청에 반환된 고유한 작업 ID
HTTP 메서드 및 URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation
JSON 요청 본문:
{ "operationName": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID" }요청을 보내려면 다음 옵션 중 하나를 선택합니다.
이 요청은 작업이 아직 실행 중인지 또는 완료되었는지를 비롯하여 작업에 관한 정보를 반환합니다.curl
요청 본문을
request.json파일에 저장하고 다음 명령어를 실행합니다.curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation"PowerShell
요청 본문을
request.json파일에 저장하고 다음 명령어를 실행합니다.$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation" | Select-Object -Expand Content