🚀 [ECCV 2024] VFusion3D:从视频扩散模型中学习可扩展的3D生成模型
VFusion3D是一个大型前馈3D生成模型,它使用少量3D数据和大量合成多视图数据进行训练。该工作首次探索了可扩展的3D生成/重建模型,是迈向3D基础模型的重要一步。
项目页面,论文链接
VFusion3D:从视频扩散模型中学习可扩展的3D生成模型
韩俊霖,菲利普斯·科基诺斯,菲利普·托尔
GenAI,Meta和牛津大学TVG实验室
欧洲计算机视觉会议 (ECCV),2024
🚀 快速开始
使用VFusion3D非常简单!🤗 以下是如何在Hugging Face上使用该模型的步骤:
📦 安装依赖(可选)
根据你的需求,你可能需要启用特定功能,如网格生成或视频渲染。我们提供了以下额外的包来满足这些需求:
!pip --quiet install imageio[ffmpeg] PyMCubes trimesh rembg[gpu,cli] kiui
💻 直接加载模型
import torch
from transformers import AutoModel, AutoProcessor
model = AutoModel.from_pretrained("jadechoghari/vfusion3d", trust_remote_code=True)
processor = AutoProcessor.from_pretrained("jadechoghari/vfusion3d")
import requests
from PIL import Image
from io import BytesIO
image_url = 'https://sm.ign.com/ign_nordic/cover/a/avatar-gen/avatar-generations_prsz.jpg'
response = requests.get(image_url)
image = Image.open(BytesIO(response.content))
image, source_camera = processor(image)
output_planes = model(image, source_camera)
print("平面形状:", output_planes.shape)
output_planes, mesh_path = model(image, source_camera, export_mesh=True)
print("平面形状:", output_planes.shape)
print("网格保存路径:", mesh_path)
output_planes, video_path = model(image, source_camera, export_video=True)
print("平面形状:", output_planes.shape)
print("视频保存路径:", video_path)
- 默认(平面):默认情况下,VFusion3D输出平面,非常适合进一步的3D操作。
- 导出网格:如果你需要3D网格,只需将
export_mesh
设置为True
,你将得到一个.obj
文件。你还可以通过调整mesh_size
参数来自定义网格分辨率。
- 导出视频:如果你想要一个3D视频,将
export_video
设置为True
,你将获得一个从多个角度渲染的精美视频。你可以调整render_size
和fps
来优化视频效果。
查看我们的演示应用,看看VFusion3D的实际效果!🤗
✨ 主要特性
🔍 最新消息
📊 结果与比较
3D生成结果

用户研究结果

🔗 致谢
📖 引用
如果你觉得这项工作有用,请引用我们:
@article{han2024vfusion3d,
title={VFusion3D: Learning Scalable 3D Generative Models from Video Diffusion Models},
author={Junlin Han and Filippos Kokkinos and Philip Torr},
journal={European Conference on Computer Vision (ECCV)},
year={2024}
}
📄 许可证
- VFusion3D的大部分内容遵循CC - BY - NC许可协议,但项目的部分内容遵循不同的许可条款:OpenLRM整体遵循Apache License 2.0,而某些组件遵循NVIDIA的专有许可协议。
- VFusion3D的模型权重也遵循CC - BY - NC许可协议。