Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Référence de l'API Video Style Transform

Dernière mise à jour :Oct 11, 2026

Transformez vos vidéos en styles artistiques tout en préservant la fluidité des mouvements et la cohérence du contenu. Huit styles sont disponibles : manga japonais, bande dessinée américaine, bande dessinée fraîche, dessin animé 3D, dessin animé chinois, art du papier, illustration simple et peinture à l'encre chinoise.

ImportantCe service de modèle est disponible uniquement dans la région China (Beijing). Vous devez utiliser une clé API de cette région pour appeler l'API.

Démonstration des performances

**Vidéo d'entrée****Vidéo de sortie (manga japonais)**
%E5%8E%9F%E8%A7%86%E9%A2%91.mp4input_00002_%E6%BC%AB%E7%94%BBV4_00001.mp4

Pour plus d'exemples, consultez la section Annexe : Autres démonstrations d'effets de style.

Prérequis

Avant d'appeler l'API, suivez les étapes ci-dessous :

  1. Obtenir une clé API dans la région China (Beijing).
  2. Définir la clé API comme variable d'environnement.

Fonctionnement

Le traitement vidéo étant long, l'API utilise une invocation asynchrone pour éviter les délais d'expiration. Le flux de travail est le suivant :

  1. Soumission d'une tâche : envoyez une requête POST contenant l'URL de la vidéo et les paramètres de style. L'API renvoie un identifiant unique task_id.
  2. Interrogation des résultats : utilisez le task_id pour vérifier l'état via des requêtes GET. Une fois la tâche terminée avec succès, la réponse inclut l'URL de la vidéo transformée.

Exigences relatives à la vidéo d'entrée

Votre vidéo d'entrée doit respecter les exigences suivantes :

ContrainteExigence
RésolutionChaque côté doit mesurer entre 256 et 4 096 pixels. Le rapport hauteur/largeur (côté long/côté court) ne peut pas dépasser 1,8.
FormatMP4, AVI, MKV, MOV, FLV, TS, MPG et MXF
Durée30 secondes maximum
Taille du fichier100 Mo maximum
Encodage URLEncodez les URL de vidéo contenant des caractères non ASCII (par exemple, des caractères chinois).

Styles pris en charge

Code de styleNom du styleNotes
0Manga japonaisPar défaut
1Bande dessinée américaine
2Bande dessinée fraîche
3Dessin animé 3D
4Dessin animé chinoisIdéal pour les entrées comportant des costumes anciens
5Style art du papier
6Illustration simple
7Peinture à l'encre chinoise

Étape 1 : Soumettre une tâche de transformation de style vidéo

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

En-têtes de requête

En-têteTypeObligatoireDescription
Content-TypestringOuiType de contenu. Définissez cette valeur sur application/json.
AuthorizationstringOuiClé API pour l'authentification. Format : Bearer sk-xxxx (clé API Model Studio).
X-DashScope-AsyncstringOuiActive le traitement asynchrone. Cette valeur doit être définie sur enable. Les requêtes HTTP ne prennent en charge que le traitement asynchrone. Si cet en-tête est absent, l'API renvoie l'erreur : « current user api does not support synchronous calls ».

Corps de la requête

ParamètreTypeObligatoireDescription
modelstringOuiNom du modèle. Définissez cette valeur sur video-style-transform.
inputobjectOuiContenu d'entrée. Consultez la section paramètres input.
parametersobjectNonParamètres de traitement vidéo. Consultez la section parameters.

Paramètres input

ParamètreTypeObligatoireDescription
video_urlstringOuiURL publique de la vidéo d'entrée. Exemple : https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4. La vidéo doit respecter les exigences relatives à la vidéo d'entrée.

Paramètres parameters

ParamètreTypeObligatoireValeur par défautDescription
styleintNon0Type de style. Valeurs valides : 0-7. Consultez la section Styles pris en charge pour obtenir la liste complète.
video_fpsintNon15Fréquence d'images (images par seconde, FPS) de la vidéo de sortie. Plage valide : [15, 25].
animate_emotionboolNontrueIndique s'il faut optimiser les expressions faciales. L'activation de cette option améliore généralement la synchronisation labiale et des expressions. Pour les petites zones faciales, la désactivation peut améliorer les résultats.
min_lenintNon720Nombre de pixels du côté le plus court de la vidéo de sortie, déterminant la résolution. Valeurs valides : 720 et 540. Ce paramètre influence la facturation : une vidéo 720p coûte plus cher qu'une vidéo 540p. Pour plus de détails, consultez la section Facturation et limites de taux.
use_SRboolNonfalseIndique s'il faut appliquer un traitement de super-résolution (SR) après la transformation de style. Améliore la qualité vidéo sans coût supplémentaire. Si vous définissez min_len sur 540 avec SR activé, la sortie passe en 1080p tout en étant facturée au tarif 540p. Cela augmente le temps de traitement et est recommandé pour une sortie de haute qualité.

Exemples de requêtes

