> ## Documentation Index
> Fetch the complete documentation index at: https://veniceai-mintlify-86b9f77a.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Seedance 2.0 및 2.5

> Venice에서 Seedance 2.0 및 2.5로 비디오를 생성·편집·확장·결합하는 네 가지 R2V 워크플로우와 공개 API 미디어 정책, 모델 패밀리별 멀티모달 제한, 해상도 옵션, 가격 정보 및 curl 요청 예제를 상세히 안내합니다.

Seedance는 텍스트, 이미지, 레퍼런스 기반 비디오 생성을 위한 Venice의 대표 멀티모달 비디오 패밀리입니다. **Seedance 2.0** (그리고 Fast)과 **Seedance 2.5**는 동일한 R2V 프롬프트 라우팅 모델을 공유합니다. 단일 reference-to-video 엔드포인트가 **네 가지 서로 다른 워크플로우** (Reference, Edit, Extend, Stitch)를 처리하며, 워크플로우는 **프롬프트의 형태**로부터 추론됩니다.

이 가이드에서는 변형, 네 가지 워크플로우, **공개 API 미디어 정책**, **패밀리별 멀티모달 제한**, 출력 비트레이트, 요금, `curl` 예제를 다룹니다.

<Warning>
  **공개 Seedance API에서는 인물이 포함된 미디어가 지원되지 않습니다.** 공개 `*-basic` 모델은 동의 증명(`consents.seedance` / `needs_consent`)을 사용하지 않습니다. 이러한 입력은 콘텐츠 정책 또는 공급자 오류로 업스트림에서 거부될 수 있습니다. Seedance의 전체 기능 세트를 사용하려면 Venice 앱 또는 Studio를 이용하세요.
</Warning>

## 변형

| Model ID                                     | 변형       | 출력 해상도                       | 참고                                                                                   |
| -------------------------------------------- | -------- | ---------------------------- | ------------------------------------------------------------------------------------ |
| `seedance-2-0-text-to-video-basic`           | T2V      | 480p / 720p / 1080p / **4k** | 텍스트 prompt 전용                                                                        |
| `seedance-2-0-image-to-video-basic`          | I2V      | 480p / 720p / 1080p / **4k** | 첫 프레임(선택적으로 마지막 프레임) 이미지 기반                                                          |
| `seedance-2-0-reference-to-video-basic`      | R2V      | 480p / 720p / 1080p / **4k** | 최대 레퍼런스 이미지 9개 + 레퍼런스 비디오 3개 + 레퍼런스 오디오 도너 3개. Reference / Edit / Extend / Stitch 지원 |
| `seedance-2-0-fast-text-to-video-basic`      | Fast T2V | 480p / 720p                  | 더 빠르고 낮은 품질의 티어(1080p / 4k 불가)                                                       |
| `seedance-2-0-fast-image-to-video-basic`     | Fast I2V | 480p / 720p                  | 더 빠르고 낮은 품질의 티어(1080p / 4k 불가)                                                       |
| `seedance-2-0-fast-reference-to-video-basic` | Fast R2V | 480p / 720p                  | 더 빠르고 낮은 품질의 티어(1080p / 4k 불가). 동일한 워크플로우 세트                                         |
| `seedance-2-5-text-to-video-basic`           | T2V      | 480p / 720p                  | 최대 30초 출력, 네이티브 오디오                                                                  |
| `seedance-2-5-image-to-video-basic`          | I2V      | 480p / 720p                  | 최대 30초 출력, 첫 프레임(선택적으로 마지막 프레임) 기반                                                   |
| `seedance-2-5-reference-to-video-basic`      | R2V      | 480p / 720p                  | 최대 이미지 30개 + 비디오 10개 + 오디오 도너 10개. 동일한 Reference / Edit / Extend / Stitch 워크플로우      |

