NezhaGateNezhaGate
gemini-omni-flash

Gemini Omni Flash · API

POST https://nezhagate.com/v1/videos/generations

Gemini Omni Flash 영상 생성(비동기): Google의 차세대 영상 모델입니다. 하나의 엔드포인트에서 매개변수로 방식을 고릅니다. 이미지가 없으면 텍스트-투-비디오, image에 1장이면 첫 프레임, images에 2장이면 첫 · 마지막 프레임, image_role=reference이면 1~3장을 피사체 / 스타일 참조로 씁니다. duration=6 / 8 / 10초, resolution=720P / 1080P, size=16:9 / 9:16이며 원본 오디오가 포함되고, 프롬프트의 콘티를 따라 여러 컷으로 이야기를 풀어내는 데 강합니다. 작업 ID를 돌려주고(HTTP 202) GET /v1/videos/jobs/{id}를 status=succeeded가 될 때까지 폴링하면 결과가 data[0].url에 담깁니다(재호스팅한 mp4, 60일 보관). 초당 $0.05로 과금하며($0.30 / $0.40 / $0.50) 두 해상도의 단가가 같습니다. 실패 시 전액 환불합니다.

플레이그라운드에서 사용해 보기 →

인증

Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

콘솔에서 API 키를 만들면 시작할 수 있습니다.

요청 본문

파라미터타입필수설명
model string 예 모델 ID. 여기서는 gemini-omni-flash입니다.
prompt string 예 영상의 내용, 카메라, 움직임을 설명하는 텍스트 프롬프트. 최대 20000자(중국어와 영어 모두 글자 수로 셉니다). 참조 이미지를 넣었다면 프롬프트에서 @Image1 / @Image2로 몇 번째 이미지인지 지칭할 수 있습니다.
duration integer 아니오 길이: 6 / 8 / 10초 중 하나(기본값 6). seconds로도 쓸 수 있습니다. 초당 $0.05로 과금하며 각각 $0.30 / $0.40 / $0.50입니다.
resolution string 아니오 해상도: 720P / 1080P(기본값 720P). 두 등급의 단가가 같습니다.
size string 아니오 화면 비율: 16:9(기본값) / 9:16. aspect_ratio로도 쓸 수 있습니다. 다른 비율은 거절됩니다.
audio boolean 아니오 이 모델은 항상 원본 오디오를 생성합니다. 이 매개변수는 생략할 수 있습니다(false는 거절됩니다).
image string 아니오 참조 이미지 한 장(공개 URL, data: URI 또는 base64): 첫 프레임으로 써서 이미지-투-비디오를 만듭니다. 이미지를 보내지 않으면 텍스트-투-비디오입니다.
images array 아니오 이미지 최대 3장(장당 최대 16MB, jpg / png / webp / gif). image_role=first_frame(1~2장일 때 기본값): 1번 이미지가 첫 프레임, 2번 이미지가 마지막 프레임입니다. image_role=reference: 1~3장을 피사체 / 스타일 참조로 쓰며 프레임으로 쓰지 않습니다. 3장이면 기본값이 reference입니다. reference_images로도 쓸 수 있습니다(reference와 같음). 상한을 넘으면 잘라내지 않고 거절합니다.
image_role string 아니오 이미지 사용 방식: first_frame(첫 프레임. 두 장이면 두 번째가 마지막 프레임) 또는 reference(피사체 / 스타일 참조). 생략하면 1~2장은 first_frame, 3장은 reference로 처리합니다.

요청 예시

cURL
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "gemini-omni-flash", "prompt": "a paper crane unfolding over a misty lake", "duration": 8, "resolution": "720P", "size": "16:9"}'
# first frame: also pass  "image": "https://example.com/first-frame.png"
# first + last frame: "images": ["https://example.com/first.png", "https://example.com/last.png"]
# 1-3 references: "images": [...], "image_role": "reference"
# 2) poll every ~5s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'

응답

200 · JSON
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "queued",
  "model": "gemini-omni-flash"
}

비동기 영상 작업 (제출 → 폴링)

제출하면 즉시 HTTP 202와 작업 ID가 돌아옵니다. status=succeeded가 될 때까지 폴링한 뒤 data[0].url(mp4 링크)을 읽으세요. 지정할 수 있는 길이, 해상도, 화면 비율은 위 파라미터 표에 있으며, image 파라미터를 넣으면 이미지-투-비디오가 됩니다.

curl · 제출 (텍스트-투-비디오)
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "gemini-omni-flash", "prompt": "노을 속에서 서핑하는 고양이", "size": "16:9"}'
이미지-투-비디오: image 파라미터도 함께 보내세요(첫 프레임 참조 — 공개 URL, data: URI, base64 모두 가능).
첫 · 마지막 프레임: images에 두 장(첫 번째, 마지막 순). 참조 이미지: images에 1~3장을 넣고 "image_role": "reference"를 붙이세요. 이미지 속 인물이나 스타일이 영상에 나오지만 프레임으로 쓰지는 않습니다.
응답 예시
{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "gemini-omni-flash" }
curl · 폴링
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
응답 예시
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "succeeded",
  "model": "gemini-omni-flash",
  "data": [{ "url": "https://img.nezhagate.com/i/9f86d081a8....mp4" }]
}

🕑 data[0].url은 저희 이미지 호스팅 링크로, 60일간 보관된 뒤 자동으로 삭제됩니다. 계속 쓰려면 다운로드해서 직접 운영하는 저장소나 CDN에 저장하세요.

초당 과금 ($0.05/초 × 길이). 예치 금액과 정산 금액이 정확히 일치하며, 실패하거나 시간이 초과된 렌더링은 자동으로 전액 환불됩니다.

오류 코드

모든 오류 본문에는 error.message / error.type / error.code / error.param이 들어 있습니다. 분기는 code로 하세요. 전체 목록은 연동 가이드에 있습니다.

HTTPcode설명
401invalid_api_keyAPI 키가 없거나 유효하지 않음
402insufficient_quota잔액 부족 또는 키 한도 초과
400invalid_request지원하지 않는 모델 또는 파라미터
429rate_limit_exceeded업스트림 요청 한도 초과
502upstream_error모든 업스트림 경로가 실패