Générer une vidéo 720p

curl
curl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "video-style-transform",
    "input": {
        "video_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4"
    },
    "parameters": {
        "style": 0,
        "video_fps": 15
    }
}'
Python
import requests
import os

DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
# Replace this with your video URL
video_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4"

response = requests.post(
            "https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis",
            headers={
                "Authorization": f"Bearer {DASHSCOPE_API_KEY}",
                "X-DashScope-Async": "enable",
            },
            json={
            "model": "video-style-transform",
            "input": {
                "video_url": video_url
            },
            "parameters": {
                "style": 0,
                "video_fps": 15
            }
        }
        )
print(response.json())

Générer une vidéo 540p

curl
curl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "video-style-transform",
    "input": {
        "video_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4"
    },
    "parameters": {
        "style": 0,
        "video_fps": 15,
        "min_len": 540
    }
}'
Python
import requests
import os

DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
# Replace this with your video URL
video_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4"

response = requests.post(
            "https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis",
            headers={
                "Authorization": f"Bearer {DASHSCOPE_API_KEY}",
                "X-DashScope-Async": "enable",
            },
            json={
            "model": "video-style-transform",
            "input": {
                "video_url": video_url
            },
            "parameters": {
                "style": 0,
                "video_fps": 15,
                "min_len": 540
            }
        }
        )
print(response.json())

Réponse

Réponse réussie

{
    "output": {
        "task_id": "xxxxxxxx",
        "task_status": "PENDING"
    },
    "request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51"
}

Réponse d'erreur

{
    "code": "InvalidApiKey",
    "message": "Invalid API-key provided.",
    "request_id": "fb53c4ec-1c12-4fc4-a580-xxxxxxxxxxxx"
}

Paramètres de réponse

ParamètreTypeDescription
outputobjectInformations de sortie de la tâche.
output.task_idstringIdentifiant unique de la tâche asynchrone. Utilisez cet ID pour interroger l'état et les résultats de la tâche.
output.task_statusstringÉtat de la tâche. Valeurs possibles : PENDING, RUNNING, SUSPENDED, SUCCEEDED, FAILED.
request_idstringIdentifiant unique de la requête. Utilisez cet ID pour tracer et résoudre les problèmes.
codestringCode d'erreur. Renvoyé uniquement en cas d'échec de la requête. Pour plus de détails, consultez la section Messages d'erreur.
messagestringDétails de l'erreur. Renvoyé uniquement en cas d'échec de la requête. Pour plus de détails, consultez la section Messages d'erreur.

Étape 2 : Interroger l'état et le résultat de la tâche

GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}

ImportantLes données de résultat de la tâche (état et URL de la vidéo) sont valides pendant 24 heures, puis automatiquement supprimées. Interrogez et enregistrez les résultats rapidement.

En-têtes de requête

En-têteTypeObligatoireDescription
AuthorizationstringOuiClé API pour l'authentification. Format : Bearer sk-xxxx (clé API Model Studio).

Paramètres de chemin

ParamètreTypeObligatoireDescription
task_idstringOuiIdentifiant de tâche renvoyé à l'étape 1.

Exemples de requêtes

Remplacez {task_id} par le véritable task_id obtenu dans la réponse de soumission de la tâche.

curl
curl -X GET \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
Python
import requests
import os

DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
# Replace task_id with your task_id
task_id = "0c9c33e6-b2e7-41e5-*********"

task_response = requests.get(
        f"https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}",
        headers={
            "Authorization": f"Bearer {DASHSCOPE_API_KEY}"
        })
print(task_response.json())

Réponse

Tâche réussie

{
    "request_id": "b67df059-ca6a-9d51-afcd-xxxxxxxxxxxx",
    "output": {
        "task_id": "d76ec1e8-ea27-4038-8913-xxxxxxxxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2024-05-16 13:50:01.247",
        "scheduled_time": "2024-05-16 13:50:01.354",
        "end_time": "2024-05-16 13:50:27.795",
        "output_video_url": "http://xxx/result.mp4"
    },
    "usage": {
        "duration": 3,
        "SR": 720
    }
}

Tâche en cours d'exécution

Les tâches soumises sont mises en file d'attente puis planifiées. L'état passe à RUNNING lors de la planification.

{
    "request_id": "e5d70b02-ebd3-98ce-9fe8-xxxxxxxxxxxx",
    "output": {
        "task_id": "13b1848b-5493-4c0e-xxxxxxxxxxxx",
        "task_status": "RUNNING",
        "submit_time": "2025-09-08 15:53:13.143",
        "scheduled_time": "2025-09-08 15:53:13.169"
    }
}

Échec de la tâche

{
    "request_id": "dccfdf23-b38e-97a6-a07b-xxxxxxxxxxxx",
    "output": {
        "task_id": "4cbabbdf-2c1f-43f4-b983-xxxxxxxxxxxx",
        "task_status": "FAILED",
        "submit_time": "2024-05-16 14:15:14.103",
        "scheduled_time": "2024-05-16 14:15:14.154",
        "end_time": "2024-05-16 14:15:14.694",
        "code": "InvalidParameter.FileDownload",
        "message": "download for input video error"
    }
}

