Zum Hauptinhalt springen
Dieser Artikel beschreibt eine Integrationsanleitung für die Wan Videos Generation API, die es ermöglicht, offizielle Videos von Tongyi Wanxiang durch Eingabe benutzerdefinierter Parameter zu generieren.

Antragsprozess

Um die API zu nutzen, müssen Sie zunächst auf die entsprechende Seite der Wan Videos Generation API gehen und den entsprechenden Dienst beantragen. Nach dem Betreten der Seite klicken Sie auf die Schaltfläche „Acquire“, wie im Bild gezeigt: Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach der Anmeldung werden Sie automatisch zur aktuellen Seite zurückgeleitet. Bei der ersten Antragstellung gibt es ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

Grundlegende Nutzung

Zunächst sollten Sie die grundlegende Nutzung verstehen, indem Sie die Eingabeaufforderung prompt, die Generierungsaktion action, das Referenzbild der ersten Frame image_url sowie das Modell model eingeben, um das verarbeitete Ergebnis zu erhalten. Zuerst müssen Sie ein einfaches action-Feld übergeben, dessen Wert text2video ist. Es umfasst hauptsächlich zwei Arten von Aktionen: Text-zu-Video (text2video) und Bild-zu-Video (image2video). Dann müssen wir auch das Modell model eingeben, das derzeit hauptsächlich die Modelle wan2.6-i2v, wan2.6-r2v, wan2.6-i2v-flash, wan2.6-t2v umfasst. Die spezifischen Inhalte sind wie folgt:

Hier sehen wir, dass wir die Request-Header festgelegt haben, einschließlich:
  • accept: In welchem Format Sie die Antwort erhalten möchten, hier eingetragen als application/json, also im JSON-Format.
  • authorization: Der Schlüssel zur Nutzung der API, den Sie nach der Beantragung direkt auswählen können.
Zusätzlich haben wir den Request-Body festgelegt, einschließlich:
  • model: Das Modell zur Generierung des Videos, hauptsächlich wan2.6-i2v, wan2.6-r2v, wan2.6-i2v-flash, wan2.6-t2v.
  • action: Die Aktion dieser Videoerzeugungsaufgabe, die hauptsächlich drei Arten umfasst: Text-zu-Video (text2video), Bild-zu-Video (image2video). Bei Text-zu-Video wird derzeit nur das Modell wan2.6-t2v unterstützt, bei Bild-zu-Video werden derzeit nur die Modelle wan2.6-i2v, wan2.6-r2v, wan2.6-i2v-flash unterstützt.
  • image_url: Wenn die Aktion Bild-zu-Video (image2video) gewählt wird, muss der Link zum Referenzbild der ersten Frame hochgeladen werden. Derzeit werden nur die Modelle wan2.6-i2v, wan2.6-i2v-flash unterstützt.
  • reference_video_urls: Optional bei Bild-zu-Video, um die Referenzvideo-Links zur Generierung anzugeben. Derzeit wird nur das Modell wan2.6-r2v unterstützt.
  • size: Gibt die Auflösung des generierten Videos an, im Format Breite*Höhe. Der Standardwert und die verfügbaren Enumerationswerte hängen vom Modellparameter ab. Die spezifischen Regeln können in der offiziellen Dokumentation nachgelesen werden.
  • duration: Die Dauer der Videoerzeugung, hauptsächlich 5, 10, 15.
  • shot_type: Optional, um den Typ der Videoaufnahme anzugeben, d.h. ob das Video aus einer kontinuierlichen Aufnahme oder mehreren wechselnden Aufnahmen besteht. Gültigkeitsbedingungen: Wirksam nur, wenn “prompt_extend”: true ist. Priorität der Parameter: shot_type > prompt. Zum Beispiel, wenn shot_type auf “single” gesetzt ist, wird das Modell auch dann ein Einzelbildvideo ausgeben, wenn im prompt „generiere ein Mehrbildvideo“ enthalten ist. Die spezifischen Regeln können in der offiziellen Dokumentation nachgelesen werden.
  • negative_prompt: Optional, um unerwünschte Inhalte im Video zu beschreiben. Unterstützt Chinesisch und Englisch, die Länge darf 500 Zeichen nicht überschreiten, der übersteigende Teil wird automatisch abgeschnitten. Beispielwerte: niedrige Auflösung, Fehler, schlechteste Qualität, niedrige Qualität, Mängel, überflüssige Finger, schlechte Proportionen usw.
  • resolution: Gibt die Auflösungsstufe des generierten Videos an, um die Klarheit des Videos (insgesamt Pixel) anzupassen. Das Modell skaliert automatisch auf eine ähnliche Gesamtpixelanzahl basierend auf der gewählten Auflösungsstufe, das Seitenverhältnis des Videos wird bestmöglich mit dem Seitenverhältnis des eingegebenen Bildes img_url übereinstimmen. Weitere Erklärungen finden Sie in der offiziellen Dokumentation.
  • audio_url: URL der Audiodatei, das Modell wird diese Audio verwenden, um das Video zu generieren. Die Verwendung wird in der offiziellen Dokumentation beschrieben.
  • audio: Ob ein Video mit Ton generiert werden soll. Priorität der Parameter: audio > audio_url. Wenn audio=false ist, wird das Video auch dann stumm sein, wenn audio_url übergeben wird, und die Abrechnung erfolgt nach stummen Videos, der Standardwert ist true.
  • prompt_extend: Ob die intelligente Umschreibung von prompts aktiviert werden soll. Wenn aktiviert, wird ein großes Modell verwendet, um die Eingabeaufforderung intelligent umzuschreiben. Bei kürzeren prompts ist die Verbesserung der Ergebnisse deutlich, es erhöht jedoch die Bearbeitungszeit, der Standardwert ist true.
  • prompt: Eingabeaufforderung.
  • callback_url: Die URL, an die die Ergebnisse zurückgegeben werden sollen.
