X cogvideox Projet public
C équipe cogvideox documentation du projet
.github/ISSUE_TEMPLATEModèles de ticketsdossier
finetuneExemples et conseils pour l’affinagedossier
inferenceDémos d’inférencedossier
resourcesRessources du projetdossier
satImplémentation de SATdossier
outilsOutils de conversion et de sous-titragedossier
.gitignoreConfiguration du projetfichier
.pre-commit-config.yamlConfiguration du formatagefichier
LICENSELicence du dépôtfichier
MODEL_LICENSEInformations sur la licence du modèlefichier
README.mdVue d’ensemble du projetfichier
README_ja.mdDocumentation en japonaisfichier
README_zh.mdDocumentation chinoisefichier
pyproject.tomlDépendances du projetfichier
requirements.txtDépendances Pythonfichier

cogvideox — texte et image vers vidéo

Décrivez une vidéo

Votre prompt et toute image téléversée sont conservés sur la plateforme de création.

Ou commencez par un exemple

Découvrez le guide des modèles et le démarrage rapide.

Parcourez les scènes d’exemple ou consultez les ressources du projet.

Actualités du projet

  • 🔥🔥 Actualité : 2025/03/24 — CogKit réunit les outils d’ajustement fin et d’inférence pour les familles de modèles CogView4 et CogVideoX.
  • 🔥 Actualité : 2025/02/28 — La prise en charge de l’inversion DDIM a été ajoutée à CogVideoX-5B et CogVideoX1.5-5B.
  • 🔥 Actualité : 2025/01/08 — Le code d’ajustement fin LoRA basé sur Diffusers a été mis à jour avec des flux de travail utilisant moins de mémoire.
  • 🔥 Actualité : 2024/11/15 — CogVideoX1.5 est devenu disponible dans une version de Diffusers, avec seulement de légères modifications nécessaires au code existant.
  • 🔥 Actualité : 2024/11/08 — CogVideoX1.5 a étendu la série avec une génération en plus haute résolution de dix secondes et la prise en charge de la conversion image-vidéo à différentes résolutions.
  • 🔥 Actualité : 2024/10/13 — Un framework d’ajustement fin sur un seul GPU pour CogVideoX-5B a été publié, avec la prise en charge de plusieurs résolutions.
  • 🔥 Actualité : 2024/10/10 — Le rapport technique a été mis à jour avec davantage de détails sur l’entraînement et de démonstrations.
  • 🔥 Actualité : 2024/09/19 — CogVideoX-5B-I2V a ajouté à la série la génération de vidéos conditionnée par une image, en complément de la génération texte-vidéo et de la continuation vidéo.
  • 🔥 2024/09/19 — CogVLM2-Caption, utilisé pour décrire les données vidéo pendant l’entraînement, a été publié.
  • 🔥 2024/08/27 — CogVideoX-5B a été publié avec des optimisations de l’inférence destinées à rendre ce modèle plus volumineux plus accessible.
  • 🔥 2024/08/06 — Un VAE causal 3D et le premier modèle CogVideoX-2B ont été publiés en open source.
  • 🌱 Travaux antérieurs : Les travaux de recherche initiaux sur la génération de vidéos à partir de texte avec CogVideo ont introduit une approche de génération vidéo fondée sur un grand Transformer.

Table des matières

Accéder directement à une section :

Démarrage rapide

Optimisation des prompts

CogVideoX a été entraîné à partir de descriptions détaillées. Un prompt clair et précis peut avoir une incidence notable sur la vidéo obtenue ; décrivez le sujet, le cadre, l’action, l’éclairage et les mouvements de caméra avant d’exécuter un modèle.

SAT

Utilisez Python 3.10 à 3.12 pour les procédures documentées.

L’implémentation SAT comprend des exemples d’inférence et d’affinage pour les poids des modèles SAT. Elle est destinée à servir de point de départ aux chercheurs qui adaptent la structure du modèle.

Diffusers

Utilisez Python 3.10 à 3.12 pour les workflows documentés.

pip install -r requirements.txt

L’exemple d’inférence Diffusers explique les paramètres courants de génération. L’inférence quantifiée avec Diffusers et TorchAO peut réduire les besoins en mémoire, bien que les performances réelles dépendent du matériel et de la configuration.

Présentation du modèle

CogVideoX est une famille open source de modèles de génération vidéo. La présentation ci-dessous compare les variantes publiées et leurs caractéristiques de génération de base.

Nom du modèleCogVideoX1.5-5BCogVideoX1.5-5B-I2VCogVideoX-2BCogVideoX-5B
Date de sortie8 novembre 20248 novembre 20246 août 202427 août 2024
Résolution vidéo1360 × 768Dimensions variables dans les limites documentées720 × 480720 × 480
Nombre d’images16N + 1 ; 81 par défaut16N + 1 ; 81 par défaut8N + 1 ; 49 par défaut8N + 1 ; 49 par défaut
Précision d’inférenceBF16 recommandéBF16 recommandéFP16 recommandéBF16 recommandé
Mémoire d’un seul GPUDépend de l’implémentation et des optimisationsDépend de l’implémentation et des optimisationsDépend de l’implémentation et des optimisationsDépend de l’implémentation et des optimisations
Utilisation de plusieurs GPUPris en charge par les workflows applicablesPris en charge par les workflows applicablesDépendant du workflowDépendant du workflow
Langue du promptEnglishEnglishEnglishEnglish
Limite de tokens du prompt224 tokens224 tokens226 tokens226 tokens
Durée de la vidéo5 ou 10 seconds5 ou 10 seconds6 seconds6 seconds
Fréquence d’images16 frames / second16 frames / second8 frames / second8 frames / second
Encodage positionnel3d_rope_pos_embed3d_rope_pos_embed3d_sincos_pos_embed3d_rope_pos_embed
Explorer les modèlesOptions du modèleOptions image vers vidéoOptions du modèleOptions du modèle

