동영상 업스케일링

Gemini Omni 1.2 Flash를 사용하면 Agent Platform API를 통해 동영상을 낮은 해상도(360p 또는 720p)에서 높은 해상도(720p, 1080p 또는 4K)로 업스케일링할 수 있습니다. 독립형 동영상 업스케일링을 사용하면 낮은 해상도에서 프롬프트를 반복하고 이전 차례 또는 Cloud Storage에 저장된 이전에 생성된 동영상에서 최종 선택된 동영상만 업스케일링할 수 있습니다.

다음 모델은 동영상 업스케일링을 지원합니다.

클릭하여 지원되는 모델 펼치기

지원되는 해상도 및 사양

독립형 동영상 업스케일링은 다음 해상도 전환 및 입력 제약 조건을 지원합니다.

  • 360p 입력 동영상: 720p 또는 1080p로 업스케일링합니다. 단일 요청으로 360p에서 4k로 직접 업스케일링하는 것은 지원되지 않습니다.
  • 720p 입력 동영상: 1080p 또는 4k로 업스케일합니다. 1080p에서 4k로의 업스케일링은 지원되지 않습니다.
  • 가로세로 비율: 16:9(가로 모드) 또는 9:16(세로 모드)
  • 프레임 속도: 초당 24프레임(출력 동영상에 유지됨)
  • 길이: 최대 15초
  • 토큰 사용량 및 가격 책정: 독립형 동영상 업스케일링은 텍스트 추론을 우회하며 항상 입력 토큰이 발생하지 않습니다(total_input_tokens: 0). 출력 동영상 토큰은 소스 및 타겟 해상도 쌍에 따라 다른 모든 Omni 1.2 Flash 작업과 동일한 출력 동영상 토큰 가격으로 청구됩니다(360p에서 720p 및 720p에서 1080p의 경우 초당 2,896 출력 동영상 토큰, 360p에서 1080p의 경우 초당 5,792 출력 동영상 토큰, 720p에서 4k의 경우 초당 11,584 출력 동영상 토큰).

요청 요구사항

독립형 동영상 업스케일링 요청을 보낼 때는 요청이 다음 요구사항을 충족하는지 확인하세요.

  • task: "upscale" 지정: generation_config.video_config.task를 "upscale"로 설정해야 합니다. task: "upscale"를 생략하면 API는 요청을 동영상 편집("edit") 작업으로 해석합니다.
  • 대상 resolution 지정: response_format에서 대상 resolution("720p", "1080p" 또는 "4k")을 지정해야 합니다. 대상 resolution를 생략하면 오류가 반환됩니다.
  • 동영상 소스 제공: input("type": "video")에 입력 동영상을 제공하거나 previous_interaction_id를 설정하여 바로 이전의 스테이트풀(Stateful) 차례에서 생성된 동영상을 업스케일링합니다. 멀티턴 상호작용에서는 업스케일할 동영상을 찾을 때 바로 이전 차례만 고려됩니다.
  • 선택적 매개변수: 재현 가능한 출력을 위해 generation_config.seed를 지정하고 커스텀 메타데이터 라벨(labels)을 연결하여 요청을 구성하고 청구 비용을 추적할 수 있습니다.

Colab에서 Gemini Omni 사용해 보기

시작하기 전에

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  3. 환경에 대한 인증을 설정하세요.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Cloud de Confiance 콘솔을 사용하여 Cloud de Confiance by S3NS 서비스 및 API에 액세스하는 경우 인증을 설정할 필요가 없습니다.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다.

    자세한 내용은 Cloud de Confiance 인증 문서의 REST 사용을 위한 인증을 참조하세요.

Omni 1.2 Flash를 사용하여 동영상 업스케일링

Omni 1.2 Flash를 사용하여 동영상을 업스케일링하려면 다음 상호작용 모드 중 하나를 선택합니다.

REST

동영상 업스케일링을 완료하는 데 1분 이상 걸릴 수 있습니다. 워크플로에 따라 여러 상호작용 모드 중에서 선택할 수 있습니다.

  • 동기식: 스테이트리스(업로드된 동영상): 서버에서 상호작용 상태를 유지하지 않고 단일 요청으로 Cloud Storage에서 360p 또는 720p 동영상을 업스케일링하려면 store를 false로 설정합니다.
  • 동기식: 스테이트풀(이전 차례): 직전 스테이트풀(Stateful) 차례의 previous_interaction_id를 참조하여 이전에 생성된 360p 또는 720p 동영상을 업스케일링합니다.
  • 동기: 스테이트풀(Stateful) 스트리밍: store 및 stream를 모두 true로 설정하여 상호작용 상태 업데이트 및 출력 동영상을 스트리밍합니다.
  • 비동기: background를 true로 설정하여 백그라운드에서 동영상 업스케일링을 실행하고 나중에 상호작용 ID를 사용하여 결과를 가져옵니다.