Nach der Auswahl können Sie auf der rechten Seite den entsprechenden Code generieren sehen, wie im Bild gezeigt:

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen, wie im obigen Bild gezeigt, und wir erhalten folgendes Ergebnis:
{
  "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"
}
Die Rückgabe enthält mehrere Felder, die wie folgt beschrieben werden:
  • success, der Status der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • task_id, die ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • video_url, der Link zum Video der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • state, der Status der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
Wir sehen, dass wir die gewünschten Videoinformationen erhalten haben, und wir müssen nur die Video-URL aus dem Ergebnis abrufen, um das generierte Tongyi Wanxiang-Video zu erhalten. Wenn Sie den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel der CURL-Code ist wie folgt:
curl -X POST 'https://api.acedata.cloud/wan/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "wan2.6-t2v",
  "prompt": "Astronauten fliegen vom Weltraum zu einem Vulkan",
  "duration": 5
}'

Bild-zu-Video-Funktion

如果 Sie möchten, dass ein Video basierend auf einem Referenzbild oder einem Referenzvideo generiert wird, können Sie den Parameter action auf image2video setzen und die Links zum Referenzbild oder Referenzvideo eingeben. Anschließend müssen wir die nächsten Schritte ausfüllen, um die Eingabeaufforderungen zur Anpassung des generierten Videos zu definieren. Sie können die folgenden Inhalte angeben:
  • model:Das Modell zur Generierung des Videos, hauptsächlich wan2.6-i2v, wan2.6-r2v, wan2.6-i2v-flash, wan2.6-t2v Modelle.
  • image_url:Wenn die Videoerstellung durch Bildverwendung image2video gewählt wird, muss der Link zum Referenzbild der ersten Frame hochgeladen werden. Derzeit werden nur die Modelle wan2.6-i2v, wan2.6-i2v-flash unterstützt.
  • reference_video_urls:Optional bei der Videoerstellung durch Bild, um den Link zum Referenzvideo anzugeben. Derzeit wird nur das Modell wan2.6-r2v unterstützt.
  • prompt:Eingabeaufforderung.
