
源码系统概览
文章正文
UniWorld-View 是北京大学团队开源的大基线新视角合成系统源码,核心思路是用视频扩散模型解决视角生成问题。
它的最大特点是输入门槛低:一段随手拍摄的单目视频,或一张普通图片,就能生成高保真的新视角画面,同时保留对相机姿态的精准控制。
该项目曾在斯坦福李飞飞团队维护的 WorldScore 榜单上取得第一名的成绩,在三维场景与视频生成交叉领域有较高参考价值。
源码简介
仓库以 Python 为主,包含推理脚本 inference.py、app.py 与 demo.py,以及完整的模型定义 model/pipeline_uniview.py 与 model/uniview_transformer.py。
它基于 diffusers 生态封装了 UniView Transformer,兼容 Wan 系列视频生成权重,并通过配置文件驱动不同推理模式。
仓库内还携带了 extern/sam2 与 extern/moge 两个外部依赖的源码,分别提供图像视频分割与几何深度估计能力,属于典型的科研复现型工程。
官方提供了 checkpoints 下载脚本,模型权重通过 HuggingFace 拉取,因此仓库本身保持轻量,核心代码可直接阅读。
适用场景
三维重建与虚拟漫游:从少量真实拍摄素材生成连续的新视角视频,用于数字孪生或虚拟看房等场景。
影视与游戏预览:在已有单目素材上快速推演多机位画面,降低前期分镜制作成本。
机器人感知:结合深度与几何估计,为新视角下的空间理解提供数据增广。
学术研究:作为视频扩散与新视角合成的可复现基线,便于对比改进相机控制算法。
功能亮点
大基线合成:相比传统小基线方法,能处理视角跨度更大的生成任务,画面一致性更好。
姿态可控:在生成新视角时支持显式姿态条件,输出角度可预期、可复现。
单图或多视频输入:既接受单张图片,也接受随手拍的单目视频,部署灵活。
生态完整:复用 diffusers、SAM 2、MoGe 等成熟模块,工程链路清晰易改。
技术架构与部署指南
| 维度 | 本套源码 | 同类通用方案 |
|---|---|---|
| 技术栈 | 前端:React + TypeScript + Vite(SAM 2 演示前端,可选组件)。 | 依具体方案选型,需自行搭建与维护 |
| 部署方式 | 准备 Python 3.10 环境,按 requirements.txt 安装依赖,PyTorch 与 TorchVis | 多托管于第三方平台或订阅云服务 |
| 功能侧重 | 大基线合成:相比传统小基线方法,能处理视角跨度更大的生成任务,画面一致性更好。 | 功能通用,定制深度有限 |
| 数据归属 | 数据自持,部署在自有服务器,不出站 | 数据通常留存于服务商侧 |
| 成本模式 | 获取后自主部署,无持续授权费用 | 通常按订阅或调用量计费 |
技术栈与运行环境
前端:React + TypeScript + Vite(SAM 2 演示前端,可选组件)。
后端:Python 3.10+(推理 pipeline、视频扩散模型、Gradio 演示)。
数据库:无(以检查点与本地配置文件管理)。
运行环境:Linux + CUDA 12.1 + PyTorch 2.5+(Windows 推荐用 WSL)。
其他依赖:diffusers 0.35、transformers 4.48、accelerate、gradio 6.3、kornia、trimesh 等。
安装与部署提示
准备 Python 3.10 环境,按 requirements.txt 安装依赖,PyTorch 与 TorchVision 需单独按官方指引安装匹配版本。
运行 checkpoints/download_hf.sh 自动拉取 UniView、BLIP2、SAM2、MoGe 等权重到 checkpoints 目录。
推理可通过 python inference.py 指定图片或视频目录与输出路径,也可执行 run_infer.sh 快速启动。
如需可视化界面,执行 run_app.sh 启动 Gradio 演示;SAM 2 的 React 前端则需进入 extern/sam2/demo 单独安装。
显存不足时可借助配置文件切换更小模型或降低分辨率,具体参数见 configs 目录。
截图与演示说明
本项目以模型权重与推理代码为主,仓库未随附统一截图占位,下面按核心模块说明可验证的界面与产物。
推理入口 app.py 与 demo.py 提供 Gradio 交互界面,部署后可在浏览器中上传图片或视频并实时查看新视角生成结果。
model/pipeline_uniview.py 是视频扩散主流程,调试时可直接打印中间潜变量与姿态条件,确认姿态控制是否生效。
extern/sam2/demo 下的 React 前端包含标注、播放与下载组件,是体验分割与视频对象交互的主要界面。
常见问题
问:权重文件为什么不在仓库里?
答:模型体积较大且由 HuggingFace 托管,仓库通过 download_hf.sh 自动下载,保持源码轻量、便于阅读。
问:Windows 能直接跑吗?
答:官方建议用 WSL 部署,因为 CUDA 与部分编译扩展在原生 Windows 上兼容性较差,WSL 更接近 Linux 测试环境。
问:单张图片也能生成新视角吗?
答:可以。推理配置支持 single_view 等模式,从单图推断新视角,但多帧视频通常能提供更稳定的几何约束。
安全风险提示
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
下载说明
源码仅供学习研究、测试部署和二次开发参考,商用前请自行确认授权、版权和安全风险。
本仓库采用 Apache-2.0 许可证,允许在遵守条款前提下用于研究与衍生开发。
GitHub项目开源地址:https://github.com/PKU-YuanGroup/UniWorld-View