> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Wan Videos Generation API 연동 설명

> Tongyi Wansiang Video Generation 集成指南 - XHuoAPI

본 문서는 Wan Videos Generation API 연동 설명을 소개하며, 이는 사용자 정의 매개변수를 입력하여 통의 만상 공식 비디오를 생성할 수 있는 방법입니다.

## 신청 절차

API를 사용하려면 먼저 [Wan Videos Generation API](https://api.xhuoapi.ai/documents/52b0f490-1bbf-4fe5-b60e-96626d333d2c) 해당 페이지에서 서비스를 신청해야 합니다. 페이지에 들어가면 "Acquire" 버튼을 클릭합니다, 아래 그림과 같이:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

로그인 또는 등록이 되어 있지 않으면 자동으로 로그인 페이지로 이동하여 등록 및 로그인을 요청합니다. 로그인 및 등록 후에는 자동으로 현재 페이지로 돌아옵니다.

첫 신청 시 무료 한도가 제공되어 해당 API를 무료로 사용할 수 있습니다.

## 기본 사용

먼저 기본 사용 방식을 이해해야 합니다. 즉, 입력할 프롬프트 `prompt`, 생성 행동 `action`, 첫 프레임 참조 이미지 `image_url` 및 모델 `model`을 입력하면 처리된 결과를 얻을 수 있습니다. 먼저 간단하게 `action` 필드를 전달해야 하며, 그 값은 `text2video`입니다. 이는 두 가지 행동을 포함합니다: 문생 비디오(`text2video`), 그림생 비디오(`image2video`). 그리고 모델 `model`을 입력해야 하며, 현재 주요 모델은 `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v`입니다. 구체적인 내용은 다음과 같습니다:

<p>
  <img src="https://cdn.xhuoapi.ai/03gqdz.png" width="500" className="m-auto" />
</p>

여기서 우리는 Request Headers를 설정했습니다. 포함된 내용은 다음과 같습니다:

* `accept`: 어떤 형식의 응답 결과를 받고 싶은지, 여기서는 `application/json`으로 작성하여 JSON 형식으로 설정합니다.
* `authorization`: API 호출을 위한 키, 신청 후 직접 드롭다운에서 선택할 수 있습니다.

또한 Request Body를 설정했습니다. 포함된 내용은 다음과 같습니다:

* `model`: 비디오를 생성하는 모델, 주요 모델은 `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v`입니다.
* `action`: 이번 비디오 생성 작업의 행동, 주요 행동은 세 가지로, 문생 비디오(`text2video`), 그림생 비디오(`image2video`)입니다. 문생 비디오일 경우 현재는 모델 `wan2.6-t2v`만 지원하며, 그림생 비디오일 경우 현재는 모델 `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`만 지원합니다.
* `image_url`: 그림생 비디오 행동 `image2video`를 선택할 경우 반드시 업로드해야 하는 첫 프레임 참조 이미지 링크로, 현재는 모델 `wan2.6-i2v`, `wan2.6-i2v-flash`만 지원합니다.
* `reference_video_urls`: 그림생 비디오 시 선택 사항으로, 생성할 참조 비디오 링크를 지정합니다. 현재는 모델 `wan2.6-r2v`만 지원합니다.
* `size`: 생성할 비디오의 해상도를 지정하며, 형식은 너비\*높이입니다. 이 매개변수의 기본값과 사용 가능한 열거 값은 model 매개변수에 따라 다르며, 구체적인 규칙은 [공식 문서](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2865250)를 참조하십시오.
* `duration`: 비디오 생성의 길이로, 주로 5, 10, 15를 지원합니다.
* `shot_type`: 선택 사항으로, 생성할 비디오의 촬영 유형을 지정합니다. 즉, 비디오가 하나의 연속 촬영으로 구성될지 여러 개의 전환 촬영으로 구성될지를 결정합니다. 유효 조건: "prompt\_extend": true일 때만 유효합니다. 매개변수 우선 순위: shot\_type > prompt. 예를 들어, shot\_type이 "single"로 설정되면, prompt에 "다중 촬영 비디오 생성"이 포함되어 있더라도 모델은 단일 촬영 비디오를 출력합니다. 구체적인 규칙은 [공식 문서](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2865250)를 참조하십시오.
* `negative_prompt`: 선택 사항으로, 반대 프롬프트로 비디오 화면에서 보고 싶지 않은 내용을 설명하는 데 사용됩니다. 비디오 화면에 대한 제한을 설정할 수 있습니다. 중문과 영문을 지원하며, 길이는 500자 이하로 제한되며, 초과 부분은 자동으로 잘립니다. 예시 값: 저해상도, 오류, 최악의 품질, 저품질, 결함, 여분의 손가락, 비율 불량 등.
* `resolution`: 생성할 비디오 해상도 등급을 지정하여 비디오의 선명도를 조정합니다(총 픽셀). 모델은 선택한 해상도 등급에 따라 자동으로 비슷한 총 픽셀로 조정하며, 비디오의 가로 세로 비율은 입력 이미지 img\_url의 가로 세로 비율과 최대한 일치하도록 유지합니다. 더 많은 설명은 [공식 문서](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2867393)를 참조하십시오.
* `audio_url`: 오디오 파일의 URL로, 모델은 해당 오디오를 사용하여 비디오를 생성합니다. 사용 방법은 [공식 문서](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2867393)를 참조하십시오.
* `audio`: 유성 비디오를 생성할지 여부. 매개변수 우선 순위: audio > audio\_url. audio=false일 경우, audio\_url을 전달하더라도 출력은 여전히 무성 비디오로, 요금은 무성 비디오 기준으로 계산됩니다. 기본값은 true입니다.
* `prompt_extend`: prompt 스마트 재작성 여부. 활성화하면 대형 모델이 입력된 prompt를 스마트하게 재작성합니다. 짧은 prompt의 경우 생성 효과가 뚜렷하게 향상되지만, 소요 시간이 증가합니다. 기본값은 true입니다.
* `prompt`: 프롬프트.
* `callback_url`: 결과를 회신받을 URL입니다.

선택 후, 오른쪽에서도 해당 코드가 생성된 것을 확인할 수 있습니다, 아래 그림과 같이:

<p>
  <img src="https://cdn.xhuoapi.ai/03gqdz.png" width="500" className="m-auto" />
</p>

"Try" 버튼을 클릭하면 테스트를 진행할 수 있으며, 위 그림과 같이 다음과 같은 결과를 얻을 수 있습니다:

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

반환 결과는 여러 필드를 포함하며, 설명은 다음과 같습니다:

* `success`: 현재 비디오 생성 작업의 상태입니다.
* `task_id`: 현재 비디오 생성 작업 ID입니다.
* `video_url`: 현재 비디오 생성 작업의 비디오 링크입니다.
* `state`: 현재 비디오 생성 작업의 상태입니다.

우리는 만족스러운 비디오 정보를 얻었으며, 결과에서 `video_url`의 비디오 링크 주소를 통해 생성된 통의 만상 비디오를 얻을 수 있습니다.

또한, 해당 연동 코드를 생성하고 싶다면 직접 복사하여 생성할 수 있습니다. 예를 들어 CURL의 코드는 다음과 같습니다:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/wan/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "wan2.6-t2v",
  "prompt": "우주에서 화산으로 셔틀을 타고 가는 우주비행사",
  "duration": 5
}'
```

## 그림생 비디오 기능

만약 참고 이미지나 참고 비디오를 기반으로 비디오를 생성하고 싶다면, 매개변수 `action`을 `image2video`로 설정하고, 참고 이미지 링크나 참고 비디오 링크를 입력해야 합니다. 다음 단계에서는 비디오 생성을 위해 확장할 프롬프트를 입력해야 하며, 다음과 같은 내용을 지정할 수 있습니다:

* `model`：비디오 생성을 위한 모델로, 주로 `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v` 모델이 있습니다.
* `image_url`：비디오 생성을 위한 `image2video` 행동을 선택할 경우, 업로드해야 하는 첫 번째 프레임 참고 이미지 링크로, 현재는 `wan2.6-i2v`, `wan2.6-i2v-flash` 모델만 지원합니다.
* `reference_video_urls`：비디오 생성을 위한 선택 사항으로, 참고 비디오 링크를 지정할 수 있으며, 현재는 `wan2.6-r2v` 모델만 지원합니다.
* `prompt`：프롬프트.

입력 예시는 다음과 같습니다:

<p>
  <img src="https://cdn.xhuoapi.ai/94l0kk.png" width="500" className="m-auto" />
</p>

입력이 완료되면 자동으로 생성된 코드는 다음과 같습니다:

<p>
  <img src="https://cdn.xhuoapi.ai/b5q8tt.png" width="500" className="m-auto" />
</p>

해당 Python 코드:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/wan/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "image2video",
    "model": "wan2.6-i2v",
    "prompt": "Astronauts shuttle from space to volcano",
    "duration": 5,
    "image_url": "https://cdn.xhuoapi.ai/r9vsv9.png",
    "callback_url": "https://www.baidu.com/"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

실행 버튼을 클릭하면 다음과 같은 결과를 얻을 수 있습니다:

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

결과 내용이 위와 일치하는 것을 확인할 수 있으며, 이는 비디오 확장 기능을 구현한 것입니다.

## 비동기 콜백

Wan Videos Generation API의 생성 시간은 상대적으로 길어 약 1-2분이 소요됩니다. API가 오랜 시간 응답하지 않으면 HTTP 요청이 연결을 유지하여 추가 시스템 자원 소모를 초래할 수 있으므로, 이 API는 비동기 콜백 지원도 제공합니다.

전체 프로세스는 다음과 같습니다: 클라이언트가 요청을 시작할 때 추가로 `callback_url` 필드를 지정하고, 클라이언트가 API 요청을 시작한 후 API는 즉시 결과를 반환하며, 여기에는 현재 작업 ID를 나타내는 `task_id` 필드 정보가 포함됩니다. 작업이 완료되면 생성된 비디오 결과가 POST JSON 형식으로 클라이언트가 지정한 `callback_url`로 전송되며, 여기에도 `task_id` 필드가 포함되어 있어 작업 결과를 ID로 연결할 수 있습니다.

아래 예제를 통해 구체적인 작업 방법을 알아보겠습니다.

먼저, Webhook 콜백은 HTTP 요청을 수신할 수 있는 서비스로, 개발자는 자신이 구축한 HTTP 서버의 URL로 교체해야 합니다. 여기서는 편리한 시연을 위해 공개 Webhook 샘플 사이트인 [https://webhook.site/를](https://webhook.site/를) 사용합니다. 해당 사이트를 열면 Webhook URL을 얻을 수 있으며, 아래와 같이 표시됩니다:

![](https://cdn.xhuoapi.ai/tbcnai.png)

이 URL을 복사하여 Webhook으로 사용할 수 있으며, 여기서의 샘플은 `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3`입니다.

다음으로, `callback_url` 필드를 위의 Webhook URL로 설정하고, 해당 매개변수를 입력합니다. 구체적인 내용은 아래와 같습니다:

<p>
  <img src="https://cdn.xhuoapi.ai/vdx12s.png" width="500" className="m-auto" />
</p>

실행 버튼을 클릭하면 즉시 다음과 같은 결과를 얻을 수 있습니다:

```
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

