# LTX-2 (audio + video)

LTX-2 (enero de 2026) es el modelo fundacional de video de segunda generación de Lightricks y el primer modelo de pesos abiertos que produce **audio sincronizado junto con video** en una sola pasada hacia adelante. Con 19.000 millones de parámetros genera clips con efectos foley, audio ambiental y discurso con sincronización labial sin necesitar un modelo de audio separado. La arquitectura se basa en la ventaja de velocidad del LTX-Video original mientras expande drásticamente la capacidad.

Alquilar una GPU en [Clore.ai](https://clore.ai/) es la forma más práctica de ejecutar un modelo de 19.000 millones de parámetros: no se requiere comprar una GPU de $2,000, solo inicia una máquina y comienza a generar.

## Características clave

* **Generación de audio nativa** — efectos foley, ambiente ambiental y diálogo con sincronización labial producidos conjuntamente con los fotogramas de video.
* **19.000 millones de parámetros** — columna vertebral transformer significativamente más grande que LTX-Video v1, ofreciendo detalles más nítidos y movimiento más coherente.
* **Texto a Video + Imagen a Video** — ambas modalidades son compatibles con salida de audio.
* **Hasta resolución 720p** — salida de mayor fidelidad que el modelo v1.
* **Espacio latente audiovisual conjunto** — un VAE unificado codifica tanto video como audio, manteniéndolos alineados temporalmente.
* **Pesos abiertos** — lanzado bajo una licencia permisiva para uso comercial.
* **Integración con Diffusers** — compatible con el ecosistema de Hugging Face `diffusers` ecosistema.

## Requisitos

| Componente      | Mínimo                      | Recomendado |
| --------------- | --------------------------- | ----------- |
| VRAM de GPU     | 16 GB (con descarga en CPU) | 24+ GB      |
| RAM del sistema | 32 GB                       | 64 GB       |
| Disco           | 50 GB                       | 80 GB       |
| Python          | 3.10+                       | 3.11        |
| CUDA            | 12.1+                       | 12.4        |
| diffusers       | 0.33+                       | última      |

**Recomendación de GPU de Clore.ai:** Un **RTX 4090** (24 GB, \~0,5–2 $/día) es el mínimo para una generación cómoda de 720p con audio. Para cargas por lotes o iteración más rápida, filtra por **dual-4090** o **A6000** (48 GB) anuncios en el mercado de Clore.ai.

## Inicio rápido

```bash
# Instalar dependencias
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
pip install diffusers transformers accelerate sentencepiece
pip install imageio[ffmpeg] soundfile scipy

# Verificar GPU
python -c "import torch; print(torch.cuda.get_device_name(0), torch.cuda.get_device_properties(0).total_mem // 1024**3, 'GB')"
```

## Ejemplos de uso

### Texto a Video con Audio

```python
import torch
from diffusers import LTXPipeline
from diffusers.utils import export_to_video
import soundfile as sf

# Cargar LTX-2 (asegúrate de tener el ID de modelo correcto cuando se publique)
pipe = LTXPipeline.from_pretrained(
    "Lightricks/LTX-Video-2",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
pipe.enable_model_cpu_offload()

prompt = (
    "Un herrero martillando metal incandescente sobre un yunque, chispas volando, "
    "golpeteo rítmico del martillo sobre el acero, ruido ambiental del taller"
)

output = pipe(
    prompt=prompt,
    negative_prompt="silencioso, borroso, baja calidad",
    num_frames=121,
    width=1280,
    height=720,
    num_inference_steps=40,
    guidance_scale=7.0,
    generator=torch.Generator("cuda").manual_seed(42),
)

# Exportar fotogramas de video
export_to_video(output.frames[0], "blacksmith.mp4", fps=24)

# Exportar audio si está disponible
if hasattr(output, "audio") and output.audio is not None:
    sf.write("blacksmith_audio.wav", output.audio, samplerate=16000)
    print("Audio guardado por separado — multiplexar con ffmpeg:")
    print("  ffmpeg -i blacksmith.mp4 -i blacksmith_audio.wav -c:v copy -c:a aac output.mp4")

print("Hecho: blacksmith.mp4")
```

### Imagen a Video con audio sincronizado de labios

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

pipe = LTXImageToVideoPipeline.from_pretrained(
    "Lightricks/LTX-Video-2",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
pipe.enable_model_cpu_offload()

# Imagen de retrato para sincronización labial
image = Image.open("portrait.png").resize((720, 1280))

output = pipe(
    prompt="Una persona diciendo 'Bienvenido al futuro del video con IA' con enunciación clara, fondo neutro",
    image=image,
    num_frames=121,
    num_inference_steps=40,
    guidance_scale=7.0,
)

export_to_video(output.frames[0], "talking_head.mp4", fps=24)
```

### Escena ambiental con Foley

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

pipe = LTXPipeline.from_pretrained(
    "Lightricks/LTX-Video-2", torch_dtype=torch.bfloat16
).to("cuda")

# Prompt rico en audio — describe los sonidos explícitamente
prompt = (
    "Lluvia cayendo sobre un techo de chapa en una aldea tropical, "
    "trueno retumbando a lo lejos, pájaros brevemente cantando entre truenos, "
    "charcos ondulando en un camino de tierra"
)

output = pipe(
    prompt=prompt,
    num_frames=121,
    width=1280,
    height=720,
    num_inference_steps=40,
    guidance_scale=6.5,
)

export_to_video(output.frames[0], "rain_scene.mp4", fps=24)
```

## Consejos para usuarios de Clore.ai

1. **Describe los sonidos explícitamente** — la rama de audio de LTX-2 responde a indicios de audio en el prompt. "Fuego crepitante", "pasos en grava", "murmullo de la multitud" generan mejor foley que descripciones vagas.
2. **La descarga en CPU es esencial** — con 19.000 millones de parámetros, el modelo necesita `enable_model_cpu_offload()` en tarjetas de 24 GB. Presupuesta 64 GB de RAM del sistema.
3. **Almacenamiento persistente** — el punto de control del modelo ocupa \~40 GB. Monta un volumen persistente de Clore.ai y configura `HF_HOME` para evitar volver a descargar en cada reinicio del contenedor.
4. **Multiplexar audio + video** — si la canalización produce audio por separado, combínalos con: `ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac final.mp4`.
5. **solo bf16** — el modelo de 19.000 millones fue entrenado en bf16; fp16 causará inestabilidad numérica.
6. **Procesamiento por lotes en tmux** — siempre ejecútalo dentro de `tmux` en alquileres de Clore.ai para sobrevivir a desconexiones SSH.
7. **Comprobar ID del modelo** — como LTX-2 se ha lanzado recientemente (ene 2026), verifica el ID exacto del modelo en HuggingFace en la [página de Lightricks en HF](https://huggingface.co/Lightricks) antes de ejecutar.

## Solución de problemas

| Problema                         | Solucionar                                                                                                                                 |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `OutOfMemoryError`               | Habilite `pipe.enable_model_cpu_offload()`; asegúrate de ≥64 GB de RAM del sistema                                                         |
| No hay audio en la salida        | La generación de audio puede requerir una bandera explícita o diffusers actualizado; consulta la ficha del modelo para la API más reciente |
| Desincronización audio/video     | Remultiplexar con ffmpeg: `ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -shortest out.mp4`                                          |
| Generación muy lenta             | El modelo de 19.000 millones exige mucha potencia de cómputo; se esperan \~2–4 min por clip de 5 segundos en una RTX 4090                  |
| Salidas NaN                      | Usa `torch.bfloat16` — fp16 no es compatible con esta escala de modelo                                                                     |
| Error de espacio en disco        | El modelo ocupa \~40 GB; asegúrate de tener ≥80 GB de espacio libre antes de descargar                                                     |
| `ModuleNotFoundError: soundfile` | `pip install soundfile` — necesario para la exportación de audio WAV                                                                       |


---

# Agent Instructions: 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:

```
GET https://docs.clore.ai/guides/guides_v2-es/generacion-de-video/ltx-video-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