모든 변형은 비동기입니다. `POST /api/v1/video/queue`로 제출한 뒤 응답 본문이 `video/mp4`가 될 때까지 `POST /api/v1/video/retrieve`를 폴링하세요. 일반 큐 흐름은 [Video Generation](/guides/media/video-generation)을 참고하세요.

`resolution`은 다음 중 하나로 전달하세요: `480p`, `720p`, `1080p` 또는 `4k`(소문자). Seedance **2.0**(non-Fast)은 네 가지 모두 허용합니다. **2.0 Fast**와 **2.5**는 `480p` / `720p`만 허용합니다. 실시간 모델 ID와 기능은 `GET /models?type=video`로 확인하며, 사용 가능 여부를 하드코딩하지 마세요.

## 출력 비트레이트

모든 공개 Seedance **2.0**(Fast 포함) 및 **2.5** 모델에서 출력 인코딩 비트레이트를 설정할 수 있습니다. `/video/queue`에서 `bitrate_mode`를 직접 전달하세요. Venice가 이를 자동으로 선택하지 않습니다.

| 값          | 동작                          |
| ---------- | --------------------------- |
| `standard` | 기본 비트레이트. 필드를 생략한 것과 동일합니다. |
| `high`     | 더 높은 품질, 더 큰 파일의 인코딩.       |

이는 큐 전용 인코딩 옵션입니다. 가격이나 토큰 비용을 변경하지 않으며, `/video/quote`는 `bitrate_mode`를 받지 않습니다. 다른 비디오 패밀리(Wan, Kling, LTX 등)는 이 필드를 지원하지 않습니다.

## "하나의 모델, 네 가지 워크플로우" 모델

reference-to-video 변형(`seedance-2-0-reference-to-video-basic`, 그 Fast 형제, 그리고 `seedance-2-5-reference-to-video-basic`)은 동일한 프롬프트 라우팅 패턴을 사용합니다. **모델은 프롬프트 접두어와 입력의 형태로부터 작업을 추론합니다.** 별도의 `task`나 `workflow` 필드는 없으며, 프롬프트 문법 자체가 라우팅입니다.

| 워크플로우         | 기능                                                                  | 프롬프트 접두어                                                             | 입력                                                              |
| ------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------- |
| **Reference** | 업로드된 레퍼런스 파일을 subject / motion / style / audio의 도너로 사용하여 새로운 비디오 생성 | `Refer to ... in <Image\|Video\|Audio N> to generate ...`            | 텍스트 + 이미지 또는 비디오 레퍼런스 1개 이상, 선택적 오디오 도너(개수는 패밀리에 따라 다름 — 제한 참고) |
| **Edit**      | 단일 입력 비디오를 수정하되 나머지는 보존                                             | `Strictly edit <Video 1>, changing its ...`                          | 입력 비디오 1개 + 텍스트(이미지는 선택적 기반)                                    |
| **Extend**    | 클립 하나를 앞/뒤로 확장                                                      | `Extend <Video 1>, generate ...`                                     | 입력 비디오 1개 + 텍스트                                                 |
| **Stitch**    | 자동 생성된 전환 효과로 입력 클립을 이어붙임                                           | `<Video 1> + <transition description> + followed by <Video 2> + ...` | 여러 입력 비디오 + 텍스트(클립 개수/길이 제한은 패밀리별로 다름)                          |

**프롬프트 문법은 표준이며 대소문자를 구분합니다**: 꺾쇠 괄호, 첫 글자 대문자, 숫자 앞 공백 하나 — `<Video 1>`, `<Image 1>`, `<Audio 1>`.

***

## 워크플로우 패턴

### Reference 워크플로우

업로드된 레퍼런스 파일을 **도너**(subject, scene, motion, style, vocal timbre)로 사용해 완전히 새로운 비디오를 생성합니다.

**표준 프롬프트 패턴**:

