BAAI/URSA-1.7B-FSQ320

BAAI
Texto a video

URSA-1.7B-FSQ320 es un modelo de generación y modificación de video a partir de prompts de texto desarrollado por BAAI. Pertenece a la familia BAAI-Vision-URSA, tiene 1.7B parámetros, usa precisión FP16, trabaja a resolución 512x320 y se basa en el trabajo "Uniform Discrete Diffusion with Metric Path for Video Generation". Puede usarse con URSAPipeline para generación texto-a-imagen, imagen-a-video, texto-a-video y video-a-video.

Como usar

Instalación básica con Diffusers:

pip install -U diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline

# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained(
    "BAAI/URSA-1.7B-FSQ320",
    dtype=torch.bfloat16,
    device_map="cuda"
)

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]

Ejemplo completo con URSAPipeline:

pip install diffusers transformers accelerate imageio[ffmpeg]
pip install git+ssh://[email protected]/baaivision/URSA.git
import os, torch, numpy
from diffnext.pipelines import URSAPipeline
from diffnext.utils import export_to_video

os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "expandable_segments:True"
model_id, height, width = "BAAI/URSA-1.7B-FSQ320", 320, 512
model_args = {"torch_dtype": torch.float16, "trust_remote_code": True}
pipe = URSAPipeline.from_pretrained(model_id, **model_args)
pipe = pipe.to(torch.device("cuda"))

text_prompt = "a lone grizzly bear walks through a misty forest at dawn, sunlight catching its fur."
negative_prompt = "worst quality, low quality, inconsistent motion, static, still, blurry, jittery, distorted, ugly"

# Text-to-Image
prompt = text_prompt
num_frames, num_inference_steps = 1, 25
image = pipe(**locals()).frames[0]
image.save("ursa.jpg")

# Image-to-Video
prompt = f"motion=9.0, {text_prompt}"
num_frames, num_inference_steps = 49, 50
video = pipe(**locals()).frames[0]
export_to_video(video, "ursa_1+48f.mp4", fps=12)

# Text-to-Video
image, video = None, None
prompt = f"motion=9.0, {text_prompt}"
num_frames, num_inference_steps = 49, 50
video = pipe(**locals()).frames[0]
export_to_video(video, "ursa_49f.mp4", fps=12)

# Video-to-Video
prompt = f"motion=5.0, {text_prompt}"
num_frames, num_inference_steps = 49, 50
num_cond_frames, cond_noise_scale = 13, 0.1
for i in range(12):
    video, start_video = video[-num_cond_frames:], video
    video = pipe(**locals()).frames[0]
    video = numpy.concatenate([start_video, video[num_cond_frames:]])
    export_to_video(video, "ursa_{}f.mp4".format(video.shape[0]), fps=12)

Funcionalidades

Generación texto-a-video con Diffusers/URSAPipeline.
Modificación y extensión de videos condicionada por texto y fotogramas previos.
Soporte para generación texto-a-imagen usando un solo fotograma.
Modelo de 1.7B parámetros con pesos Safetensors y licencia Apache-2.0.
Resolución objetivo de 512x320 y tokenizer Cosmos-Tokenize1-DV4x8x8-360p.
Limitaciones conocidas: autoencoder con pérdida, texto legible complejo deficiente, fotorealismo imperfecto y posibles errores en manos o dedos.

Casos de uso

Investigación en modelos generativos de video.
Herramientas educativas o creativas basadas en generación visual.
Creación de obras, diseño y procesos artísticos asistidos por IA.
Evaluación de limitaciones, sesgos y riesgos de modelos generativos.
Investigación sobre despliegue seguro de modelos capaces de generar contenido dañino.