Paramètres de réponse

ParamètreTypeDescription
request_idstringIdentifiant unique de la requête. Utilisez cet ID pour tracer et résoudre les problèmes.
outputobjectInformations de sortie de la tâche.
output.task_idstringIdentifiant de la tâche. Valide pendant 24 heures.
output.task_statusstringÉtat de la tâche. Valeurs possibles : PENDING, RUNNING, SUSPENDED, SUCCEEDED, FAILED, UNKNOWN.
output.submit_timestringHeure de soumission de la tâche. Fuseau horaire UTC+8. Format : YYYY-MM-DD HH:mm:ss.SSS.
output.scheduled_timestringHeure de début d'exécution de la tâche. Fuseau horaire UTC+8. Format : YYYY-MM-DD HH:mm:ss.SSS.
output.end_timestringHeure de fin de la tâche. Fuseau horaire UTC+8. Format : YYYY-MM-DD HH:mm:ss.SSS.
output.output_video_urlstringURL de la vidéo transformée. Renvoyée uniquement lorsque task_status est SUCCEEDED. Exemple : http://xxx/result.mp4.
output.codestringCode d'erreur. Renvoyé uniquement lorsque task_status est FAILED. Pour plus de détails, consultez la section Messages d'erreur.
output.messagestringDétails de l'erreur. Renvoyé uniquement lorsque task_status est FAILED. Pour plus de détails, consultez la section Messages d'erreur.
usageobjectStatistiques d'utilisation de la tâche. Renvoyées uniquement lorsque task_status est SUCCEEDED.
usage.durationfloatDurée de la vidéo générée, en secondes.
usage.SRintValeur en pixels du côté le plus court de la vidéo, utilisée pour la facturation. Cette valeur correspond à la valeur min_len définie dans la requête.

Facturation et limites de taux

Seules les tâches réussies sont facturées. Les frais sont calculés en fonction de la durée de la vidéo de sortie (en secondes) et de la résolution sélectionnée.

Formule de facturation : Frais totaux = Durée de la vidéo de sortie (secondes) x Prix unitaire pour la résolution correspondante

Les frais finaux sont calculés à partir des champs duration et SR de l'objet usage.

Tarifs

ModèleRésolutionPrix unitaire
video-style-transform720p0,071677 $/seconde
video-style-transform540p0,028671 $/seconde

Limites de taux

Les limites de taux sont partagées entre les comptes et les utilisateurs RAM.

Type de limiteValeur
Requêtes par seconde (QPS) pour l'API de soumission de tâches2
Tâches simultanées1

Exemple de facturation

Exemple : soumettez une vidéo de 10 secondes avec une résolution de 720p. Si la tâche réussit, les frais s'élèvent à : 10 secondes × 0,071677 $/seconde = 0,71677 $.

Codes d'erreur

Si l'appel du modèle échoue et renvoie un message d'erreur, consultez la section Codes d'erreur pour obtenir une solution.

Annexe : Autres démonstrations d'effets de style

Nom du styleVidéo originaleVidéo transformée
Manga japonais (style=0)%E5%8E%9F%E8%A7%86%E9%A2%91.mp4input_00002_%E6%BC%AB%E7%94%BBV4_00001.mp4
Bande dessinée américaine (style=1)car_%E5%8E%9F%E5%9B%BE.mp4car_style_1.mp4
Bande dessinée fraîche (style=2)%E6%8C%A5%E6%89%8B_%E5%8E%9F%E5%9B%BE.mp4%E6%8C%A5%E6%89%8B_style_2.mp4
Dessin animé 3D (style=3)%E9%87%8E%E9%A4%90_%E5%8E%9F%E5%9B%BE.mp4%E9%87%8E%E9%A4%90_style_3.mp4
Dessin animé chinois (style=4)%E5%BC%B9%E7%90%B4_%E5%8E%9F%E5%9B%BE.mp4%E5%BC%B9%E7%90%B4_style_4.mp4
Style art du papier (style=5)%E7%94%9F%E6%88%90_%E6%B1%BD%E8%BD%A6.mp4%E6%B1%BD%E8%BD%A6%E8%8D%89%E5%8E%9F_%E7%BA%B8%E8%89%BA%E9%A3%8E%E6%A0%BC.mp4
Illustration simple (style=6)%E6%A1%8C%E9%9D%A2_%E5%8E%9F%E5%9B%BE.mp4%E6%A1%8C%E9%9D%A2_style_6.mp4
Peinture à l'encre chinoise (style=7)%E5%8F%A4%E9%95%87_%E5%8E%9F%E5%9B%BE.mp4%E5%8F%A4%E9%95%87_style_7.mp4

.inline-code___exakR {

font-family: monospace;

background-color: #f5f5f5;

padding: 2px 4px;

border-radius: 3px;

}