```
Refer to <Subject N> in <Image N> to generate ...
Refer to the [action | camera scene | style | sound effect] in <Video N> to generate ...
Refer to the [tone | timbre] in <Audio N> to generate ...
```

**예시**:

* `Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character riding a horse through snow.`
* `Refer to the camera scene in <Video 1> to generate a similar establishing shot of a futuristic city at dawn.`
* `Refer to <Subject 1> in <Image 1> and use the timbre in <Audio 1> for the narrator describing the scene.` (오디오 도너는 최소한 하나의 이미지 또는 비디오 레퍼런스와 함께 사용해야 하며, 오디오 단독은 거부됩니다)

### Edit 워크플로우

단일 입력 비디오를 수정합니다. **프롬프트에서 명시적으로 언급되지 않은 것은 보존됩니다.** 완전히 새로운 비디오가 아니라 국소적 변경(subject 교체, 날씨/색상 변경, 요소 추가/삭제)을 원할 때 사용하세요.

**표준 프롬프트 패턴**:

```
Strictly edit <Video 1>, changing its [original feature] to [new feature] ...
```

**세부 제어를 위한 하위 패턴**:

```
Add Elements:
  At [timestamp / timing] and [spatial location] of <Video 1>, add [description of intended element].

Remove Elements:
  Remove [element to be deleted] from <Video 1>, keeping the rest of the video content unchanged.

Modify Elements:
  Replace [description of element to be changed] in <Video 1> with [description of intended element].
```

**예시**:

* `Strictly edit <Video 1>, changing its weather from sunny to a heavy rainstorm.`
* `Add snacks such as fried chicken and pizza to the countertop in <Video 1>.`
* `Remove the red car from <Video 1>, keeping the rest of the video content unchanged.`
* `Replace the perfume featured in <Video 1> with the face cream from <Image 1>, with all original motions and camera work preserved.`

마지막 예시는 Edit과 이미지 레퍼런스를 결합한 것으로, 완전히 유효합니다. 모델은 `<Image 1>`을 대체 요소의 시각적 도너로 사용합니다.

### 소스와 일치하는 종횡비 및 길이

Seedance reference-to-video **edit / extend**에서는 고정된 비율이나 길이를 지정하는 대신, 출력이 소스 클립을 따라가도록 요청할 수 있습니다:

| 필드             | 값                    | 동작                                                           |
| -------------- | -------------------- | ------------------------------------------------------------ |
| `aspect_ratio` | `adaptive` 또는 `auto` | 출력 종횡비가 소스 비디오와 일치 (Seedance 2.0 및 2.5 R2V)                  |
| `duration`     | `-1` 또는 `auto`       | 출력 길이가 소스 비디오와 일치 (Seedance **2.5** R2V edit; 소스는 4–30초여야 함) |

요구 사항:

* **Queue:** 소스와 일치하는 값을 사용하려면 `reference_video_urls`가 필요합니다.
* **Quote:** 소스와 일치하는 값을 사용하려면 `reference_video_total_duration`이 필요합니다. 소스와 일치하는 duration은 `ceil(reference_video_total_duration)`초로 청구됩니다.
* 종횡비와 길이는 독립적입니다 — 하나만 소스와 일치시키고 다른 하나는 지정할 수 있습니다.
* **Extend**의 경우, 고정된 `duration`(얼마나 생성할지)을 지정하고 선택적으로 `aspect_ratio: "adaptive"`를 사용하는 것이 좋습니다. 소스와 일치하는 `duration`은 "소스와 동일한 길이" edit 스타일 작업을 위한 것입니다.

### `omni_reference_task_type` (Seedance 2.5 R2V)

BytePlus는 Seedance 2.5 all-modal 레퍼런스 작업을 프롬프트로부터 **reference**, **edit** 또는 **extend**로 분류합니다. `/video/queue`에서 다음 값으로 이 분류를 선택적으로 미리 안내할 수 있습니다:

| 값           | 의미                                                                           |
| ----------- | ---------------------------------------------------------------------------- |
| `auto`      | BytePlus가 프롬프트로부터 분류하도록 함                                                    |
| `reference` | 멀티모달 레퍼런스 생성 (도너로 안내되는 새 클립)                                                 |
| `edit`      | 기존 클립 편집 (`duration: "auto"` / `"-1"`, 보통 `aspect_ratio: "adaptive"`와 함께 사용) |
| `extend`    | 기존 클립 확장 (얼마나 생성할지에 대한 고정 `duration`; 보통 `aspect_ratio: "adaptive"`와 함께 사용)  |

`editing`→`edit`, `extension`→`extend` 별칭도 허용됩니다. 값을 생략하면 `reference_video_urls`가 있는 경우 Venice가 프롬프트로부터 값을 추론합니다. 프롬프트는 여전히 선택된 유형과 일치해야 하며, 충돌은 비동기적으로 실패할 수 있습니다.

### Extend 워크플로우

단일 클립을 시간적으로 앞이나 뒤로 이어갑니다. **기본적으로 Seedance는 새 콘텐츠만 반환하며**, 원본 입력에 확장분을 이어붙인 결과를 반환하지 않습니다. 이는 전환 연속성을 위한 의도적 설계입니다. 확장분과 함께 입력 클립을 보존하고 싶다면 명시적으로 지정하세요:

```
Extend <Video 1>, generate [description of extended content]
Extend <Video 1> backward, [description of extended content]
Extend <Video 1>, start with <Video 1>, then [description of extended content]      ← 시작 부분에 입력 보존
Extend <Video 1> backward, [description], and then end with <Video 1>               ← 끝 부분에 입력 보존
```

전환 처리: 모델이 자연스러운 블렌딩을 위해 전환 프레임을 자동으로 추출하며, 입력 비디오의 원본 세그먼트는 재생성되지 않습니다.

**예시**:

* `Extend <Video 1>, generate a dramatic chase scene through narrow alleys at dusk.`
* `Extend <Video 1> backward, the same character walking toward the camera before the original shot begins.`
* `Extend <Video 1>, start with <Video 1>, then the camera pulls back to reveal a vast landscape.`

### Stitch 워크플로우 (트랙 완성)