잠시 후, `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3`에서 생성된 비디오 결과를 확인할 수 있습니다. 아래와 같이 표시됩니다:

![](https://cdn.xhuoapi.ai/zv5u2q.png)

내용은 다음과 같습니다:

```json theme={null}
{
  "success": true,
  "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/1d/db/20260124/da477ba2/0d2042f9-ba8d-496d-8ab5-182617e28f9e.mp4?Expires=1769349278&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=SjBa4wRcDVx3SSYu/x7BYCFQk0s=",
  "state": "completed",
  "task_id": "a4bca552-d964-46a1-8ff7-fd922f916582"
}
```

결과에 `task_id` 필드가 포함되어 있으며, 다른 필드는 위와 유사합니다. 이 필드를 통해 작업을 연결할 수 있습니다.

## 오류 처리

API를 호출할 때 오류가 발생하면, API는 해당 오류 코드와 정보를 반환합니다. 예를 들어:

* `400 token_mismatched`：잘못된 요청, 누락되거나 잘못된 매개변수 때문일 수 있습니다.
* `400 api_not_implemented`：잘못된 요청, 누락되거나 잘못된 매개변수 때문일 수 있습니다.
* `401 invalid_token`：권한 없음, 잘못되었거나 누락된 인증 토큰입니다.
* `429 too_many_requests`：요청이 너무 많음, 비율 제한을 초과했습니다.
* `500 api_error`：내부 서버 오류, 서버에서 문제가 발생했습니다.

### 오류 응답 예시

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## 결론

이 문서를 통해 Wan Videos Generation API를 사용하여 입력 프롬프트와 첫 번째 프레임 참고 이미지를 통해 비디오를 생성하는 방법을 이해하셨습니다. 이 문서가 API를 더 잘 연결하고 사용하는 데 도움이 되기를 바랍니다. 질문이 있으시면 언제든지 기술 지원 팀에 문의해 주시기 바랍니다.
