> ## 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 Integracja Opis

> Tongyi Wansiang Video Generation 集成指南 - XHuoAPI

Ten dokument przedstawi sposób integracji z Wan Videos Generation API, które umożliwia generowanie oficjalnych filmów Tongyi Wanxiang poprzez wprowadzenie niestandardowych parametrów.

## Proces aplikacji

Aby skorzystać z API, należy najpierw przejść do strony [Wan Videos Generation API](https://api.xhuoapi.ai/documents/52b0f490-1bbf-4fe5-b60e-96626d333d2c) i złożyć wniosek o odpowiednią usługę. Po wejściu na stronę, kliknij przycisk „Acquire”, jak pokazano na obrazku:

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

Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować. Po zalogowaniu lub rejestracji automatycznie wrócisz na bieżącą stronę.

Podczas pierwszej aplikacji otrzymasz darmowy limit, który pozwala na bezpłatne korzystanie z tego API.

## Podstawowe użycie

Najpierw zapoznaj się z podstawowym sposobem użycia, czyli wprowadzeniem słowa kluczowego `prompt`, działania `action`, linku do obrazu referencyjnego `image_url` oraz modelu `model`, aby uzyskać przetworzony wynik. Najpierw musisz przekazać pole `action`, którego wartość to `text2video`. Zawiera ono dwa rodzaje działań: generowanie wideo z tekstu (`text2video`) oraz generowanie wideo z obrazu (`image2video`). Następnie musimy wprowadzić model `model`, który obecnie obejmuje modele `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v`, szczegóły są następujące:

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

Możemy zobaczyć, że ustawiliśmy nagłówki żądania, w tym:

* `accept`: jakiego formatu odpowiedzi oczekujesz, tutaj wpisz `application/json`, czyli format JSON.
* `authorization`: klucz do wywołania API, po złożeniu wniosku można go bezpośrednio wybrać z rozwijanej listy.

Dodatkowo ustawiono ciało żądania, w tym:

* `model`: model do generowania wideo, głównie `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v`.
* `action`: działanie związane z generowaniem wideo, głównie obejmujące trzy rodzaje działań: generowanie wideo z tekstu (`text2video`), generowanie wideo z obrazu (`image2video`). W przypadku generowania wideo z tekstu obecnie obsługiwany jest tylko model `wan2.6-t2v`, a w przypadku generowania wideo z obrazu obsługiwane są modele `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`.
* `image_url`: w przypadku wyboru działania generowania wideo z obrazu `image2video` konieczne jest przesłanie linku do obrazu referencyjnego, obecnie obsługiwane są modele `wan2.6-i2v`, `wan2.6-i2v-flash`.
* `reference_video_urls`: opcjonalne w przypadku generowania wideo z obrazu, określa linki do referencyjnych filmów do generacji, obecnie obsługiwany jest model `wan2.6-r2v`.
* `size`: określa rozdzielczość generowanego wideo, format to szerokość\*wysokość. Domyślna wartość tego parametru oraz dostępne wartości enum zależą od parametru modelu, szczegółowe zasady można znaleźć w [dokumentacji](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2865250).
* `duration`: czas trwania generowanego wideo, głównie obsługiwane wartości to 5, 10, 15.
* `shot_type`: opcjonalne, określa typ ujęcia generowanego wideo, czyli czy wideo składa się z jednego ciągłego ujęcia, czy z wielu przełączających się ujęć. Warunki działania: działa tylko wtedy, gdy "prompt\_extend": true. Priorytet parametrów: shot\_type > prompt. Na przykład, jeśli shot\_type jest ustawione na "single", nawet jeśli prompt zawiera „generuj wideo z wieloma ujęciami”, model nadal wygeneruje wideo z jednym ujęciem, szczegółowe zasady można znaleźć w [dokumentacji](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2865250).
* `negative_prompt`: opcjonalne, odwrotne słowo kluczowe, używane do opisu treści, których nie chcemy widzieć w obrazie wideo, może ograniczać obraz wideo. Obsługuje język chiński i angielski, długość nie przekracza 500 znaków, nadmiar zostanie automatycznie obcięty. Przykładowe wartości: niska rozdzielczość, błędy, najgorsza jakość, niska jakość, uszkodzenia, nadmiarowe palce, złe proporcje itp.
* `resolution`: określa poziom rozdzielczości generowanego wideo, używany do dostosowania ostrości wideo (całkowita liczba pikseli). Model automatycznie skaluje do zbliżonej całkowitej liczby pikseli w zależności od wybranego poziomu rozdzielczości, a proporcje wideo będą starały się zachować zgodność z proporcjami obrazu img\_url, więcej informacji można znaleźć w [dokumentacji](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2867393).
* `audio_url`: URL pliku audio, model użyje tego audio do generowania wideo. Sposób użycia można znaleźć w [dokumentacji](https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=api#/api/?type=model\&url=2867393).
* `audio`: czy generować wideo z dźwiękiem. Priorytet parametrów: audio > audio\_url. Gdy audio=false, nawet jeśli podano audio\_url, wynik nadal będzie wideo bez dźwięku, a opłaty będą naliczane jak za wideo bez dźwięku, domyślna wartość to true.
* `prompt_extend`: czy włączyć inteligentne przekształcanie promptów. Po włączeniu używa dużego modelu do inteligentnego przekształcania wprowadzonego promptu. Dla krótszych promptów efekty generacji są znacznie lepsze, ale zwiększa to czas przetwarzania, domyślna wartość to true.
* `prompt`: słowo kluczowe.
* `callback_url`: URL, na który mają być zwracane wyniki.

Po dokonaniu wyboru, można zauważyć, że po prawej stronie wygenerowano odpowiedni kod, jak pokazano na obrazku:

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

Kliknij przycisk „Try”, aby przeprowadzić test, jak pokazano na powyższym obrazku, otrzymujemy następujący wynik:

```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"
}
```

Wynik zwrotny zawiera wiele pól, które są opisane poniżej:

* `success`, status zadania generowania wideo.
* `task_id`, ID zadania generowania wideo.
* `video_url`, link do wideo wygenerowanego w ramach zadania.
* `state`, status zadania generowania wideo.

Możemy zobaczyć, że otrzymaliśmy zadowalające informacje o wideo, wystarczy, że uzyskamy wygenerowane wideo Tongyi Wanxiang na podstawie adresu linku `video_url` w wyniku.

Dodatkowo, jeśli chcesz wygenerować odpowiedni kod integracyjny, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:

```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": "Astronauts shuttle from space to volcano",
  "duration": 5
}'
```

## Funkcja generowania wideo z obrazu

Jeśli chcesz wygenerować wideo na podstawie obrazu referencyjnego lub wideo referencyjnego, możesz ustawić parametr `action` na `image2video`, a następnie wprowadzić link do obrazu referencyjnego lub link do wideo referencyjnego. Następnie musimy wypełnić kolejne wymagane słowa kluczowe, aby dostosować generowane wideo, co pozwala na określenie następujących treści:

* `model`: model generujący wideo, głównie `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-i2v-flash`, `wan2.6-t2v`.
* `image_url`: gdy wybierasz działanie generowania wideo z obrazu `image2video`, musisz przesłać link do referencyjnego obrazu klatki początkowej, obecnie obsługiwane są tylko modele `wan2.6-i2v`, `wan2.6-i2v-flash`.
* `reference_video_urls`: opcjonalne podczas generowania wideo z obrazu, określa link do referencyjnego wideo, obecnie obsługiwane są tylko modele `wan2.6-r2v`.
* `prompt`: słowa kluczowe.

Przykład wypełnienia wygląda następująco:

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

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

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

Odpowiedni kod 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)
```

Po kliknięciu uruchomienia można zauważyć, że otrzymano wynik jak poniżej:

```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"
}
```

Można zauważyć, że treść wyniku jest zgodna z powyższym, co realizuje funkcję rozszerzenia wideo.

## Asynchroniczny callback

Ponieważ czas generacji API Wan Videos jest stosunkowo długi, wynosi około 1-2 minut, jeśli API nie odpowiada przez dłuższy czas, żądanie HTTP będzie utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych, dlatego to API oferuje również wsparcie dla asynchronicznych callbacków.

Cały proces polega na tym, że gdy klient wysyła żądanie, dodatkowo określa pole `callback_url`. Po wysłaniu żądania API natychmiast zwraca wynik, zawierający pole `task_id`, które reprezentuje bieżące ID zadania. Po zakończeniu zadania wynik generowania wideo zostanie wysłany do określonego przez klienta `callback_url` w formie POST JSON, w tym również pole `task_id`, co pozwala na powiązanie wyników zadania za pomocą ID.

Poniżej przedstawiamy przykład, aby zrozumieć, jak to działa.

Po pierwsze, callback Webhook to usługa, która może odbierać żądania HTTP, deweloperzy powinni zastąpić to URL swojego serwera HTTP. W celu wygodnej demonstracji używamy publicznej strony przykładowej Webhook [https://webhook.site/](https://webhook.site/), otwierając tę stronę można uzyskać URL Webhook, jak pokazano na obrazku:

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

Skopiuj ten URL, aby użyć go jako Webhook, przykładowy URL to `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3`.

Następnie możemy ustawić pole `callback_url` na powyższy URL Webhook, a także wprowadzić odpowiednie parametry, szczegóły jak na obrazku:

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

Po kliknięciu uruchomienia można zauważyć, że natychmiast otrzymano wynik jak poniżej:

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

Po chwili możemy na stronie `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3` zaobserwować wynik generowania wideo, jak pokazano na obrazku:

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

Treść wygląda następująco:

```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"
}
```

Można zauważyć, że wynik zawiera pole `task_id`, a pozostałe pola są podobne do powyższych, dzięki czemu można powiązać zadania za pomocą tego pola.

## Obsługa błędów

Podczas wywoływania API, jeśli wystąpią błędy, API zwróci odpowiedni kod błędu i informacje. Na przykład:

* `400 token_mismatched`: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
* `400 api_not_implemented`: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
* `401 invalid_token`: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacji.
* `429 too_many_requests`: Zbyt wiele żądań, przekroczono limit szybkości.
* `500 api_error`: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

### Przykład odpowiedzi błędu

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

## Wnioski

Dzięki temu dokumentowi zrozumiałeś, jak używać API Wan Videos Generation, aby generować wideo na podstawie wprowadzonych słów kluczowych oraz referencyjnego obrazu klatki początkowej. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, prosimy o kontakt z naszym zespołem wsparcia technicznego.