AI가 생성한 전환으로 입력 클립을 연결합니다. **패밀리별** 결합 길이 및 클립 수 제한을 [멀티모달 입력 제한](#멀티모달-입력-제한)에서 확인하세요 (Seedance 2.0: 클립 ≤3개 / 결합 ≤15초; Seedance 2.5: 더 높은 비디오 제한).

**표준 프롬프트 패턴**:

```
<Video 1> + [transition description] + followed by <Video 2> [+ [transition description] + followed by <Video 3>]
```

**예시**:

* `<Video 1> + a smooth seamless cut + followed by <Video 2>`
* `<Video 1>. The moment a leaf falls to the ground, it sets off a special effect of golden particles. A gust of wind blows by, leading into <Video 2>.`
* `<Video 1> + a wisp of smoke transforms into a flock of birds + followed by <Video 2> + a slow dolly-in + followed by <Video 3>`

모델은 연속성을 위해 연결 지점에서 세그먼트를 자동으로 트리밍합니다.

***

## 범용 프롬프트 공식

네 가지 워크플로우 모두에서 권장되는 작성 공식은 다음과 같습니다:

```
Subject + Motion + Environment (Optional)
       + Camera Movement / Cut (Optional)
       + Aesthetic Description (Optional)
       + Audio (Optional)
```

* **Subject + Motion**: 논리적 토대 — "누가" "어떤 행동"을 하는지 정의
* **Environment + Aesthetics**: 공간적 배경, 조명, 시각적 스타일
* **Camera**: 명시적 샷 유형 또는 움직임
* **Audio**: 몰입감 있는 출력을 위한 배경 효과음이나 음성 방향

이 공식을 워크플로우 접두어 위에 얹으면(예: `Strictly edit <Video 1>, changing its <subject + motion + environment + ...>`) 최고 품질의 출력을 얻을 수 있습니다.

***

## 멀티모달 입력 제한

아래 값은 Venice API가 수용하는 범위입니다. 범위 밖의 요청은 추론에 도달하기 전에 스키마 계층에서 400으로 거부됩니다.

**Seedance 2.0과 Seedance 2.5는 서로 다른 제한을 사용합니다.** 호출 중인 모델 패밀리의 컬럼을 반드시 확인하세요.

### 공통 미디어 하한

| 제약                    | 값                                                                   |
| --------------------- | ------------------------------------------------------------------- |
| 이미지 / 비디오 / 오디오 입력 방식 | URL (`http://`, `https://`) 또는 Base64 data URL                      |
| 이미지 형식                | `.jpeg`, `.png`, `.webp`, `.bmp`, `.tiff`, `.gif`, `.heic`, `.heif` |
| 이미지 종횡비 (W / H)       | 배타적 `(0.4, 2.5)`                                                    |
| 이미지 최소 변              | ≥ 300 px                                                            |
| 비디오 형식                | `.mp4`, `.mov`                                                      |
| 비디오 코덱                | H.264 / AVC, H.265 / HEVC                                           |
| 오디오 코덱(컨테이너 내)        | AAC, MP3                                                            |
| 오디오 형식(레퍼런스 오디오)      | `.wav`, `.mp3`                                                      |
| 클립당 비디오 크기            | ≤ 50 MB                                                             |
| 클립당 오디오 크기            | ≤ 15 MB                                                             |
| I2V 첫 프레임 이미지         | 1                                                                   |
| I2V 첫 + 마지막 프레임       | 2                                                                   |

### 패밀리 비교

| 제약                        | Seedance 2.0 (+ Fast)                               | Seedance 2.5              |
| ------------------------- | --------------------------------------------------- | ------------------------- |
| 출력 길이                     | 4–15 초                                              | 4–30 초 (기본값 10)           |
| 출력 해상도                    | 480p / 720p / 1080p / **4k** (Fast: 480p / 720p 전용) | 480p / 720p 전용            |
| 출력 비트레이트 (`bitrate_mode`) | `standard`(기본값) 또는 `high`                           | `standard`(기본값) 또는 `high` |
| R2V 레퍼런스 이미지              | 1–9                                                 | 1–30                      |
| 최대 R2V 레퍼런스 이미지 바이트       | (공통 요청 제한)                                          | 이미지당 ≤ 30 MB              |
| R2V 레퍼런스 비디오              | ≤ 3                                                 | ≤ 10                      |
| 레퍼런스 비디오당 길이              | `[2, 15]` 초                                         | `[2, 30]` 초               |
| 레퍼런스 비디오 결합 길이            | ≤ 15 초                                              | ≤ 30 초                    |
| R2V 레퍼런스 오디오 클립           | ≤ 3                                                 | ≤ 10                      |
| 레퍼런스 오디오당 길이              | `[2, 15]` 초                                         | `[2, 30]` 초               |
| 레퍼런스 오디오 결합 길이            | ≤ 15 초                                              | ≤ 30 초                    |

레퍼런스 오디오는 R2V 변형에서만 지원됩니다. 각 항목은 `role: "reference_audio"` 콘텐츠 항목으로 모델에 전달되며, 프롬프트에서는 `<Audio 1>`, `<Audio 2>`, … 로 참조합니다. 모델은 프롬프트가 어떻게 표현하는지에 따라 각 클립을 vocal timbre, 효과음 또는 배경 음악으로 사용합니다. 기존의 단수형 `audio_url` 필드는 동일한 콘텐츠 형태로 매핑되며, 이제 한 요소짜리 `reference_audio_urls`를 전달하는 것과 동일합니다.

<Warning>
  **`reference_audio_urls`만을 유일한 레퍼런스 입력으로 사용할 수 없습니다.** 모델은 오디오 도너와 함께 최소한 하나의 이미지 또는 비디오 레퍼런스를 필요로 합니다. `reference_audio_urls`는 `reference_image_urls`, `reference_video_urls`, `image_url` 또는 `video_url`과 함께 사용하세요 — 오디오 전용 제출은 거부됩니다.
</Warning>

### 요청 크기

큐 엔드포인트는 최대 **35 MB**의 JSON 본문을 허용합니다. 큰 비디오의 인라인 data URL은 이를 넘길 수 있으므로 — 특히 다중 클립 Stitch의 경우 — 인라인 base64보다 URL 사용을 권장합니다.

***

## 요금

`/video/queue`에 제출하기 전에 주어진 요청 형태에 대한 견적을 얻으려면 `POST /api/v1/video/quote`를 호출하세요. quote 엔드포인트가 유일한 권위 있는 출처이며, 가격 세부 정보는 변경될 수 있으므로 클라이언트 측에 캐시하거나 중복 저장해서는 안 됩니다.

요청에 레퍼런스 비디오가 포함된 경우, quote가 `/video/queue`의 청구액과 일치하도록 `reference_video_total_duration`(모든 레퍼런스 클립 길이의 초 단위 합계)을 함께 전달하세요:

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/quote \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video-basic",
    "duration": "5s",
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "reference_video_total_duration": 5
  }'
