krea/krea-realtime-video
krea
Texto a video
Krea Realtime 14B es un modelo de generación y edición de video en tiempo real destilado desde Wan 2.1 14B mediante Self-Forcing. Convierte la difusión de video tradicional en un flujo autoregresivo capaz de generar primeros fotogramas en torno a 1 segundo y alcanzar 11 fps con 4 pasos de inferencia en una NVIDIA B200. Soporta texto a video, video a video y entradas de video en streaming para modificar prompts, cambiar estilos y editar contenido mientras se genera.
Como usar
Instalación y uso básico con Diffusers:
pip install -U diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline
# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained("krea/krea-realtime-video", dtype=torch.bfloat16, device_map="cuda")
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]
Servidor de inferencia de Krea:
sudo apt install ffmpeg
git clone https://github.com/krea-ai/realtime-video
cd realtime-video
uv sync
uv pip install flash_attn --no-build-isolation
huggingface-cli download Wan-AI/Wan2.1-T2V-1.3B --local-dir-use-symlinks False --local-dir wan_models/Wan2.1-T2V-1.3B
huggingface-cli download krea/krea-realtime-video krea-realtime-video-14b.safetensors --local-dir-use-symlinks False --local-dir checkpoints/krea-realtime-video-14b.safetensors
export MODEL_FOLDER=Wan-AI
export CUDA_VISIBLE_DEVICES=0
export DO_COMPILE=true
uvicorn release_server:app --host 0.0.0.0 --port 8000
Después se usa la app web local en http://localhost:8000/.
Ejemplo de texto a video con Modular Diffusers:
import torch
from tqdm import tqdm
from diffusers.utils import export_to_video
from diffusers import ModularPipeline
from diffusers.modular_pipelines import PipelineState
repo_id = "krea/krea-realtime-video"
pipe = ModularPipeline.from_pretrained(repo_id, trust_remote_code=True)
pipe.load_components(
trust_remote_code=True,
device_map="cuda",
torch_dtype={"default": torch.bfloat16, "vae": torch.float16},
)
for block in pipe.transformer.blocks:
block.self_attn.fuse_projections()
num_blocks = 9
frames = []
state = PipelineState()
prompt = ["a cat sitting on a boat"]
generator = torch.Generator(device=pipe.device).manual_seed(42)
for block_idx in tqdm(range(num_blocks)):
state = pipe(
state,
prompt=prompt,
num_inference_steps=6,
num_blocks=num_blocks,
block_idx=block_idx,
generator=generator,
)
frames.extend(state.values["videos"][0])
export_to_video(frames, "output.mp4", fps=24)
Ejemplo de video a video:
import torch
from tqdm import tqdm
from diffusers.utils import load_video, export_to_video
from diffusers import ModularPipeline
from diffusers.modular_pipelines import PipelineState
repo_id = "krea/krea-realtime-video"
pipe = ModularPipeline.from_pretrained(repo_id, trust_remote_code=True)
pipe.load_components(
trust_remote_code=True,
device_map="cuda",
torch_dtype={"default": torch.bfloat16, "vae": torch.float16},
)
for block in pipe.transformer.blocks:
block.self_attn.fuse_projections()
num_blocks = 9
video = load_video("https://app-uploads.krea.ai/public/a8218957-1a80-43dc-81b2-da970b5f2221-video.mp4")
frames = []
prompt = ["A car racing down a snowy mountain"]
state = PipelineState()
generator = torch.Generator("cuda").manual_seed(42)
for block_idx in tqdm(range(num_blocks)):
state = pipe(
state,
video=video,
prompt=prompt,
num_inference_steps=6,
strength=0.3,
block_idx=block_idx,
generator=generator,
)
frames.extend(state.values["videos"][0])
export_to_video(frames, "output-v2v.mp4", fps=24)
Funcionalidades
- Modelo de texto a video y video a video en tiempo real basado en difusión autoregresiva.
- Destilado desde Wan-AI/Wan2.1-T2V-14B con Self-Forcing.
- Velocidad declarada de 11 fps con 4 pasos de inferencia en una GPU NVIDIA B200.
- Primeros fotogramas disponibles en aproximadamente 1 segundo para generación interactiva.
- Permite modificar prompts durante la generación y reestilizar videos sobre la marcha.
- Acepta videos reales, webcam o primitivas de canvas como entrada para síntesis y edición controlable.
- Incluye técnicas para reducir acumulación de errores, como KV Cache Recomputation y KV Cache Attention Bias.
- Compatible con Diffusers, Modular Diffusers, LoRAs, SageAttention, Flash Attention 3, torch.compile y cuantización FP8 con torchao.
- Licencia Apache 2.0.
Casos de uso
- Generar videos desde prompts de texto con baja latencia.
- Editar o transformar videos existentes mediante prompts.
- Procesar entradas de webcam o video en streaming manteniendo consistencia temporal entre fragmentos.
- Crear experiencias interactivas donde el usuario cambia el prompt o el estilo durante la generación.
- Prototipar pipelines de video generativo con Diffusers, LoRAs y optimizaciones para GPUs Hopper.