Explication des données

  • Les chiffres de mémoire publiés dépendent de l’implémentation, de l’architecture de l’appareil, de la précision et des optimisations activées. Ils ne doivent pas être considérés comme des garanties pour chaque GPU.
  • Le déchargement séquentiel vers le CPU, le découpage du VAE et le carrelage du VAE peuvent réduire l’utilisation maximale de la mémoire, avec un éventuel compromis au niveau de la vitesse.
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
  • L’inférence multi-GPU nécessite sa propre configuration ; le déchargement séquentiel vers le CPU n’est pas utilisé dans cette configuration.
  • L’inférence INT8 peut convenir aux appareils disposant de moins de mémoire, mais peut être plus lente.
  • cogvideox-2B a été entraîné en FP16 ; les variantes 5B ont été entraînées en BF16.
  • Les outils de quantification peuvent réduire les besoins en mémoire de l’encodeur de texte, du transformateur et du VAE. Les résultats varient selon le matériel.
  • Les invites d’inférence documentées sont en anglais ; les invites dans d’autres langues peuvent être traduites avant utilisation.

Structure du projet

Le projet open source organise des exemples d’utilisation de base, d’inférence, de conversion de modèles et de fine-tuning pour la famille de modèles cogvideox.

Démarrage rapide avec Colab

Les notebooks d’exemple couvrent plusieurs points de départ :

  • Génération texte-vidéo avec CogVideoX-5B.
  • Inférence texte-vidéo quantifiée.
  • Génération image-vidéo avec CogVideoX-5B.
  • Flux de travail vidéo-vidéo avec CogVideoX-5B.

Inférence

  • Démo CLI : les paramètres courants de génération et un exemple d’inférence en ligne de commande.
  • Démo de quantification : configuration d’inférence du modèle utilisant moins de mémoire.
  • Démo VAE : exécution séparée de l’autoencodeur vidéo.
  • Démo Space : une interface avec des flux de travail facultatifs d’interpolation d’images et de super-résolution.
Une interface web réaliste et sombre de génération vidéo, avec les contrôles de prompt à gauche et l’aperçu d’une vidéo de cycliste à droite.
  • Conversion des prompts : extension d’une courte saisie utilisateur en descriptions plus longues adaptées au modèle.
  • Démo web : une interface simple dans le navigateur pour explorer la génération vidéo.

fine-tune

  • Les exemples de fine-tuning décrivent le flux de travail cogvideox basé sur Diffusers.

sat

  • Le dossier SAT contient des exemples d’inférence avec les poids du modèle et d’affinement pour les chercheurs.

Outils

Les outils complémentaires couvrent la conversion de modèles, le sous-titrage, la gestion des adaptateurs et l’inférence parallèle.

  • Conversion des poids de modèle de SAT vers Diffusers.
  • Génération de légendes vidéo.
  • Exportation et chargement d’adaptateurs LoRA affinés.
  • Expériences de génération assistée par invites.
  • Inférence parallèle sur plusieurs GPU.

CogVideo (ICLR ’23)

Les premières recherches sur CogVideo ont étudié le préentraînement de Transformers à grande échelle pour la génération de vidéos à partir de texte.

CogVideo a démontré une génération vidéo à une fréquence d’images relativement élevée. Un exemple de quatre secondes et 32 images est présenté ci-dessous.

Une séquence d’images montrant une personne courant dans les eaux peu profondes de la mer près d’une plage. Des exemples en pellicule montrant du ski, de la course, un repas, une ligne d’horizon, un lion et un danseur animé.
cogvideo.mp4 · scènes d’exemple
Une planche-contact de scènes vidéo cinématographiques variées, comprenant des personnes en extérieur, un animal, de la danse et des paysages.

Ces exemples illustrent les premières recherches sur la génération de vidéos à partir de texte. Les invites originales des exemples étaient rédigées en chinois.

Citation

Si ces recherches sont utiles à vos travaux, veuillez citer l’article pertinent sur CogVideoX ou CogVideo.

@article{yang2024cogvideox,
  title={CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer},
  author={Yang, Zhuoyi and others},
  journal={arXiv preprint arXiv:2408.06072},
  year={2024}
}

@article{hong2022cogvideo,
  title={CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers},
  author={Hong, Wenyi and others},
  journal={arXiv preprint arXiv:2205.15868},
  year={2022}
}

Licence du modèle

Le code du dépôt et le modèle CogVideoX-2B sont publiés sous licence Apache 2.0. Les poids du modèle CogVideoX-5B, y compris les variantes de génération de texte vers vidéo et d’image vers vidéo, sont soumis à une licence de modèle distincte. Consultez les conditions applicables avant d’utiliser les poids du modèle.

Commencer à créer
Commencer à créer