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.