```

소스와 일치하는 Seedance 2.5 edit quote(소스 길이 기준으로 청구):

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/quote \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5-reference-to-video-basic",
    "duration": "auto",
    "resolution": "720p",
    "aspect_ratio": "adaptive",
    "reference_video_total_duration": 5.2
  }'
```

***

## 전체 예제

모든 예제는 환경 변수 `VENICE_API_KEY`가 설정되어 있다고 가정합니다.

### Text-to-video

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-text-to-video-basic",
    "prompt": "A golden retriever frolicking through a sunlit meadow at sunset, slow camera dolly-in, shallow depth of field, warm cinematic lighting.",
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }'
```

### Seedance 2.0 text-to-video (4K)

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-text-to-video-basic",
    "prompt": "Ultra-detailed aerial glide over a sunlit alpine lake, crystal water, distant peaks, cinematic color grade.",
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "4k",
    "bitrate_mode": "high"
  }'
```

### Seedance 2.5 text-to-video (더 긴 길이)

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5-text-to-video-basic",
    "prompt": "A slow aerial push over misty mountains at sunrise, clouds parting, soft orchestral ambience, cinematic widescreen framing.",
    "duration": "20s",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "bitrate_mode": "high"
  }'
```

### Image-to-video (첫 프레임)

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-image-to-video-basic",
    "prompt": "The lighthouse keeper turns toward the storm, lantern raised, waves crashing against the rocks.",
    "image_url": "https://example.com/lighthouse.jpg",
    "duration": "5s",
    "resolution": "720p"
  }'
```

<Note>
  Seedance I2V 모델(`seedance-2-0-image-to-video-basic`, 그 Fast 변형, `seedance-2-5-image-to-video-basic`)은 **`aspect_ratio`를 허용하지 않습니다** — 출력 종횡비는 입력 이미지의 크기에서 자동으로 도출됩니다. 이 필드를 전달하면 *"This model does not support aspect\_ratio"* 메시지와 함께 400이 반환됩니다. 명시적 종횡비 제어가 필요하면 T2V 또는 R2V 변형을 사용하세요.
</Note>

### Reference 워크플로우 — subject 도너

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video-basic",
    "prompt": "Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character walking through a neon-lit Tokyo street at night.",
    "reference_image_urls": ["https://example.com/character.png"],
    "duration": "5s",
    "aspect_ratio": "9:16",
    "resolution": "1080p"
  }'
