Tous les produits
Search
Centre de documentation

Platform For AI:Générer des vidéos longues haute définition avec EasyAnimate

Dernière mise à jour :Aug 25, 2026

EasyAnimate est un framework de génération vidéo développé par Alibaba Cloud PAI, basé sur l'architecture Diffusion Transformer (DiT). Il propose une solution complète pour générer des vidéos haute définition (HD) et longues à partir de texte ou d'images, et inclut des fonctionnalités d'affinage de modèles pour la personnalisation.

Solutions

Solution

Avantages et cas d'utilisation

Facturation

Solution 1 : Générer des vidéos avec DSW

Fournit un environnement de développement intégré (IDE) cloud avec des tutoriels et du code intégrés. Cette solution convient aux utilisateurs souhaitant explorer les modèles en profondeur ou effectuer un développement personnalisé.

Ce tutoriel crée une instance DSW utilisant des ressources publiques, facturée selon le modèle de paiement à l'utilisation. Pour plus d'informations, consultez la rubrique Facturation DSW.

Solution 2 : Générer des vidéos avec Model Gallery

Aucune configuration d'environnement n'est requise. Vous pouvez déployer ou affiner les modèles en un clic, puis les appeler via une WebUI ou une API. Cette solution est idéale pour une validation rapide ou une intégration applicative.

Ce tutoriel crée un service EAS pour le déploiement de modèles et une tâche DLC pour l'affinage de modèles. Les deux utilisent des ressources publiques et sont facturés selon le modèle de paiement à l'utilisation. Pour plus d'informations, consultez les rubriques Facturation DLC et Facturation EAS.

Solution 1 : Générer des vidéos avec DSW

Étape 1 : Créer une instance DSW

  1. Connectez-vous à la console PAI et sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Workspaces, puis recherchez et cliquez sur le nom de votre espace de travail cible.

  2. Dans le volet de navigation de gauche, cliquez sur Model Training > Interactive Modeling (DSW) pour accéder à la page DSW.

  3. Cliquez sur Create instance et configurez les paramètres clés suivants. Laissez les autres paramètres avec leurs valeurs par défaut.

    Paramètre

    Description

    Instance Name

    Exemple : AIGC_test_01.

    Resource Type

    Sélectionnez Public Resources.

    Instance Type

    Sous GPU Specs, sélectionnez ecs.gn7i-c8g1.2xlarge ou un autre type d'instance A10 ou GU100.

    Image

    Sélectionnez Alibaba Cloud Image, puis recherchez et sélectionnez easyanimate:1.1.5-pytorch2.2.0-gpu-py310-cu118-ubuntu22.04.

  4. Cliquez sur OK pour créer l'instance et attendez que le statut de l'instance passe à Running.

Étape 2 : Télécharger le tutoriel et le modèle EasyAnimate

  1. Dans la colonne Actions de l'instance DSW cible, cliquez sur Open pour entrer dans l'environnement de développement.

  2. Dans l'onglet Notebook, ouvrez la page Launcher et cliquez sur DSW Gallery.

  3. Dans DSW Gallery, recherchez AI Video Generation with EasyAnimate (V5). Cliquez sur Open in DSW pour télécharger les ressources requises pour ce tutoriel sur l'instance DSW.

    L'exemple de génération vidéo IA pour EasyAnimate est disponible en plusieurs versions. Ce tutoriel utilise la V5 à titre d'exemple.
  4. Téléchargez et installez le code et le modèle EasyAnimate.

    Dans le fichier de tutoriel EasyAnimate, cliquez sur image pour exécuter séquentiellement les cellules intitulées Function Definition, Download Code et Download Model.

Étape 3 : Lancer la WebUI et générer une vidéo

  1. Cliquez sur image pour exécuter la cellule intitulée Launch UI, ce qui démarre le service WebUI.

  2. Cliquez sur le lien généré pour ouvrir la WebUI.

    !python app.py
    /mnt/workspace/demos/easyanimate_v5_1/EasyAnimate/easyanimate/ui/ui.py:892: GradioUnusedKwargWarning: You have unused kwarg parameters in Video, please remove them: {'sources': 'upload'}
        control_video = gr.Video()
    /usr/local/lib/python3.10/dist-packages/gradio/utils.py:842: UserWarning: Expected 2 arguments for function <function ui.<locals>.upload_generation_method at 0x7fe5b79b79a0>, received 1.
        warnings.warn()
    /usr/local/lib/python3.10/dist-packages/gradio/utils.py:846: UserWarning: Expected at least 2 arguments for function ui.<locals>.upload_generation_method at 0x7fe5b79b79a0>, received 1.
        warnings.warn()
    Running on local URL:  http://0.0.0.0:7860
    IMPORTANT: You are using gradio version 3.41.2, however version 4.44.1 is available, please upgrade.
    --------
    To create a public link, set `share=True` in `launch()`.
  3. Dans la WebUI, sélectionnez le chemin du modèle pré-entraîné et configurez les autres paramètres selon vos besoins.

    Dans la liste déroulante Pretrained Model Path, sélectionnez /mnt/workspace/demos/easyanimate_v5/EasyAnimate/models/Diffusion_Transformer/EasyAnimateV5-12b-zh-InP/.

  4. Cliquez sur Generate. Après environ 5 minutes, vous pouvez consulter ou télécharger la vidéo générée sur la droite.

