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) 두 해상도의 단가가 같습니다. 실패 시 전액 환불합니다.
플레이그라운드에서 사용해 보기 →인증
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로 처리합니다. |
요청 예시
# 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'응답
{
"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 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"}'{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "gemini-omni-flash" }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로 하세요. 전체 목록은 연동 가이드에 있습니다.
| HTTP | code | 설명 |
|---|---|---|
| 401 | invalid_api_key | API 키가 없거나 유효하지 않음 |
| 402 | insufficient_quota | 잔액 부족 또는 키 한도 초과 |
| 400 | invalid_request | 지원하지 않는 모델 또는 파라미터 |
| 429 | rate_limit_exceeded | 업스트림 요청 한도 초과 |
| 502 | upstream_error | 모든 업스트림 경로가 실패 |