```

### Seedance 2.5 Reference 워크플로우 — 다중 이미지

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5-reference-to-video-basic",
    "prompt": "Refer to <Subject 1> in <Image 1> and the style in <Image 2> to generate a 12-second clip of the same character exploring a rainy cyberpunk alley.",
    "reference_image_urls": [
      "https://example.com/character.png",
      "https://example.com/style-board.png"
    ],
    "duration": "12s",
    "aspect_ratio": "9:16",
    "resolution": "720p"
  }'
```

### Reference 워크플로우 — subject + 오디오 도너

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video-basic",
    "prompt": "Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character walking through a neon-lit Tokyo street at night. Refer to the timbre in <Audio 1> for a soft female voiceover describing the scene.",
    "reference_image_urls": ["https://example.com/character.png"],
    "reference_audio_urls": ["https://example.com/voice-sample.mp3"],
    "duration": "5s",
    "aspect_ratio": "9:16",
    "resolution": "1080p"
  }'
```

### Edit 워크플로우

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video-basic",
    "prompt": "Strictly edit <Video 1>, changing its weather from sunny to a heavy rainstorm, with all original motions and camera work preserved.",
    "reference_video_urls": ["https://example.com/sunny-scene.mp4"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Seedance 2.5 edit — 소스와 일치하는 duration 및 종횡비

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5-reference-to-video-basic",
    "prompt": "Strictly edit <Video 1>, changing its weather from sunny to a heavy rainstorm, with all original motions and camera work preserved.",
    "reference_video_urls": ["https://example.com/sunny-scene.mp4"],
    "omni_reference_task_type": "edit",
    "duration": "auto",
    "aspect_ratio": "adaptive",
    "resolution": "720p"
  }'
```