Solution 2 : Générer des vidéos avec Model Gallery

Étape 1 : Déployer le modèle pré-entraîné

  1. Connectez-vous à la console PAI et sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Workspaces, puis recherchez et cliquez sur le nom de votre espace de travail cible.

  2. Dans le volet de navigation de gauche, cliquez sur Quick Start > Model Gallery. Recherchez EasyAnimate HD Long Video Generation Model, cliquez sur Deploy, utilisez les configurations par défaut, puis confirmez le déploiement. Lorsque le statut du service passe à Running, le modèle est déployé avec succès.

Étape 2 : Générer des vidéos via la WebUI ou l'API

Après avoir déployé le modèle, vous pouvez générer des vidéos en appelant le service via la WebUI ou une API.

Pour consulter ultérieurement les détails de la tâche de déploiement, dans le volet de navigation de gauche, cliquez sur Model Gallery > Job Management > Deployment Jobs , puis cliquez sur le Service name .

WebUI

  1. Sur la page Service details, cliquez sur View Web App.

  2. Dans la WebUI, sélectionnez le chemin du modèle pré-entraîné et configurez les autres paramètres selon vos besoins.

    Par exemple, dans la liste déroulante Pretrained Model Path, sélectionnez /mnt/models/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-512x512/.

  3. Cliquez sur Generate. Après environ 5 minutes, vous pouvez consulter ou télécharger la vidéo générée sur la droite.

    Une fois la génération terminée, la zone Generation Info en bas à droite affiche Success, indiquant que la vidéo a été générée avec succès.

