> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-fr/generation-video/cogvideox.md).

# Génération vidéo CogVideoX

Générez des vidéos de 6 secondes à partir de texte ou d'images avec le transformeur de diffusion CogVideoX de Zhipu AI sur les GPU Clore.ai.

CogVideoX est une famille de transformateurs de diffusion vidéo à poids ouverts de Zhipu AI (Tsinghua). Les modèles génèrent des clips cohérents de 6 secondes en résolution 720×480 et à 8 i/s à partir soit d'une invite textuelle (T2V), soit d'une image de référence plus une invite (I2V). Deux échelles de paramètres sont disponibles — 2B pour une itération rapide et 5B pour une fidélité supérieure — toutes deux avec une prise en charge native `diffusers` intégration via `CogVideoXPipeline`.

Exécuter CogVideoX sur un GPU loué chez [Clore.ai](https://clore.ai/) vous permet de contourner les contraintes matérielles locales et de générer des vidéos à grande échelle pour quelques centimes par clip.

## Caractéristiques clés

* **Texte vers vidéo (T2V)** — décrivez une scène et obtenez un clip de 6 secondes en 720×480 à 8 i/s (49 images).
* **Image vers vidéo (I2V)** — fournissez une image de référence ainsi qu'une invite ; le modèle l'anime avec une cohérence temporelle.
* **Deux échelles** — CogVideoX-2B (rapide, \~12 Go de VRAM) et CogVideoX-5B (qualité supérieure, \~20 Go de VRAM).
* **Prise en charge native de diffusers** — de premier ordre `CogVideoXPipeline` et `CogVideoXImageToVideoPipeline` classes.
* **VAE causal 3D** — compresse 49 images dans un espace latent compact pour un débruitage efficace.
* **Poids ouverts** — licence Apache-2.0 pour la variante 2B ; licence de recherche pour 5B.

## Exigences

| Composant   | Minimum          | Recommandé       |
| ----------- | ---------------- | ---------------- |
| VRAM GPU    | 16 Go (2B, fp16) | 24 Go (5B, bf16) |
| RAM système | 32 Go            | 64 Go            |
| Disque      | 30 Go            | 50 Go            |
| Python      | 3.10+            | 3.11             |
| CUDA        | 12.8+            | 12.8+            |

**Recommandation de GPU Clore.ai :** Un **RTX 4090** (24 Go, 0,14–0,42 $/h) prend en charge confortablement les variantes 2B et 5B. Un **RTX 3090** (24 Go, 0,07–0,21 $/h) fonctionne tout aussi bien pour 5B en bf16 et constitue l'option économique.

## Démarrage rapide

```bash
# Créer l’environnement
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128
pip install diffusers transformers accelerate sentencepiece imageio[ffmpeg]

# Vérifier le GPU
python -c "import torch; print(torch.cuda.get_device_name(0))"
```

## Exemples d'utilisation

### Texte vers vidéo (5B)

```python
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video

pipe = CogVideoXPipeline.from_pretrained(
    "THUDM/CogVideoX-5b",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
pipe.enable_model_cpu_offload()      # économise ~4 Go de VRAM au pic
pipe.vae.enable_tiling()             # requis pour 720x480 sur des cartes de 24 Go

prompt = (
    "Un golden retriever courant dans un champ de tournesols au coucher du soleil, "
    "éclairage cinématographique, ralenti, qualité 4K"
)

video_frames = pipe(
    prompt=prompt,
    num_frames=49,
    guidance_scale=6.0,
    num_inference_steps=50,
    generator=torch.Generator("cuda").manual_seed(42),
).frames[0]

export_to_video(video_frames, "retriever_sunset.mp4", fps=8)
print("retriever_sunset.mp4 enregistré")
```

### Image vers vidéo (5B)

```python
import torch
from PIL import Image
from diffusers import CogVideoXImageToVideoPipeline
from diffusers.utils import export_to_video

pipe = CogVideoXImageToVideoPipeline.from_pretrained(
    "THUDM/CogVideoX-5b-I2V",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()

image = Image.open("reference.png").resize((720, 480))

video_frames = pipe(
    prompt="La caméra tourne lentement autour du sujet, brise légère",
    image=image,
    num_frames=49,
    guidance_scale=6.0,
    num_inference_steps=50,
).frames[0]

export_to_video(video_frames, "animated.mp4", fps=8)
```

### Génération rapide avec la variante 2B

```python
from diffusers import CogVideoXPipeline
import torch

pipe = CogVideoXPipeline.from_pretrained(
    "THUDM/CogVideoX-2b",
    torch_dtype=torch.float16,
)
pipe.to("cuda")
pipe.vae.enable_tiling()

frames = pipe(
    prompt="Vidéo en accéléré d'un cerisier en fleurs",
    num_frames=49,
    guidance_scale=6.0,
    num_inference_steps=30,       # moins d'étapes → plus rapide
).frames[0]
```

## Conseils pour les utilisateurs de Clore.ai

1. **Activer le tuilage du VAE** — sans `pipe.vae.enable_tiling()` le VAE 3D dépassera la mémoire sur des cartes de 24 Go pendant le décodage.
2. **Utilisez `enable_model_cpu_offload()`** — déplace automatiquement les modules inactifs vers la RAM ; ajoute environ 10 % au temps d'exécution, mais économise plus de 4 Go de VRAM au pic.
3. **bf16 pour 5B, fp16 pour 2B** — le point de contrôle 5B a été entraîné en bf16 ; l'utilisation de fp16 peut provoquer des sorties NaN.
4. **Persister les modèles** — montez un volume persistant Clore.ai pour `/models` et définissez `HF_HOME=/models/hf` afin que les poids survivent aux redémarrages du conteneur.
5. **Traiter par lots pendant la nuit** — mettez en file d'attente de longues listes d'invites avec une simple boucle Python ; la facturation Clore.ai se fait à l'heure, donc exploitez le GPU au maximum.
6. **SSH + tmux** — exécutez la génération dans `tmux` afin qu'une connexion perdue n'interrompe pas le processus.
7. **Choisissez le bon GPU** — filtrez le marché Clore.ai pour des cartes avec ≥24 Go de VRAM ; triez par prix pour trouver la RTX 3090 / 4090 la moins chère disponible.

## Dépannage

| Problème                                      | Correctif                                                                                                                |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `OutOfMemoryError` pendant le décodage du VAE | Appelez `pipe.vae.enable_tiling()` avant l'inférence                                                                     |
| NaN / images noires avec 5B                   | Passez à `torch.bfloat16`; fp16 n'est pas pris en charge pour la variante 5B                                             |
| `ImportError: imageio`                        | `pip install imageio[ffmpeg]` — le plugin ffmpeg est nécessaire pour l'export MP4                                        |
| Première exécution très lente                 | Le téléchargement du modèle fait environ 20 Go ; les exécutions suivantes utilisent les poids en cache                   |
| Incompatibilité de version CUDA               | Assurez-vous que la version CUDA de PyTorch correspond au pilote : `python -c "import torch; print(torch.version.cuda)"` |
| Mouvement brouillé / scintillement            | Augmentez `num_inference_steps` à 50 ; réduisez `guidance_scale` à 5,0                                                   |
| Conteneur arrêté en plein téléchargement      | Définissez `HF_HOME` vers un volume persistant et redémarrez — les téléchargements partiels reprennent automatiquement   |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-fr/generation-video/cogvideox.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