`omni_reference_task_type: "edit"`은 BytePlus 분류를 미리 안내합니다. `duration: "auto"`(또는 `"-1"`)와 `aspect_ratio: "adaptive"`(또는 `"auto"`)를 사용하면 출력이 소스 클립을 따릅니다. [소스와 일치하는 종횡비 및 길이](#소스와-일치하는-종횡비-및-길이) 및 [`omni_reference_task_type`](#omni_reference_task_type-seedance-25-r2v)를 참고하세요.

### 이미지 기반이 있는 Edit 워크플로우

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video-basic",
    "prompt": "Replace the perfume featured in <Video 1> with the face cream from <Image 1>, with all original motions and camera work preserved.",
    "reference_video_urls": ["https://example.com/perfume-ad.mp4"],
    "reference_image_urls": ["https://example.com/face-cream.png"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Extend 앞으로

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video-basic",
    "prompt": "Extend <Video 1>, generate a dramatic chase scene through narrow alleys at dusk, with neon signs flickering and rain on the pavement.",
    "reference_video_urls": ["https://example.com/alley-intro.mp4"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Stitch (3 클립)

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/queue \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video-basic",
    "prompt": "<Video 1> + a wisp of smoke transforms into a flock of birds + followed by <Video 2> + a slow dolly-in + followed by <Video 3>",
    "reference_video_urls": [
      "https://example.com/clip-1.mp4",
      "https://example.com/clip-2.mp4",
      "https://example.com/clip-3.mp4"
    ],
    "reference_video_total_duration": 12,
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }'
```

### 완료 폴링

큐에 제출할 때마다 반환된 `queue_id`를 저장하고, 응답 본문이 `video/mp4`가 될 때까지 `/video/retrieve`를 폴링하세요:

```bash theme={null}
curl -X POST https://api.venice.ai/api/v1/video/retrieve \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-reference-to-video-basic",
    "queue_id": "123e4567-e89b-12d3-a456-426614174000"
  }' \
  -o output.mp4
```

작업이 완료될 때까지 응답은 JSON(`{ "status": "queued" | "running" | "failed", ... }`)이며, 완료 시 응답 본문이 `video/mp4` 바이트로 전환됩니다. 전체 폴링 패턴은 [Video Generation](/guides/media/video-generation)을 참고하세요.

***

## 문제 해결

### `At least one reference is required for this model`

reference-to-video 제출은 `reference_image_urls`, `reference_video_urls`, `image_references` 또는 `video_references` 중 최소 하나를 포함해야 합니다. 순수 텍스트 전용 생성은 유효한 R2V 워크플로우가 아니므로 text-to-video 모델 ID를 대신 사용하세요. `reference_audio_urls`만으로는 충분하지 않습니다(위 Audio 섹션 참고).

### 너무 많은 레퍼런스 비디오 / 이미지

Seedance **2.0**은 R2V를 **이미지 9개** 및 **비디오 3개**로 제한합니다. Seedance **2.5**는 이 제한을 **이미지 30개** 및 **비디오 10개**로 상향합니다. 패밀리 제한을 초과하면 입력을 정리하거나 오프라인에서 먼저 스티치하세요.

### 길이 / 결합 길이 오류

* **2.0:** 클립당 레퍼런스 비디오/오디오 `[2, 15]` 초; 결합 비디오/오디오 ≤ 15 초; 출력 4–15 초.
* **2.5:** 클립당 레퍼런스 비디오/오디오 `[2, 30]` 초; 결합 비디오/오디오 ≤ 30 초; 출력 4–30 초.
* **소스와 일치하는 duration** (Seedance 2.5의 `-1` / `auto`): 소스 클립은 4–30초여야 하며, `reference_video_urls`(queue) 또는 `reference_video_total_duration`(quote)이 필요합니다.

제출 전에 클라이언트 측에서 클립을 트리밍하세요.

### 프롬프트가 잘못된 워크플로우로 라우팅됨

워크플로우는 프롬프트 문법으로부터 추론됩니다. 흔한 잘못된 라우팅:

* **Extend**를 원하지만 `Refer to ...`로 작성 → 모델이 비디오를 이어갈 캔버스가 아닌 *도너*로 취급
* **Stitch**를 원하지만 `Refer to ...`로 작성 → 모델이 하나를 도너로 선택하고 나머지는 무시
* **Edit**을 원하지만 `Generate a video based on <Video 1>`으로 작성 → 모호함; 모델이 Reference로 기본 처리할 수 있음

표준 접두어를 다음과 같이 정확히 사용하세요: `Strictly edit <Video 1>, ...`, `Extend <Video 1>, ...`, `<Video 1> + ... + followed by <Video 2>`.

### 인물이 포함된 미디어 미지원

공개 Seedance API 모델은 동의 증명 흐름(`consents.seedance` / `needs_consent`)을 실행하지 않습니다. 감지 가능한 인물이 포함된 미디어는 콘텐츠 정책 또는 공급자 오류로 실패할 수 있습니다. 대신 Venice 앱 또는 Studio를 사용하세요.

### 견적이 큐에 청구된 금액과 일치하지 않음

레퍼런스 비디오를 포함시켰지만 `/video/quote`에 `reference_video_total_duration`을 전달하지 않았다면, 견적과 큐 청구액이 다를 수 있습니다. 레퍼런스 비디오가 있는 경우 항상 `reference_video_total_duration`(모든 레퍼런스 클립 길이의 초 단위 합계)을 전달하세요.

***

## 참조

* Venice 비디오 큐 엔드포인트: [`POST /api/v1/video/queue`](/api-reference/endpoint/video/queue)
* Venice quote 엔드포인트: [`POST /api/v1/video/quote`](/api-reference/endpoint/video/quote)
* 관련 가이드: [Reference to Video](/guides/media/reference-to-video) (Kling O3 + Grok Imagine R2V를 다룸)
* 관련 가이드: [Video Generation](/guides/media/video-generation) (큐/폴링 개요)