API

  1. Sur la page Service details, dans la section Resource Details, cliquez sur View Call Information pour obtenir le point de terminaison du service et le jeton.

  2. Appelez le service pour générer une vidéo. Le code Python suivant fournit un exemple de requête :

    import os
    import requests
    import json
    import base64
    from typing import Dict, Any
    
    class EasyAnimateClient:
        """
        API client for the EasyAnimate EAS service.
        """
        def __init__(self, service_url: str, token: str):
            if not service_url or not token:
                raise ValueError("The `service_url` and `token` parameters cannot be empty.")
            self.base_url = service_url.rstrip('/')
            self.headers = {
                'Content-Type': 'application/json',
                'Authorization': token
            }
    
        def update_model(self, model_path: str, edition: str = "v3", timeout: int = 300) -> Dict[str, Any]:
            """
            Updates and loads the specified model version and path.
    
            Args:
                model_path: The path to the model within the service, such as "/mnt/models/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-512x512".
                edition: The model version. Defaults to "v3".
                timeout: The request timeout in seconds. A longer timeout is recommended as model loading can be slow.
            """
            # 1. Update the version.
            requests.post(
                f"{self.base_url}/easyanimate/update_edition",
                headers=self.headers,
                json={"edition": edition},
                timeout=timeout
            ).raise_for_status()
    
            # 2. Update the model path and wait for it to load.
            print(f"Sending request to load model: {model_path}")
            response = requests.post(
                f"{self.base_url}/easyanimate/update_diffusion_transformer",
                headers=self.headers,
                json={"diffusion_transformer_path": model_path},
                timeout=15000
            )
            response.raise_for_status()
            return response.json()
    
        def generate_video(self, prompt_textbox: str, **kwargs) -> bytes:
            """
            Generates a video based on a prompt.
    
            Args:
                prompt_textbox: The positive prompt in English.
                **kwargs: Other optional parameters. See the parameter description table below.
    
            Returns:
                The binary data of the video in MP4 format.
            """
            payload = {
                "prompt_textbox": prompt_textbox,
                "negative_prompt_textbox": kwargs.get("negative_prompt",
                                                      "The video is not of a high quality, it has a low resolution..."),
                "width_slider": kwargs.get("width_slider", 672),
                "height_slider": kwargs.get("height_slider", 384),
                "length_slider": kwargs.get("length_slider", 144),
                "sample_step_slider": kwargs.get("sample_step_slider", 30),
                "cfg_scale_slider": kwargs.get("cfg_scale_slider", 6.0),
                "seed_textbox": kwargs.get("seed_textbox", 43),
                "sampler_dropdown": kwargs.get("sampler_dropdown", "Euler"),
                "generation_method": "Video Generation",
                "is_image": False,
                "lora_alpha_slider": 0.55,
                "lora_model_path": "none",
                "base_model_path": "none",
                "motion_module_path": "none"
            }
    
            response = requests.post(
                f"{self.base_url}/easyanimate/infer_forward",
                headers=self.headers,
                json=payload,
                timeout=1500
            )
            response.raise_for_status()
    
            result = response.json()
            if "base64_encoding" not in result:
                raise ValueError(f"Invalid API response format: {result}")
    
            return base64.b64decode(result["base64_encoding"])
    
    # --- Example Usage ---
    if __name__ == "__main__":
        try:
            # 1. Configure the service information. Replace the placeholders with your actual service endpoint and token. We recommend setting them as environment variables.
            EAS_URL = "<eas-service-url>"
            EAS_TOKEN = "<eas-service-token>"
    
            # 2. Create the client.
            client = EasyAnimateClient(service_url=EAS_URL, token=EAS_TOKEN)
    
            # 3. Load the model. By default, no model is loaded after service deployment. You must call `update_model` at least once to specify the model to use before sending a generation request. To switch models later, call this method again.
            client.update_model(model_path="/mnt/models/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-512x512")
    
            # 4. Generate the video.
            video_bytes = client.generate_video(
                prompt_textbox="A beautiful cat playing in a sunny garden, high quality, detailed",
                width_slider=672,
                height_slider=384,
                length_slider=72,
                sample_step_slider=20
            )
    
            # 5. Save the video file.
            with open("api_generated_video.mp4", "wb") as f:
                f.write(video_bytes)
            print("Video saved successfully as api_generated_video.mp4")
    
        except requests.RequestException as e:
            print(f"Network request error: {e}")
        except (ValueError, KeyError) as e:
            print(f"Data or parameter error: {e}")
        except Exception as e:
            print(f"An unknown error occurred: {e}")

    Description des paramètres de l'API

    Paramètre

    Description

    Type

    Valeur par défaut

    prompt_textbox

    Prompt positif décrivant le contenu vidéo souhaité.

    string

    Obligatoire. Aucune valeur par défaut.

    negative_prompt_textbox

    Prompt négatif spécifiant les éléments à exclure de la vidéo.

    string

    "The video is not of a high quality, it has a low resolution, and the audio quality is not clear. Strange motion trajectory, a poor composition and deformed video, low resolution, duplicate and ugly, strange body structure, long and strange neck, bad teeth, bad eyes, bad limbs, bad hands, rotating camera, blurry camera, shaking camera. Deformation, low-resolution, blurry, ugly, distortion."

    sample_step_slider

    Nombre d'étapes d'échantillonnage pour le processus de débruitage du modèle de diffusion. Davantage d'étapes peuvent produire des détails plus riches, mais augmentent le temps de génération.

    int

    30

    cfg_scale_slider

    Échelle de guidage du prompt. Des valeurs plus élevées améliorent l'alignement avec le prompt, mais peuvent réduire la diversité.

    float

    6

    sampler_dropdown

    Algorithme d'échantillonnage à utiliser.

    Valeurs valides : Euler, EulerA, DPM++, PNDM, DDIM

    string

    Euler

    width_slider

    Largeur de la vidéo générée.

    int

    672

    height_slider

    Hauteur de la vidéo générée.

    int

    384

    length_slider

    Nombre d'images vidéo à générer.

    int

    144

    is_image

    Indique si l'entrée est une image.

    bool

    False

    lora_alpha_slider

    Poids des paramètres du modèle d'adaptation de faible rang (LoRA).

    float

    0,55

    seed_textbox

    Graine aléatoire.

    int

    43

    lora_model_path

    Chemin vers un modèle LoRA supplémentaire.

    S'il est spécifié, le modèle LoRA est chargé pour la requête actuelle et supprimé une fois la requête terminée.

    string

    none

    base_model_path

    Chemin du modèle transformer à mettre à jour.

    string

    none

    motion_module_path

    Chemin du modèle motion_module à mettre à jour.

    string

    none

    generation_method

    Type de génération. Valeurs valides : Video Generation, Image Generation.

    string

    none

Étape 3 : (Facultatif) Affiner le modèle

