CheaperGen
Google튜토리얼

Gemini Omni Flash API 사용법

Node.js, Python, cURL로 Gemini Omni Flash API를 단계별로 사용하는 튜토리얼입니다. 텍스트 → 동영상 작업을 제출하고 상태를 폴링하거나 웹훅을 받은 다음 video을 다운로드하세요. 아래 예제 비용은 $0.72입니다.

엔드포인트
3
텍스트 → 동영상 · 이미지 → 동영상 · 참조 → 동영상
요청 예시
$0.72
텍스트 → 동영상
언어
3
Node.js · Python · cURL
실패한 생성
$0
자동 환불
1

API 키 발급

계정을 만든 뒤 크레딧을 충전하고 Dashboard → API keys에서 키를 만드세요. 키를 CHEAPERGEN_API_KEY 서버에 보관하세요. 모든 요청에서 bearer token으로 전달합니다. 형식으로 저장하세요.

Gemini Omni Flash API 키 발급 방법
2

Gemini Omni Flash 엔드포인트 선택하기

각 작업에는 자체 엔드포인트가 있습니다. 모든 엔드포인트는 JSON 본문을 받고 폴링할 수 있는 생성 ID를 반환합니다.

이 프로그램은 작업을 제출하고 완료될 때까지 3초마다 폴링한 뒤 Gemini Omni Flash URL을 출력합니다. 프롬프트와 설정을 원하는 값으로 바꾸세요.
작업엔드포인트필수부터
텍스트 → 동영상google/gemini-omni-flash/text-to-videoprompt$0.089 초당
이미지 → 동영상google/gemini-omni-flash/image-to-videoprompt, image_url$0.089 초당
참조 → 동영상google/gemini-omni-flash/reference-to-videoprompt, reference_image_urls$0.089 초당
3

텍스트 → 동영상 작업 제출하기

이 프로그램은 작업을 제출하고 3초마다 폴링해 완료될 때까지 기다린 뒤 video URL을 출력합니다. 프롬프트와 설정을 바꿔 사용하세요.

const API = "https://cheapergen.com/api/v1";
const headers = {
  Authorization: `Bearer ${process.env.CHEAPERGEN_API_KEY}`,
  "Content-Type": "application/json",
};

// 1. Submit the job
let job = await fetch(`${API}/run/google/gemini-omni-flash/text-to-video`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    "prompt": "스모키한 지하 재즈 클럽에서 연주하는 트리오, 마이크에 몸을 기울이는 가수와 박자를 맞추는 관객",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 8
  }),
}).then((r) => r.json());

// 2. Poll until it finishes (or pass webhook_url and skip polling)
while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 3000));
  job = await fetch(`${API}/generations/${job.id}`, { headers }).then((r) => r.json());
}

console.log(job.status === "succeeded" ? job.output.video.url : job.error);
4

중요한 매개변수 설정하기

google/gemini-omni-flash/text-to-video 설정:

Gemini Omni Flash 텍스트 → 동영상 매개변수와 가격 영향
매개변수형식 · 기본값기능가격 영향
aspect_ratiostring (enum) · 16:9가로 또는 세로
16:9 · 9:16
예
resolutionstring (enum) · 720p720p(1080p와 4K는 아직 제공되지 않습니다).
720p
720p: $0.0927 초당
durationinteger (enum) · 8클립 길이: 4초, 6초, 8초 또는 10초.
4 · 6 · 8 · 10
4s: $0.0927 초당
8s: $0.089 초당
seedinteger같은 시드와 설정을 사용하면 결과를 재현할 수 있습니다. 비워 두면 무작위로 설정됩니다.없음

다른 Gemini Omni Flash 엔드포인트도 각자 입력 필드만 다를 뿐 같은 요청 형식을 사용합니다:

POST /api/v1/run/google/gemini-omni-flash/image-to-video

{
  "prompt": "정지 이미지에 생동감이 더해집니다. 김이 피어오르고 요리사가 돌아서 카메라를 향해 미소 짓습니다.",
  "image_url": "https://cdn.cheapergen.com/samples/portrait.jpg",
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 8
}

POST /api/v1/run/google/gemini-omni-flash/reference-to-video

