Gemini Omni 1.1 Flash API 사용법

Google Interactions API를 통해 gemini-omni-1.1-flash를 호출하세요. 키를 얻고, 첫 curl 및 Python 요청을 만들고, 4MB URI 전달을 처리하고, 해당 호출을 Apidog에 테스트로 저장하세요.

INEZA Felin-Michel

INEZA Felin-Michel

3 September 2026

Gemini Omni 1.1 Flash API 사용법

Apidog 엔터프라이즈

온프레미스 배포

SSO & RBAC

SOC 2 준수

Apidog Enterprise 살펴보기

Gemini Omni 1.1 Flash는 텍스트 모델에 사용하는 generateContent 엔드포인트가 아니라 Google의 Interactions API를 통해 gemini-omni-1.1-flash 모델 ID로 호출합니다. 이것이 사람들이 처음 혼동하는 부분입니다. Gemini 텍스트 스니펫을 복사하여 모델 이름을 바꾸면 404 오류가 발생합니다.

이 가이드는 빈 터미널에서 테스트된 동영상 생성 요청까지 진행하는 방법을 안내합니다. 키를 얻고, curl 및 Python에서 첫 호출을 하고, 존재하는 매개변수(및 놀랍게도 존재하지 않는 목록)를 배우고, 큰 응답을 처리하며, 이 모든 것을 반복 가능한 테스트로 저장하는 방법을 알게 될 것입니다.

이 모델은 2026년 8월 27일에 GA(정식 출시)되었습니다. 함께 출시된 기능에 대해서는 Gemini Omni 1.1 Flash의 새로운 기능을 참조하십시오.

시작하기 전에 필요한 것

키를 소스 코드에 붙여넣지 말고 환경 변수로 저장하십시오.

export GEMINI_API_KEY="your_key_here"

공식 SDK는 해당 변수를 자체적으로 읽으므로, 비밀 정보가 저장소에 노출되지 않습니다.

첫 번째 동영상 생성 호출

엔드포인트는 /v1beta/interactions에 대한 POST 요청입니다. curl에서의 예시는 다음과 같습니다.

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-omni-1.1-flash",
    "input": "A marble rolling fast on a chain reaction style track, continuous smooth shot."
  }'

모델과 입력, 두 가지 필드가 있습니다. 이것이 전체 최소 요청입니다. 응답은 생성된 동영상을 output_video.data에 base64로 담아 반환합니다.

Python에서는 pip install google-genai 명령어로 SDK를 설치한 후 다음을 따르십시오.

import base64
from google import genai

client = genai.Client()  # reads GEMINI_API_KEY from the environment

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input="A marble rolling fast on a chain reaction style track, continuous smooth shot.",
)

with open("marble.mp4", "wb") as f:
    f.write(base64.b64decode(interaction.output_video.data))

JavaScript는 `@google/genai`와 함께 동일한 형식을 따릅니다.

import { GoogleGenAI } from '@google/genai';
import * as fs from 'fs';

const ai = new GoogleGenAI({});

const interaction = await ai.interactions.create({
  model: 'gemini-omni-1.1-flash',
  input: 'A marble rolling fast on a chain reaction style track, continuous smooth shot.',
});

if (interaction.output_video?.data) {
  fs.writeFileSync('marble.mp4', Buffer.from(interaction.output_video.data, 'base64'));
}

생성에는 시간이 걸립니다. 지연 시간은 길이, 해상도, 현재 API 부하에 따라 달라지므로, 문제가 발생했다고 판단하기 전에 충분한 클라이언트 시간 초과를 설정하십시오.

해상도 및 종횡비 제어

출력 형식에 대한 모든 것은 response_format에 들어갑니다.

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input="A drone shot of a mountain landscape at sunrise.",
    response_format={
        "type": "video",
        "aspect_ratio": "16:9",
        "resolution": "1080p",
    },
)

허용되는 값:

필드 값 기본값
type video video
aspect_ratio 16:9, 9:16 16:9
resolution 360p, 720p, 1080p, 4k 720p
delivery 인라인 base64, uri 인라인

360p로 초안을 작성하십시오. 720p보다 최대 60% 더 빠르게 생성되고 비용도 1/3에 불과하므로, 15번의 테스트 프롬프트 시도가 예전 5번 시도와 같은 비용이 듭니다. 보관할 영상은 더 높은 해상도로 다시 렌더링하십시오. 1080p와 4k는 생성된 프레임의 업스케일이며, 기본 렌더링이 아닙니다. 가격 분석은 각 티어별 초당 실제 비용을 보여줍니다.

존재하지 않는 매개변수

이 목록은 위 목록보다 더 중요합니다. 그렇지 않으면 오후 시간을 낭비하게 될 것입니다.

샷에서 무언가를 제외해야 하는 경우, 해당 제외 내용을 프롬프트 자체에 작성하십시오. 문서의 예시가 정확히 다음과 같습니다: "움직임에 대한 가이드로만 그림을 사용하고, 최종 동영상에는 그림을 표시하지 마십시오."

이미지 입력, 키프레임 및 참조