Vous pouvez affiner le modèle sur un jeu de données personnalisé pour générer des vidéos avec des styles ou du contenu spécifiques. Suivez ces étapes :

  1. Connectez-vous à la console PAI. Dans le volet de navigation de gauche, cliquez sur Workspaces, puis recherchez et cliquez sur le nom de votre espace de travail cible.

  2. Dans le volet de navigation de gauche, cliquez sur Quick Start > Model Gallery.

  3. Dans Model Gallery, recherchez EasyAnimate HD Long Video Generation Model et cliquez sur Fine-tune pour ouvrir la page de configuration.

  4. Définissez Source sur Public Resources. Pour Instance type, sélectionnez une instance dotée d'un GPU A10 ou supérieur. Configurez les hyperparamètres selon vos besoins et conservez les valeurs par défaut pour les autres paramètres.

    Pour affiner le modèle avec un jeu de données personnalisé, suivez les instructions ci-dessous :

    Jeu de données personnalisé

    1. Préparez un dossier de données et un fichier meta. Le dossier de données contient les images et les vidéos pour l'entraînement. Le fichier meta est au format JSON, où chaque entrée se compose d'un chemin de fichier, d'une description textuelle et d'un type de données, représentés respectivement par les champs file_path, text et type. Par exemple :

      [
          {
              "file_path": "00031-3640797216.png",
              "text": "1girl, black_hair",
              "type": "image"    },
          {
              "file_path": "00032-3838108680.png",
              "text": "1girl, black_hair",
              "type": "image"    }
      ]

      Pour les données vidéo, définissez le type sur video. Pour les données image, définissez le type sur image.

    2. Sur la page de configuration de l'entraînement, cliquez sur Select OSS File or Directory, puis téléchargez et sélectionnez le dossier de données et le fichier meta.

  5. Cliquez sur Train > Confirm pour créer la tâche d'entraînement. Avec la configuration de ce tutoriel, le processus d'entraînement prend environ 40 minutes. Lorsque le statut de la tâche passe à Successful, l'entraînement du modèle est terminé.

    Pour consulter ultérieurement les détails de la tâche d'entraînement, dans le volet de navigation de gauche, cliquez sur Model Gallery > Job Management > Training Jobs , puis cliquez sur le nom de la tâche.
  6. Dans le coin supérieur droit, cliquez sur Deploy pour déployer le modèle affiné. Lorsque le statut passe à Running, le déploiement est terminé.

  7. Sur la page Service details, cliquez sur View WEB Application en haut de la page.

    Pour consulter ultérieurement les détails du service, dans le volet de navigation de gauche, cliquez sur Model Gallery > Job Management > Deployment Jobs , puis cliquez sur le Service name .
  8. Dans la WebUI, sélectionnez le modèle LoRA entraîné pour générer des vidéos. Pour l'utilisation de l'API, consultez Étape 2.

    Dans la section Model checkpoints, sélectionnez le modèle LoRA dans la liste déroulante Select LoRA model et définissez son poids à l'aide du curseur LoRA alpha.

Recommandations de production

  • Arrêtez les instances ou les services pour réduire les coûts : Ce tutoriel crée des instances DSW et des services de modèles EAS en utilisant des ressources publiques. Pour éviter des frais supplémentaires, arrêtez ou supprimez ces instances et services lorsque vous n'en avez plus besoin.

    • Sur la page Interactive Modeling (DSW), recherchez l'instance cible. Dans la colonne Actions, cliquez sur Stop pour arrêter une instance en cours d'exécution, ou cliquez sur Delete pour supprimer une instance arrêtée.

    • Sur la page Model Gallery, cliquez sur l'onglet Task Management, puis sur le sous-onglet Deployment Tasks. Recherchez le service cible et cliquez sur Stop ou Delete dans la colonne Actions.

  • Utilisez EAS pour le déploiement en production : Pour les environnements de production, utilisez la Solution 2 pour déployer le modèle sur EAS en un clic. Si vous avez utilisé la Solution 1, vous pouvez déployer le modèle sur EAS en créant une image d'exécution personnalisée. Pour plus d'informations, consultez la rubrique Déployer des modèles en tant que services en ligne.

    EAS offre les fonctionnalités suivantes pour les charges de travail de production :

    • Utilisez la fonctionnalité de tests de charge d'EAS pour tester le niveau de concurrence que le point de terminaison du service peut prendre en charge.

    • Utilisez la fonctionnalité de mise à l'échelle automatique d'EAS pour adapter automatiquement les instances afin de gérer les pics et les creux de trafic, garantissant ainsi un fonctionnement stable du service.

    • Utilisez la fonctionnalité de surveillance des journaux et d'alerte d'EAS pour suivre en temps réel l'état de santé du service et améliorer la stabilité et la sécurité du système.

Références

EAS propose une méthode de déploiement basée sur des scénarios pour déployer en un clic des services de génération vidéo IA basés sur ComfyUI et les modèles Stable Video Diffusion. Pour plus d'informations, consultez la rubrique Génération vidéo IA - Déploiement ComfyUI.