저장된 상호작용과 비동기 상호작용은 최대 7일 동안 보관됩니다.

Interactions API와 함께 Gemini Omni 모델을 사용하는 방법에 대한 자세한 내용은 Interactions API를 참조하세요.

동기식: 스테이트리스(Stateless)

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID를 나타내는 문자열
  • MODEL_ID: 사용할 모델 ID를 나타내는 문자열입니다. 허용되는 값은 다음과 같습니다.
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: 입력 동영상(360p 또는 720p, 최대 15초)이 포함된 Cloud Storage URI를 나타내는 문자열입니다. 예를 들면 "gs://video-bucket/input/video.mp4"입니다.
  • VIDEO_MIME: 동영상 MIME 유형을 나타내는 문자열입니다. 허용되는 값은 다음과 같습니다.
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: (선택사항) 업스케일링된 동영상을 저장할 Cloud Storage 버킷을 나타내는 문자열입니다. 제공하지 않으면 응답으로 동영상 바이트가 반환됩니다. 예를 들면 "gs://video-bucket/output/"입니다.
  • OUTPUT_RESOLUTION: (필수) 타겟 출력 해상도를 나타내는 문자열입니다. 지원되는 값은 입력 동영상 해상도에 따라 다릅니다.
    • 360p 입력 동영상: "720p" 또는 "1080p"
    • 720p 입력 동영상: "1080p" 또는 "4k"

HTTP 메서드 및 URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

JSON 요청 본문:

{
  "model": "MODEL_ID",
  "store": false,
  "input": [
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
응답에는 업스케일링된 출력 동영상과 상호작용이 포함되며 입력 토큰은 없습니다.
{
  "id": "INTERACTION_ID",
  "model": "gemini-omni-1.2-flash",
  "status": "completed",
  "usage": {
    "total_tokens": 28960,
    "total_input_tokens": 0,
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28960
      }
    ],
    "total_output_tokens": 28960
  },
  "steps": [
    { 
      "type": "model_output",
      "content": [
        {
          "type": "video",
          "uri": "gs://some/output_path/123.mp4",
          "mime_type": "video/mp4" 
        }
      ]
    }
  ],
  "object": "interaction",
  "role": "model",
  "created": "2026-11-05T02:17:56Z",
  "updated": "2026-11-05T02:17:56Z"
}

동기식: 스테이트풀(Stateful)

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID를 나타내는 문자열
  • MODEL_ID: 사용할 모델 ID를 나타내는 문자열입니다. 허용되는 값은 다음과 같습니다.
    • "gemini-omni-1.2-flash"
  • PREVIOUS_INTERACTION_ID: 360p 또는 720p 동영상(최대 15초)을 생성한 직전 스테이트풀(Stateful) 대화의 상호작용 ID입니다.
  • CLOUD_STORAGE_OUTPUT_URI: (선택사항) 업스케일링된 동영상을 저장할 Cloud Storage 버킷을 나타내는 문자열입니다. 제공하지 않으면 응답으로 동영상 바이트가 반환됩니다. 예를 들면 "gs://video-bucket/output/"입니다.
  • OUTPUT_RESOLUTION: (필수) 타겟 출력 해상도를 나타내는 문자열입니다. 지원되는 값은 이전 차례의 동영상 해상도에 따라 다릅니다.
    • 360p 동영상: "720p" 또는 "1080p"
    • 720p 동영상: "1080p" 또는 "4k"

HTTP 메서드 및 URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

JSON 요청 본문:

{
  "model": "MODEL_ID",
  "previous_interaction_id": "PREVIOUS_INTERACTION_ID",
  "background": false,
  "store": true,
  "stream": false,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "Upsample video."
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
응답에는 업스케일링된 출력 동영상과 상호작용이 포함되며 입력 토큰은 없습니다.
{
  "id": "INTERACTION_ID",
  "previous_interaction_id": "PREVIOUS_INTERACTION_ID",
  "model": "gemini-omni-1.2-flash",
  "status": "completed",
  "usage": {
    "total_tokens": 28960,
    "total_input_tokens": 0,
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28960
      }
    ],
    "total_output_tokens": 28960
  },
  "steps": [
    { 
      "type": "model_output",
      "content": [
        {
          "type": "video",
          "uri": "gs://some/output_path/123.mp4",
          "mime_type": "video/mp4" 
        }
      ]
    }
  ],
  "object": "interaction",
  "role": "model",
  "created": "2026-11-05T02:17:56Z",
  "updated": "2026-11-05T02:17:56Z"
}
INTERACTION_ID를 사용하여 업스케일된 동영상을 가져옵니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID를 나타내는 문자열
  • INTERACTION_ID: 비동기 요청의 상호작용 ID입니다.

