Gemini Omni 1.2 Flash로 영상 연장하는 방법

Omni 1.2 확장 한 번에 3~10초가 추가되지만, 플랫폼마다 제한이 다르고 무리하게 이어 붙이면 오프닝 장면을 잃을 수 있습니다. 요청 방법, 계산 과정, 비용까지 지금부터 살펴보겠습니다.

Medy Evrard

6 November 2026

Gemini Omni 1.2 Flash로 영상 연장하는 방법

Apidog 엔터프라이즈

온프레미스 배포

SSO & RBAC

SOC 2 준수

Apidog Enterprise 살펴보기

핵심 답변: Gemini Omni 1.2 Flash로 동영상을 연장하려면 클립과 짧은 연장 프롬프트를 Interactions API로 전송하세요. 한 턴마다 3~10초가 추가되며 더 긴 클립이 반환됩니다. Gemini API는 총 30초까지만 지원합니다. Google Cloud의 Agent Platform은 40초까지 가능하지만, 도입부가 잘리지 않도록 각 단계를 계획했을 때만 그렇습니다.

프롬프트 작성 팁이 필요하다면 Omni 1.1 장면 연장 가이드를 참고하세요. 이 가이드에서는 새로워진 내용을 다룹니다. 요청 형식, 체이닝 계산법, 40초 클립의 비용까지 살펴봅니다.

Gemini Omni 1.2 Flash 동영상 연장의 작동 방식

동영상 연장은 클립 끝에 이어지는 구간을 생성합니다. 모델은 입력의 마지막 최대 10초를 컨텍스트로 읽어들이고, 3~10초 분량의 새로운 영상을 만들어 클립에 이어 붙입니다. 추가만 가능할 뿐, 앞에 영상을 붙이거나 중간 구간을 연장할 수는 없습니다.

Google은 모델을 호출하는 위치에 따라 서로 다른 제한을 문서화하고 있습니다:

Gemini API Agent Platform (Google Cloud)
인증 API 키 프로젝트 및 액세스 토큰
전체 길이 30초 40초
입력 길이 별도 제한 명시 없음 모든 길이 허용
참조 이미지 Omni에서 최대 6개 연장당 최대 2개
연장 모드 프롬프트 우선, task는 대체 수단 모든 샘플에서 task: "extend" 사용
시드 및 레이블 Omni 문서에 없음 generation_config.seed, labels
결과 보관 유료 등급에서 55일 최대 7일

출처: Gemini API Omni 문서 및 Agent Platform 연장 문서.

Agent Platform에서는 모델이 마지막 최대 10초를 읽은 뒤, 입력의 마지막 최대 30초에 새 세그먼트를 이어 붙입니다. Google의 예시에서는 60초 입력을 10초 연장해 40초를 반환하므로, 처음 30초는 사라집니다.

Timeline showing a 60-second input clip where the first 30 seconds are dropped, the last 30 seconds are kept, the model reads the final 10 seconds, and the 40-second output is the kept 30 seconds plus 10 new seconds.

출력에 이전 영상이 그대로 포함되므로 직접 이어 붙일 필요는 없습니다. 다만 Google이 전환을 자연스럽게 만들기 위해 입력의 마지막 몇 프레임을 편집합니다.

1.2에서 달라진 연장 기능

Gemini API에서 동영상 단계별로 연장하기

  1. 클립을 생성하거나 Files API를 통해 업로드하세요. 업로드된 파일은 48시간 후 삭제됩니다.
  2. 다음에 일어날 일만 설명하세요.
  3. duration을 "3s"에서 "10s" 사이로 설정하세요(기본값 10).
  4. 다음 턴을 위해 interaction ID를 저장하세요.
from google import genai

client = genai.Client()

first = client.interactions.create(
    model="gemini-omni-1.2-flash",
    input="A courier in a yellow jacket cycles through a rainy night market.",
    response_format={"type": "video", "duration": "15s"},
)

second = client.interactions.create(
    model="gemini-omni-1.2-flash",
    previous_interaction_id=first.id,
    input="The courier brakes at a red door. Keep the same yellow jacket.",
    response_format={"type": "video", "duration": "10s", "delivery": "uri"},
)

직접 촬영한 영상을 연장하려면 previous_interaction_id 대신 {"type": "video", "uri": video_file.uri} 형태의 입력 배열과 텍스트 항목을 사용하세요.

