# Gemini Omni Flash — /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) 두 해상도의 단가가 같습니다. 실패 시 전액 환불합니다.

**엔드포인트:** `POST https://nezhagate.com/v1/videos/generations`

## 인증
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## 요청 본문
| 파라미터 | 타입 | 필수 | 설명 |
| --- | --- | --- | --- |
| `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로 처리합니다. |

## 요청 예시
```bash
# 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'
```

## 응답
```json
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "queued",
  "model": "gemini-omni-flash"
}
```