# تولید ویدیو از عکس (Image to Video)

`POST https://api.bananaai.ir/api/v1/videos/image-to-video`


> آدرس‌های رسانه باید عمومی و قابل دسترسی باشند.

## مدل‌ها

- Seedance 2 / 2.5 / mini: فریم اول/آخر یا ورودی چندرسانه‌ای
- `grok-imagine-video`: یک عکس، ۶ تا ۱۵ ثانیه، ۴۸۰p / ۷۲۰p
- `gemini-omni-video`: تا ۳ عکس + ویدیوی مرجع اختیاری
- `kling-v3-turbo`: یک عکس، ۳ تا ۱۵ ثانیه، ۷۲۰p / ۱۰۸۰p
- `kling-3.0`: فریم اول (+ فریم آخر اختیاری)
- `veo-3.1`: فریم اول (+ فریم آخر اختیاری)، فقط ۴ / ۶ / ۸ ثانیه، تا ۴K

> احتیاط Seedance 2.5 + `reference_video_urls`: حالت ویرایش ویدیو؛ `duration` خودکار، نسبت `adaptive`؛ اعتبار = (مدت ویدیوی مرجع + مدت خروجی) با نرخ ورودی ویدیو.

## درخواست

- `prompt` (required, string): متن توصیف حرکت / صحنه.
- `image_urls` (optional, string[]): عکس‌های ورودی؛ معمولاً اولین آیتم فریم اول است.
- `first_frame_url` (optional, string): آدرس صریح فریم اول (اختیاری).
- `last_frame_url` (optional, string): آدرس صریح فریم آخر (اختیاری).
- `generate_audio` (optional, boolean): Seedance: تولید صدا.
- `sound` (optional, boolean): Kling 3.0: صدا.
- `mode` (optional, string): Kling 3.0: std | pro | 4K.
  - examples: `std`, `pro`, `4K`
- `reference_image_urls` (optional, string[]): Seedance چندرسانه‌ای: حداکثر ۹ عکس مرجع (Seedance 2.5 تا ۳۰).
- `reference_video_urls` (optional, string[]): Seedance چندرسانه‌ای: حداکثر ۳ ویدیوی مرجع (Seedance 2.5 تا ۱۰).
- `reference_audio_urls` (optional, string[]): Seedance چندرسانه‌ای: حداکثر ۳ صوت مرجع (Seedance 2.5 تا ۱۰).
- `reference_video_duration_seconds` (optional, number): برای محاسبه اعتبار. در Seedance 2.5 با ویدیوی مرجع، اعتبار = (مدت مرجع + مدت خروجی) × نرخ ورودی ویدیو.
- `video_list` (optional, object[]): Gemini Omni: آرایه‌ای از {url, start, ends}.
- `model` (optional, string): شناسه مدل ویدیو.
  - examples: `veo-3.1`, `grok-imagine-video`, `kling-v3-turbo`, `wan-3`, `wan-3-prime`, `flux-3-video`, `kling-4`, `seedance-2-5`, `seedance-2`, `seedance-2-mini`, `gemini-omni-video`, `kling-3.0`
- `duration` (optional, integer): مدت زمان ویدیو به ثانیه. بازه مجاز به مدل بستگی دارد.
  - examples: `5`, `8`, `10`
- `resolution` (optional, string): رزولوشن خروجی. گزینه‌ها به مدل بستگی دارد.
  - examples: `480p`, `720p`, `1080p`, `4k`
- `aspect_ratio` (optional, string): نسبت عکس ویدیو.
  - examples: `16:9`, `9:16`, `1:1`, `auto`

### نمونه curl

```bash
curl -X POST "https://api.bananaai.ir/api/v1/videos/image-to-video" \
  -H "Authorization: Bearer ba_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"model":"grok-imagine-video","prompt":"Orbit slowly around the product on a clean studio set","image_urls":["https://example.com/product.jpg"],"duration":8,"resolution":"720p","aspect_ratio":"auto"}'
```

## پاسخ

```json
{
  "id": "task_abc123",
  "status": "pending",
  "model": "grok-imagine-video",
  "credits_reserved": 144,
  "created_at": "2026-01-01T12:00:00.000Z"
}
```

> شناسه task در فیلد `id` است. وضعیت را با `GET /api/v1/tasks/:id` هر ۳ تا ۵ ثانیه پیگیری کنید.