업로드 방식에는 두 가지 제한이 더 있습니다. 사람이 말하는 장면에 대화를 추가할 수 없고, EEA(유럽경제지역), 스위스, 영국에서는 연장할 수 없습니다. 생성된 동영상의 멀티턴 연장은 이 두 가지 제한을 모두 피할 수 있습니다.

Agent Platform 요청 처리 과정 살펴보기

40초 영상이나 작업 큐가 필요하다면 이 방식을 사용하세요. 생성에는 1분 이상 걸릴 수 있으므로, background를 켠 상태로 아래 본문을 https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions로 POST하세요:

{
  "model": "gemini-omni-1.2-flash",
  "background": true,
  "input": [
    { "type": "text", "text": "The courier opens the red door and steps inside." },
    { "type": "video", "uri": "gs://my-bucket/hop-1.mp4", "mime_type": "video/mp4" }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "gs://my-bucket/out/",
      "aspect_ratio": "16:9",
      "duration": "5s"
    }
  ],
  "generation_config": {
    "seed": 4242,
    "video_config": { "task": "extend" }
  },
  "labels": { "campaign": "courier", "hop": "2" }
}

호출 결과로 상태가 in_progress인 interaction ID가 반환됩니다. GET .../locations/global/interactions/INTERACTION_ID로 폴링하세요. 완료되면 steps의 model_output 단계에서 gs:// URI를 읽어들이면 됩니다. 이 URI가 다음 홉의 입력이 됩니다.

스테이트리스(store: false), 스테이트풀(store: true), 스트리밍 모드도 존재합니다. 저장된 결과와 비동기 결과는 최대 7일간 유지되므로 필요한 것은 미리 복사해 두세요.

[VERIFY] 미실행: 사용 가능한 Google Cloud 프로젝트가 없었습니다. Google의 샘플 본문에는 seed와 labels가 모두 표시되어 있지 않으므로, 해당 필드의 위치를 직접 확인하세요.

40초 한도까지 체이닝하기

입력이 30초 이하일 때만 홉이 영상 전체를 유지합니다. 아무것도 잃지 않고 40초에 도달하려면 먼저 정확히 30초에 도달해야 합니다.

홉 계획된 duration 계획된 출력 단순 방식 duration 단순 방식 출력
시작 15초 15초 15초 15초
1 10초 25초 10초 25초
2 5초 30초 10초 35초
3 10초 40초 10초 40초, 처음 5초 손실
Two chaining plans compared: the planned chain of 15 seconds plus 10, 5 and 10 reaches 40 seconds with nothing lost, while the naive chain of 15 seconds plus three 10-second hops reaches 40 seconds but drops the first 5 seconds.

단순 방식은 5초를 더 얻는 대신 도입부를 버리게 됩니다. 클립 길이만 봐서는 문제를 알 수 없습니다. 두 방식 모두 40초를 반환하기 때문입니다.

15초 시작은 40초 목표에서 호출 횟수를 줄여주지 못합니다. 10초로 시작해도 연장은 세 번 필요합니다. 다른 목표에서는 유용합니다. 25초는 두 번 대신 한 번, 35초는 세 번 대신 두 번의 연장으로 끝나기 때문입니다.

Gemini API에서는 홉 2까지 진행한 뒤 중단하세요. 30초를 넘는 요청에 어떤 일이 일어나는지 Google은 설명하지 않습니다.

참조 이미지와 시드로 캐릭터 일관성 유지하기

마지막 10초 이전에 화면에서 사라진 캐릭터는 그 프레임이 클립에 남아 있어도 모델에게 보이지 않습니다. Google의 해결책은 캐릭터를 다시 언급하거나, 동일한 input 배열에서 참조 이미지를 함께 전달하는 것입니다:

{ "type": "image", "uri": "gs://my-bucket/courier.png", "mime_type": "image/png" },
{ "type": "text", "text": "The courier from the reference image walks back into frame." }

재현 가능한 결과를 얻으려면 generation_config.seed를 설정하세요. 디버깅할 때 가장 유용합니다. 동일한 시드로 홉을 다시 실행하면 변화가 프롬프트에서 비롯된 것인지 확인할 수 있습니다. 다만 Google은 시드가 서로 다른 프롬프트에서도 캐릭터를 유지해준다고 보장하지 않으므로, 캐릭터 일관성은 참조 이미지에 의존하세요. 홉별 과금 추적에는 labels를 사용하세요.

40초 클립 비용은 얼마인가