{
  "prompt": "@Image1이 @Image2에서 가게 안으로 걸어 들어와 @Image3의 가방을 집어 듭니다.",
  "reference_image_urls": [
    "https://cdn.cheapergen.com/samples/reference-1.jpg",
    "https://cdn.cheapergen.com/samples/reference-2.jpg",
    "https://cdn.cheapergen.com/samples/reference-3.jpg"
  ],
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 8
}
5

결과 가져오기

작업 상태는 queued에서 running을 거쳐 succeeded, failed, canceled 중 하나가 됩니다. GET /api/v1/generations/{id}를 폴링하거나 제출 시 webhook_url을 전달하면 결과를 POST로 보내 드립니다. 출력 파일을 다운로드해 직접 저장하세요.

200 — 성공
{
  "id": "gen_8c2QmX1nq0k4",
  "object": "generation",
  "model": "google/gemini-omni-flash",
  "endpoint": "google/gemini-omni-flash/text-to-video",
  "mode": "text-to-video",
  "status": "succeeded",
  "input": {
    "prompt": "스모키한 지하 재즈 클럽에서 연주하는 트리오, 마이크에 몸을 기울이는 가수와 박자를 맞추는 관객",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 8
  },
  "output": {
    "video": {
      "url": "https://cdn.cheapergen.com/outputs/gen_8c2Q.mp4",
      "content_type": "video/mp4",
      "duration": 5,
      "width": 1280,
      "height": 720
    }
  },
  "error": null,
  "cost": {
    "amount_usd": 0.2255,
    "currency": "usd",
    "estimated": false,
    "official_usd": 0.264,
    "list_price_source": "official",
    "list_price_label": "Official",
    "saved_usd": 0.0385
  },
  "source": "api",
  "created_at": "2026-10-15T09:21:04Z",
  "started_at": "2026-10-15T09:21:06Z",
  "completed_at": "2026-10-15T09:22:31Z"
}
웹훅 서명 확인하기
6

실행 전 요청 가격 확인

견적 엔드포인트는 무료이며 API 키가 필요 없습니다. 전송한 입력값을 기준으로 가격, 공식 가격, 할인율을 반환합니다.

curl -X POST https://cheapergen.com/api/v1/quote/google/gemini-omni-flash/text-to-video \
  -H "Content-Type: application/json" \
  -d '{"prompt":"스모키한 지하 재즈 클럽에서 연주하는 트리오, 마이크에 몸을 기울이는 가수와 박자를 맞추는 관객","aspect_ratio":"16:9","resolution":"720p","duration":8}'
API 오류 및 해결 방법
상태코드의미
400invalid_request매개변수가 누락되었거나 허용 범위를 벗어났습니다. 오류 메시지에 해당 항목이 표시됩니다.
401unauthorizedAPI 키가 없거나 형식이 잘못되었거나 폐기되었습니다.
402insufficient_balance견적 가격을 결제할 크레딧이 부족합니다. 충전하거나 자동 충전을 설정하세요.
429rate_limited요청이 너무 많거나 진행 중인 생성이 너무 많습니다. 잠시 기다린 뒤 백오프를 적용해 다시 시도하세요.
502upstream_error모델 제공업체 오류입니다. 보류 금액은 환불되며 다시 시도할 수 있습니다.
503model_unavailable현재 정상 경로가 없습니다. 나중에 다시 시도하거나 다른 모델을 선택하세요.
전체 Gemini Omni Flash API 문서

자주 묻는 질문

Gemini Omni Flash API 관련 질문

아니요. API는 JSON을 사용하는 일반 HTTPS 방식이므로 이 페이지의 Node.js(fetch) 및 Python(requests) 예제만으로 실행할 수 있습니다. HTTP 요청을 보낼 수 있는 모든 언어를 사용할 수 있습니다.

네. 요청 본문에 "webhook_url"을 추가하면 CheaperGen-Signature 헤더(timestamp와 원본 본문의 HMAC-SHA256)로 서명해 완료된 생성 결과를 POST로 보냅니다. GET /api/v1/generations/{id}를 폴링해도 됩니다.

공개 URL을 "image_url", "end_image_url", "reference_image_urls"에 전달하세요. 공개 URL이 없는 파일은 POST /api/v1/uploads로 먼저 업로드하면 요청에 사용할 URL이 반환됩니다.

텍스트 → 동영상의 시작 가격은 $0.089 초당입니다. 이 페이지의 요청 예제는 $0.72공식 가격보다 공식 가격 낮게, 최대 13%입니다. 생성 실패는 자동 환불됩니다.