제미니 옴니 1.1 플래시는 10초짜리 클립을 생성합니다. 장면 확장 기능을 통해 이 한계를 넘어설 수 있습니다. 각 확장 호출은 10초를 추가하여 최대 40초까지 누적됩니다.
이 메커니즘은 미리 보기 모델에도 있었지만, 그다지 유용하지 않았습니다. 미리 보기 모델은 계속 진행하기 전에 영상의 마지막 1초를 확인했는데, 이는 색상을 대략적으로 일관성 있게 유지할 정도의 컨텍스트였을 뿐입니다. 캐릭터의 옷이 바뀌고 카메라 움직임이 초기화되었습니다. 2026년 8월 27일 GA 출시는 이 컨텍스트 창을 이전 10초로 확장했으며, Google은 이 변경으로 “시각적 일관성과 서사적 연속성 향상”을 이뤘다고 평가합니다.
이 가이드는 호출 방법, 실제 제한 사항, 그리고 40초짜리 시퀀스가 세 번째 세그먼트에서 무너지지 않도록 유지하는 방법을 다룹니다.
기본 확장 호출
확장은 파일 API를 통해 작동합니다. 클립을 업로드하고, 다음에 일어날 일을 설명하는 프롬프트와 함께 URI를 전달하세요.
import base64
from google import genai
client = genai.Client()
video_file = client.files.upload(file="my_video.mp4")
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "document", "uri": video_file.uri},
{"type": "text", "text": "Continue the scene."},
],
)
with open("extended.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
업로드는 비동기적으로 처리되므로, 상호작용을 보내기 전에 파일 상태를 폴링하세요.
import time
while video_file.state == "PROCESSING":
time.sleep(10)
video_file = client.files.get(name=video_file.name)
if video_file.state == "FAILED":
raise ValueError(video_file.state)
확장하려는 비디오가 동일한 세션에서 Omni에서 생성된 것이라면, 업로드를 완전히 건너뛰고 상호작용 ID를 연결하세요. 이 방법은 토큰 비용이 저렴하고 더 많은 상태를 유지합니다.
res2 = client.interactions.create(
model="gemini-omni-1.1-flash",
previous_interaction_id=res1.id,
input="The camera pulls back to reveal the whole street.",
)
API 워크스루는 해상도 및 전달 옵션을 포함한 나머지 요청 표면을 다룹니다.
확장에 캐릭터 추가하기
확장 기능에 참조 미디어를 첨부하고 프롬프트에서 이를 참조할 수 있습니다. 업로드된 참조 파일은 `<IMAGE_REF_0>`, `<IMAGE_REF_1>` 등으로 주소 지정할 수 있는 슬롯을 얻습니다.
video_file = client.files.upload(file="my_video.mp4")
character_img = client.files.upload(file="character.png")
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "document", "uri": video_file.uri},
{"type": "document", "uri": character_img.uri},
{"type": "text", "text": "Extend this video: have the character shown in <IMAGE_REF_0> enter the scene and wave."},
],
)
비디오 참조도 작동하며, 각각 3초짜리 클립 3개로 제한됩니다. 모델은 움직임과 외형을 읽으며, 참조 클립의 오디오는 무시됩니다.
시퀀스 계획 전에 알아야 할 제한 사항
40초가 최대입니다. 총 네 개의 세그먼트(하나의 생성과 세 개의 확장)로 구성됩니다. 단일 시퀀스 내에서 그 이상으로 진행할 방법은 없습니다.
추가만 가능합니다. 확장은 클립의 끝에 추가됩니다. 영상 앞에 붙이거나 중간에 삽입할 수는 없습니다. 두 번째 세그먼트가 잘못되었다면, 두 번째 세그먼트부터 다시 생성해야 하며, 그 이후의 모든 내용도 함께 변경됩니다.
업로드 입력은 10초로 제한됩니다. 이는 사용자가 업로드하는 비디오의 제한 사항입니다. `previous_interaction_id`를 통한 다중 턴 체인은 모델이 이전 상태를 이미 가지고 있기 때문에 이 제한에 묶이지 않습니다.
확장된 업로드에는 대화가 없습니다. 다른 사람이 업로드한 클립을 소리 없이 확장하거나 다중 턴 상호작용에서 작업할 수는 있지만, 업로드된 클립을 확장할 때 대화를 추가할 수는 없습니다.
지역 제한. 유럽 경제 지역(EEA), 스위스, 영국에서는 비디오 업로드 및 편집을 사용할 수 없습니다. 해당 지역에서는 모델이 생성한 비디오는 계속 편집할 수 있으므로, 업로드 경로는 작동하지 않지만 `previous_interaction_id` 경로는 여전히 작동합니다.
한 번에 하나의 비디오만. 모델은 여러 입력 비디오를 넘나들며 추론하지 않습니다.
렌더링하기 전에 전체 흐름 초안 작성하기
비용과 좌절감을 가장 많이 줄일 수 있는 워크플로우입니다.
720p 40초 시퀀스는 비디오 출력에 약 $4.06가 소요되며, 실패 모드는 특정합니다. 이야기가 세 번째 세그먼트에서 벗어나면 세 번째와 네 번째 세그먼트를 다시 생성해야 하며, 때로는 세 번째 세그먼트 초반에 마음에 들었던 부분이 변경될 수 있습니다. 만족할 만한 버전을 찾기 위해 여러 번의 전체 렌더링을 시도해야 할 수도 있습니다.
먼저 전체 흐름을 360p로 초안을 작성하세요. 비용은 3분의 1로 줄면서 최대 60% 더 빠르게 생성되므로, 동일한 네 개의 세그먼트가 약 $1.35에 실행됩니다. 이야기가 네 개의 확장 전체에 걸쳐 유지되는지 확인한 다음, 검증된 프롬프트로 720p 이상으로 다시 렌더링하세요. 가격 책정 문서에 자세한 계산법이 나와 있습니다.
응답 형식에서 해상도를 설정하세요.
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "document", "uri": video_file.uri},
{"type": "text", "text": "Continue the scene."},
],
response_format={"type": "video", "resolution": "360p"},
)
네 개의 세그먼트에서 살아남는 프롬프트 작성하기
다른 것보다 더 잘 유지되는 몇 가지 패턴입니다.
전체 장면이 아닌 변화를 설명하세요. 모델은 이미 이전 10초를 보고 있습니다. 설정을 다시 설명하면 이미 화면에 있는 내용을 재해석하게 됩니다. "카메라가 문으로 다가간다"가 방에 대한 새로운 문단보다 좋습니다.
세그먼트당 하나의 움직임을 부여하세요. 두 가지 동작을 요청하는 확장은 둘 다 서두른 버전으로 제공하는 경향이 있습니다. 10초는 하나의 동작입니다.
연속성 앵커를 명확하게 유지하세요. 항상 일정하게 유지되어야 할 것("같은 빨간색 재킷", "같은 낮은 앵글")을 명시하면 모델이 장면 전환에 걸쳐 유지할 수 있는 기준점을 갖게 됩니다.
추가만 가능한 제한과 싸우지 마세요. 시퀀스가 재생되는 순서대로 계획하세요. 나중에 시작 부분을 수정하면 그 이후의 모든 것을 다시 생성해야 합니다.
여기서는 프롬프트 작성 기술이 중요하며, Veo 프롬프트 가이드는 비디오 모델 간에 적용되는 원칙들을 다룹니다.
확장을 두 번 같은 방식으로 확인하기
네 번의 연결된 호출은 모델 동작의 변화가 나타날 수 있는 네 곳을 의미하며, 최종 렌더링만 볼 때는 비디오 출력에서 회귀를 육안으로 확인하기 어렵습니다.
각 단계를 Apidog에 자체 요청으로 저장하고, 파일 URI와 상호작용 ID를 환경 변수에 넣어 체인을 수동으로 재구성하지 않고도 특정 세그먼트를 다시 실행할 수 있습니다. 고해상도 확장은 파일 크기를 4MB 이상으로 만들고 인라인 base64에서 URI로 전환할 수 있으므로 응답 형태를 확인해야 합니다. 기본값보다 시간 제한을 충분히 늘리세요. 확장은 모델이 먼저 10초의 컨텍스트를 읽기 때문에 초기 생성보다 더 오래 걸립니다.
이 설정은 10분 정도 소요되며, 접합부 문제가 프롬프트 때문인지 모델 업데이트 때문인지 알아야 할 첫 번째 순간에 그 가치를 입증할 것입니다. 설정을 위해 Apidog를 다운로드하세요.
자주 묻는 질문
제미니 옴니 비디오는 얼마나 길 수 있나요? 10초 생성과 세 개의 10초 확장을 합쳐 누적 40초입니다.
제가 직접 촬영한 비디오를 확장할 수 있나요? 네, EEA, 스위스, 영국을 제외한 지역에서 최대 10초의 입력을 허용합니다. 파일 API를 통해 업로드하고 URI를 전달하세요.
클립 시작 부분에 추가할 수 있나요? 아니요. 확장은 끝에만 추가됩니다.
캐릭터가 세그먼트 사이에 외형이 바뀌는 이유는 무엇인가요? 일반적으로 프롬프트가 변화 대신 장면을 다시 설명하거나 연속성 앵커가 명확하지 않기 때문입니다. 동일하게 유지되어야 할 것을 명시하고, 확장에 캐릭터 이미지를 참조로 전달하는 것을 고려해 보세요.
각 확장마다 추가 비용이 드나요? 네. 각 확장은 자체 10초 분량의 비디오 출력 비용과 모델이 읽는 컨텍스트에 대한 입력 토큰 비용이 청구됩니다.
40초 이상이 필요하면 어떻게 해야 하나요? Veo 3.1은 한 번에 7초씩 최대 148초까지 확장할 수 있으며, 720p에서만 가능합니다. 모델 비교에서 이러한 장단점을 다루고 있으며, Veo의 API 가이드에 통합 세부 정보가 있습니다.
장면 확장은 Omni를 데모 단계에서 실제 사용 가능한 제품으로 전환시키는 기능이지만, 계획을 세워야 그 가치를 발휘합니다. 네 가지 핵심 요소를 스토리보드화하고, 전체 흐름을 360p로 초안을 작성하며, 각 프롬프트는 하나의 움직임으로 제한하고, 이미 작동하는 것으로 확인된 버전에만 720p 비용을 지불하세요.
