URSA-1.7B-FSQ320 是 BAAI 开发的文生视频 (Text-to-Video) 扩散模型,基于 Qwen3 作为基础语言模型,使用 Uniform Discrete Diffusion 进行视频生成。
/data/ysws/agentsp/5-14/URSA-1.7B-FSQ320-ascend/
├── inference.py # 推理脚本 (含精度测试)
├── log.txt # 测试日志
├── README.md # 本文档
└── test_output.png # 生成结果 (可选)原始模型目录 /data/ysws/agentsp/5-14/URSA-1.7B-FSQ320/:
├── transformer/ # Transformer 权重
├── vae/ # VAE 编解码器
├── tokenizer/ # 分词器
├── scheduler/ # 调度器
└── model_index.json # 模型索引docker exec -it test-modelagent bashsource /usr/local/Ascend/ascend-toolkit/set_env.sh注意: URSA-1.7B-FSQ320 依赖 Qwen3 作为文本编码器,必须先下载:
# 在容器内执行
huggingface-cli download Qwen/Qwen3 --local-dir /data/ysws/agentsp/5-14/Qwen3
# 或者手动下载到本地后复制pip install diffnext transformers accelerate -i https://repo.huaweicloud.com/repository/pypi/simple/ --trusted-host repo.huaweicloud.comcd /data/ysws/agentsp/5-14/URSA-1.7B-FSQ320-ascend/
# 精度测试
python3 inference.py --precision_test
# 生成图片
python3 inference.py --mode image --prompt "a lone grizzly bear in forest"
# 生成视频
python3 inference.py --mode video --prompt "a lone grizzly bear walks through a misty forest"cd /data/ysws/agentsp/5-14/URSA-1.7B-FSQ320-ascend/
python3 inference.py --precision_testpython3 inference.py --mode image \
--prompt "a lone grizzly bear walks through a misty forest at dawn"python3 inference.py --mode video \
--prompt "a lone grizzly bear walks through a misty forest at dawn" \
--motion 9.0| 参数 | 说明 | 默认值 |
|---|---|---|
--model_path | 模型文件路径 | /data/ysws/agentsp/5-14/URSA-1.7B-FSQ320 |
--device | 运行设备 | npu:0 |
--precision_test | 运行精度测试模式 | False |
--num_tensors | 精度测试的张量数量 | 20 |
--mode | 生成模式 | image (或 video) |
--prompt | 文本提示词 | a lone grizzly bear walks through a misty forest at dawn |
--motion | 运动强度 (视频模式) | 9.0 |
--num_frames | 视频帧数 (视频模式) | 49 |
--num_inference_steps | 推理步数 | 25 |
| 指标 | 实测值 | 阈值 | 状态 |
|---|---|---|---|
| Max error (sum) | 5.86e-03 | < 5.73e-01 | PASS |
| Max error (mean) | 1.49e-08 | < 1.00e-04 | PASS |
| Max error (std) | 1.86e-09 | < 1.00e-03 | PASS |
| 操作 | 耗时 |
|---|---|
| CPU 参考计算 (20 tensors) | 3.97s |
| NPU 推理 (20 tensors) | 9.90s |
| 总参数量 | 311 |
import os
os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "expandable_segments:True"
import torch
from diffnext.pipelines import URSAPipeline
model_id = "/data/ysws/agentsp/5-14/URSA-1.7B-FSQ320"
pipe = URSAPipeline.from_pretrained(model_id, torch_dtype=torch.float16, trust_remote_code=True)
pipe = pipe.to("npu:0")
# 文生图
image = pipe(
prompt="a grizzly bear in forest",
negative_prompt="worst quality, low quality",
num_frames=1,
num_inference_steps=25,
height=320, width=512
).frames[0]
image.save("output.png")
# 文生视频 (motion=9.0 表示高运动强度)
video = pipe(
prompt="motion=9.0, a grizzly bear walks through forest",
negative_prompt="worst quality, low quality",
num_frames=49,
num_inference_steps=50,
height=320, width=512
).frames[0]| 模型 | 路径 | 说明 |
|---|---|---|
| URSA-1.7B-FSQ320 | /data/ysws/agentsp/5-14/URSA-1.7B-FSQ320 | 已存在 |
| Qwen3 | /data/ysws/agentsp/5-14/Qwen3 | 需要下载 |
下载命令:
huggingface-cli download Qwen/Qwen3 --local-dir /data/ysws/agentsp/5-14/Qwen3A: 检查 NPU 驱动是否正确安装,确保 CANN 环境变量已 source。
A: 必须先下载基础模型:
huggingface-cli download Qwen/Qwen3 --local-dir /data/ysws/agentsp/5-14/Qwen3A: num_inference_steps 越高越精细 (默认 25-50),motion 控制视频运动强度 (1-10)。
本项目遵循 Apache-2.0 许可证。