HTTP 메서드 및 URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

다음 명령어를 실행합니다.

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
응답은 다음과 유사한 형식입니다.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-1.2-flash",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ]
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z"
}

동기식: 스테이트풀(Stateful) 스트리밍

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID를 나타내는 문자열
  • MODEL_ID: 사용할 모델 ID를 나타내는 문자열입니다. 허용되는 값은 다음과 같습니다.
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: 입력 동영상(360p 또는 720p, 최대 15초)이 포함된 Cloud Storage URI를 나타내는 문자열입니다. 예를 들면 "gs://video-bucket/input/video.mp4"입니다.
  • VIDEO_MIME: 동영상 MIME 유형을 나타내는 문자열입니다. 허용되는 값은 다음과 같습니다.
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: (선택사항) 업스케일링된 동영상을 저장할 Cloud Storage 버킷을 나타내는 문자열입니다. 제공하지 않으면 응답으로 동영상 바이트가 반환됩니다. 예를 들면 "gs://video-bucket/output/"입니다.
  • OUTPUT_RESOLUTION: (필수) 타겟 출력 해상도를 나타내는 문자열입니다. 지원되는 값은 입력 동영상 해상도에 따라 다릅니다.
    • 360p 입력 동영상: "720p" 또는 "1080p"
    • 720p 입력 동영상: "1080p" 또는 "4k"

HTTP 메서드 및 URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

JSON 요청 본문:

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": true,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
응답은 업스케일링된 출력 동영상이 포함된 서버 전송 이벤트(SSE) 스트림입니다.
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-1.2-flash"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":28960,"total_input_tokens":0,"total_output_tokens":28960,"output_tokens_by_modality":[{"modality":"video","tokens":28960}]},"created":"2026-11-05T21:26:20Z","updated":"2026-11-05T21:26:20Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-1.2-flash"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]
`?stream=true` 와 함께 INTERACTION_ID를 사용하여 저장된 상호작용과 업스케일링된 동영상을 스트리밍합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID를 나타내는 문자열
  • INTERACTION_ID: 요청의 상호작용 ID입니다.

HTTP 메서드 및 URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true"

PowerShell

다음 명령어를 실행합니다.

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true" | Select-Object -Expand Content
응답은 다음과 유사한 형식의 서버 전송 이벤트 (SSE) 스트림입니다.
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-1.2-flash"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17664,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":267},"created":"2026-08-12T21:33:08Z","updated":"2026-08-12T21:33:08Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-1.2-flash"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]

비동기식

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID를 나타내는 문자열
  • MODEL_ID: 사용할 모델 ID를 나타내는 문자열입니다. 허용되는 값은 다음과 같습니다.
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: 입력 동영상(360p 또는 720p, 최대 15초)이 포함된 Cloud Storage URI를 나타내는 문자열입니다. 예를 들면 "gs://video-bucket/input/video.mp4"입니다.
  • VIDEO_MIME: 동영상 MIME 유형을 나타내는 문자열입니다. 허용되는 값은 다음과 같습니다.
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: (선택사항) 업스케일링된 동영상을 저장할 Cloud Storage 버킷을 나타내는 문자열입니다. 제공하지 않으면 응답으로 동영상 바이트가 반환됩니다. 예를 들면 "gs://video-bucket/output/"입니다.
  • OUTPUT_RESOLUTION: (필수) 타겟 출력 해상도를 나타내는 문자열입니다. 지원되는 값은 입력 동영상 해상도에 따라 다릅니다.
    • 360p 입력 동영상: "720p" 또는 "1080p"
    • 720p 입력 동영상: "1080p" 또는 "4k"

HTTP 메서드 및 URL:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

JSON 요청 본문:

{
  "model": "MODEL_ID",
  "background": true,
  "input": [
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
응답에는 업스케일링된 동영상을 검색하는 데 사용하는 상호작용 ID가 포함됩니다.
{
  "id": "INTERACTION_ID",
  "status": "in_progress",
  "object": "interaction"
}
나중에 INTERACTION_ID를 사용하여 업스케일된 동영상을 가져옵니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID를 나타내는 문자열
  • INTERACTION_ID: 비동기 요청의 상호작용 ID입니다.

HTTP 메서드 및 URL:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

다음 명령어를 실행합니다.

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
응답은 다음과 유사한 형식입니다.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-1.2-flash",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ]
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z"
}

다음 단계