미디어를 포함하려면 문자열 대신 목록을 전달하십시오. 이미지를 동영상으로:

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "image", "data": base64_image, "mime_type": "image/jpeg"},
        {"type": "text", "text": "turn this into realistic footage, using the drawing only as a guide for movement, do not show the drawing in the final video"},
    ],
)

두 이미지가 첫 프레임과 마지막 프레임이 되며, 모델이 그 사이의 움직임을 생성합니다.

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "image", "data": first_frame_b64, "mime_type": "image/jpeg"},
        {"type": "image", "data": last_frame_b64, "mime_type": "image/jpeg"},
        {"type": "text", "text": "A smooth cinematic transition from a lush green forest at sunrise to a snowy forest under a starry night sky."},
    ],
)

동영상 참조도 Files API를 통해 동일하게 작동하며, 각 3초 길이의 클립 3개로 제한됩니다. 해당 클립의 오디오는 무시됩니다. 모델은 움직임과 모양을 위해 클립을 읽습니다.

다중 턴 편집

이것이 Omni를 일반 텍스트-투-비디오 엔드포인트와 차별화하는 점입니다. 한 번 생성한 다음, 이전 상호작용 ID를 전달하여 대화식으로 편집하십시오.

res1 = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input="A woman playing violin outdoors.",
)

res2 = client.interactions.create(
    model="gemini-omni-1.1-flash",
    previous_interaction_id=res1.id,
    input="Make the violin invisible.",
)

재업로드할 필요도, 장면을 다시 설명할 필요도 없습니다. 동일한 메커니즘이 장면 확장을 가능하게 하며, 이는 40초 확장 가이드에서 다룹니다.

4MB 초과 동영상 처리

4MB보다 큰 파일은 인라인 base64 대신 URI로 반환되며, 파일을 다운로드하기 전에 처리가 완료되어야 합니다. 이것이 1080p에서 대부분의 사람들이 겪는 버그입니다: 핸들러가 output_video.data를 읽지만 아무것도 찾지 못하고 자동적으로 실패를 보고합니다.

명시적으로 URI 전달을 요청하고 폴링하십시오.

import time
from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input="A beautiful sunset.",
    response_format={"type": "video", "delivery": "uri"},
)

video_output = interaction.output_video
file_name = video_output.uri.split("/")[-1]

while True:
    f_info = client.files.get(name=f"files/{file_name}")
    if f_info.state.name == "ACTIVE":
        break
    if f_info.state.name == "FAILED":
        raise RuntimeError("Generation failed.")
    time.sleep(5)

video_bytes = client.files.download(file=video_output.uri)
with open("output.mp4", "wb") as f:
    f.write(video_bytes)

응답 핸들러를 처음부터 두 가지 형태를 모두 수락하도록 작성하십시오. 해상도에 따라 어떤 형태를 받게 될지 달라집니다.

Apidog에서 요청 테스트

호출이 작동하면 문제가 달라집니다. 이제 중요 경로에 비싸고 느리며 비결정적인 엔드포인트가 있고, 이것이 동작을 변경할 때를 알아야 합니다. 쉘 히스토리의 즉석 curl 명령어로는 알 수 없습니다.

Apidog에 한 번 설정하십시오.

  1. 프로젝트 및 환경 생성. GEMINI_API_KEY와 MODEL_ID를 환경 변수에 넣어 키가 저장된 요청에 절대 들어가지 않도록 하세요.
  2. 요청 추가. https://generativelanguage.googleapis.com/v1beta/interactions에 POST 요청을 보내고, model과 input이 포함된 JSON 본문을 사용하세요. {{MODEL_ID}}로 변수를 참조하세요.
  3. 시간 초과 늘리기. 동영상 생성은 텍스트 완성보다 훨씬 오래 걸리므로, 기본 클라이언트 시간 초과로 인해 중단될 수 있습니다.
  4. 어설션 추가. 상태 코드를 확인하고, output_video가 존재하는지 확인하며, 해상도에서 예상하는 응답 형태를 확인하세요. 이것은 인라인 대 URI 전환을 포착하는 어설션입니다.
  5. 각 작업 유형별로 복제. 텍스트-투-비디오, 이미지-투-비디오, 확장 각각에 대해 하나의 저장된 요청을 만드세요. Google이 Omni 1.2를 출시하면, 세 가지 요청을 실행하여 어떤 변경 사항이 있는지 몇 분 안에 알 수 있습니다.

Apidog는 동영상을 생성하지 않으며 AI 프레임워크도 아닙니다. Apidog는 요청을 만들고, 전송하며, 설정한 표준에 따라 응답을 유지하는 곳입니다. 비용을 늘리기 전에 이러한 제어 시스템을 갖추고 싶다면 Apidog를 다운로드하세요.

일반적인 오류 및 해결 방법

FAQ (자주 묻는 질문)

전체 통합은 두 개의 필수 필드와 두 가지 전달 형태를 모두 처리하는 응답 핸들러로 구성됩니다. 먼저 360p 호출을 작동시킨 다음, 어설션과 함께 저장하고, 시스템이 안정되었다고 판단되면 해상도를 높이십시오. 매개변수 목록이 변경될 수 있으므로 공식 Omni 문서를 참조하십시오.

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

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