Google의 가격 페이지는 Omni 1.2 동영상 출력을 백만 토큰당 $12.00로 청구합니다. 연장 시 새로 생성된 초만 청구되는지, 반환된 모든 초가 청구되는지는 명시되어 있지 않습니다. 계획된 체인은 40초를 생성하지만 15, 25, 30, 40초를 반환하므로 총 110초가 됩니다.

해상도 초당 새로 생성된 초만 청구될 경우 반환된 모든 초가 청구될 경우
360p $0.023 $0.93 $2.55
720p 약 $0.07 $2.78 $7.65
1080p (업샘플링) $0.104 $4.17 $11.47
4K (업샘플링) $0.209 $8.34 $22.94

이는 Google의 초당 토큰 수를 기준으로 계산한 Gemini API 요금입니다. 여기에 입력 토큰(백만 토큰당 $1.50)과 추론(thinking) 토큰(백만 토큰당 $9.00) 비용이 추가됩니다.

직접 확인해 보기 전까지는 오른쪽 열 기준으로 예산을 잡으세요. 비용을 낮추려면:

gemini-omni-1.1-flash 요청은 2026년 12월 3일부터 1.2로 라우팅되며 1.2 요금이 청구됩니다.

Apidog CLI로 코딩 에이전트에게 비동기 플로우 테스트 맡기기

비동기 체인은 조용히 실패합니다. 끝나지 않는 폴링, failed로 종료되는 실행, 갑자기 달라지는 응답 구조가 그 예입니다. 코딩 에이전트가 Apidog CLI로 이런 테스트를 만들고 대신 실행하도록 하세요.

npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install

그런 다음 Claude Code, Codex 또는 Cursor에 프롬프트 하나를 주세요:

In Apidog project <id>, create endpoints for POST and GET on the Omni
interactions URL. Build a test scenario named omni-extend-async: start a
3-second 360p extension with background set to true, save the interaction
ID, then loop with a 10-second delay on GET until status leaves in_progress.
Assert status is completed and a model_output step holds a video/mp4 item
with a uri or data. Run it and summarize any failures.

에이전트는 페이로드를 검증한 뒤 시나리오를 만들어 실행합니다:

apidog cli-schema get test-scenario-update
apidog test-scenario create --project <id> --name "omni-extend-async" --folder-id <folderId> --priority 1
apidog test-scenario import-steps <scenarioId> --project <id> --source endpoint --ids <postId>,<getId>
apidog cli-schema validate test-scenario-update --file scenario.json
apidog test-scenario update <scenarioId> --project <id> --file scenario.json
apidog run -t <scenarioId> --project <id> -e <envId> --timeout-request 300000 -r cli,junit --out-dir ./reports

실행할 때마다 실제 클립 비용이 청구되므로 커밋마다가 아니라 매일 밤 실행하세요. 새로 생성된 초만 청구된다면 3초 360p 홉의 비용은 약 $0.07입니다. 동일한 명령어는 Apidog CLI CI/CD 가이드에서 보여주듯 파이프라인에 바로 넣을 수 있으며, Claude Code 설정 가이드에서는 에이전트 측 설정을 다룹니다. Apidog Free는 최대 4명의 사용자까지 사용할 수 있습니다.

FAQ

Gemini Omni 1.2 Flash 동영상은 얼마나 길게 만들 수 있나요? 단일 생성은 3~15초입니다. 연장을 사용하면 Gemini API 문서 기준 총 30초, Agent Platform 문서 기준 40초까지 가능합니다.

연장한 동영상의 도입부가 사라졌습니다. 왜 그런가요? Agent Platform에서는 입력의 마지막 30초만 유지됩니다. 30초를 넘는 입력은 도입부를 잃습니다. 마지막 홉이 정확히 30초에서 시작하도록 홉을 계획하세요.

직접 촬영한 동영상도 연장할 수 있나요? 네, EEA(유럽경제지역), 스위스, 영국 외의 지역에서는 가능합니다. Files API로 업로드하거나 Agent Platform에서 Cloud Storage를 지정하세요. 다만 사람이 말하는 장면이 있는 업로드 클립에는 대화를 추가할 수 없습니다.

무료로 클립을 연장할 수 있나요? API를 통해서는 불가능합니다. Google은 Omni 1.2와 1.1의 무료 등급을 "사용 불가"로 표시하고 있어 테스트조차 비용이 청구됩니다. 가장 저렴하게 실행할 수 있는 것은 3초 360p 연장입니다.

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요