Ein Beispiel für die Eingabe sieht wie folgt aus:

Nach dem Ausfüllen wird automatisch der folgende Code generiert:

Entsprechender Python-Code:
import requests

url = "https://api.acedata.cloud/wan/videos"

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

payload = {
    "action": "image2video",
    "model": "wan2.6-i2v",
    "prompt": "Astronauten fliegen vom Weltraum zum Vulkan",
    "duration": 5,
    "image_url": "https://cdn.acedata.cloud/r9vsv9.png",
    "callback_url": "https://www.baidu.com/"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Wenn Sie auf Ausführen klicken, können Sie ein Ergebnis wie folgt erhalten:
{
  "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"
}
Es ist zu erkennen, dass der Inhalt des Ergebnisses mit dem oben genannten übereinstimmt, was die Funktion zur Erweiterung des Videos ermöglicht.

Asynchrone Rückrufe

Da die von der Wan Videos Generation API generierte Zeit relativ lang ist, etwa 1-2 Minuten, bleibt die HTTP-Anfrage bei langer Nichtreaktion des API verbunden, was zu einem zusätzlichen Verbrauch von Systemressourcen führt. Daher bietet diese API auch Unterstützung für asynchrone Rückrufe. Der gesamte Prozess ist: Wenn der Client die Anfrage stellt, gibt er zusätzlich ein Feld callback_url an. Nachdem der Client die API-Anfrage gestellt hat, gibt die API sofort ein Ergebnis zurück, das ein Feld task_id enthält, das die aktuelle Aufgaben-ID darstellt. Wenn die Aufgabe abgeschlossen ist, wird das Ergebnis der Videoerstellung in Form von POST JSON an die vom Client angegebene callback_url gesendet, wobei auch das Feld task_id enthalten ist, sodass die Aufgabenresultate über die ID verknüpft werden können. Lassen Sie uns anhand eines Beispiels verstehen, wie dies konkret funktioniert. Zunächst ist der Webhook-Rückruf ein Dienst, der HTTP-Anfragen empfangen kann. Entwickler sollten ihn durch die URL ihres eigenen HTTP-Servers ersetzen. Hier verwenden wir zur Demonstration eine öffentliche Webhook-Beispielwebsite https://webhook.site/, auf der Sie eine Webhook-URL erhalten können, wie im Bild gezeigt: Kopieren Sie diese URL, um sie als Webhook zu verwenden. Das Beispiel hier lautet https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3. Anschließend können wir das Feld callback_url auf die oben genannte Webhook-URL setzen und die entsprechenden Parameter ausfüllen, wie im Bild gezeigt:

Wenn Sie auf Ausführen klicken, erhalten Sie sofort ein Ergebnis wie folgt:
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
Nach kurzer Wartezeit können wir das Ergebnis der Videoerstellung unter https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3 beobachten, wie im Bild gezeigt: Der Inhalt lautet:
{
  "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"
}
Es ist zu sehen, dass das Ergebnis ein Feld task_id enthält, und die anderen Felder sind ähnlich wie oben, sodass die Aufgabenverknüpfung über dieses Feld erfolgen kann.

Fehlerbehandlung

Wenn beim Aufruf der API ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:
  • 400 token_mismatched:Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 400 api_not_implemented:Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 401 invalid_token:Unbefugt, ungültiger oder fehlender Autorisierungstoken.
  • 429 too_many_requests:Zu viele Anfragen, Sie haben das Rate-Limit überschritten.
  • 500 api_error:Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

Beispiel für eine Fehlerantwort

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "Abruf fehlgeschlagen"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die Wan Videos Generation API verwenden können, um Videos durch Eingabe von Eingabeaufforderungen und einem Referenzbild der ersten Frame zu generieren. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu verwenden. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.