🚀 Shap-E
Shap-E引入了一种扩散过程,能够根据文本提示生成3D图像。它由OpenAI的Heewoo Jun和Alex Nichol在论文Shap-E: Generating Conditional 3D Implicit Functions中提出。
Shap-E的原始仓库可在此处找到:https://github.com/openai/shap-e。
Shap-E的作者并未撰写此模型卡片。他们在此处提供了单独的模型卡片。
🚀 快速开始
Shap-E是一个可以根据文本提示生成3D图像的模型。它的原始论文对其原理和效果进行了详细阐述。你可以参考下面的使用示例来体验Shap-E的功能。
✨ 主要特性
- 文本到3D图像生成:可以根据文本提示生成3D图像。
- 图像到3D图像生成:能够从合成的2D图像中采样出3D图像。
- 多输出表示:直接生成隐式函数的参数,这些参数可以渲染为纹理网格和神经辐射场。
📦 安装指南
首先确保你已经安装了所有依赖项:
pip install transformers accelerate -q
pip install git+https://github.com/huggingface/diffusers@@shap-ee
💻 使用示例
基础用法
import torch
from diffusers import ShapEImg2ImgPipeline
from diffusers.utils import export_to_gif, load_image
ckpt_id = "openai/shap-e-img2img"
pipe = ShapEImg2ImgPipeline.from_pretrained(repo).to("cuda")
img_url = "https://hf.co/datasets/diffusers/docs-images/resolve/main/shap-e/corgi.png"
image = load_image(img_url)
generator = torch.Generator(device="cuda").manual_seed(0)
batch_size = 4
guidance_scale = 3.0
images = pipe(
image,
num_images_per_prompt=batch_size,
generator=generator,
guidance_scale=guidance_scale,
num_inference_steps=64,
size=256,
output_type="pil"
).images
gif_path = export_to_gif(images, "corgi_sampled_3d.gif")
高级用法
在实际应用中,你可以根据不同的需求调整生成参数,例如batch_size
、guidance_scale
、num_inference_steps
等,以获得不同质量和风格的3D图像。
📚 详细文档
发布的检查点
作者发布了以下检查点:
结果展示
2D参考图像 |
3D采样图像(一) |
3D采样图像(二) |
 |
 |
 |
2D参考柯基图像 |
3D采样图像(一) |
3D采样图像(二) |
训练细节
请参考原始论文。
已知限制和潜在偏差
请参考原始模型卡片。
🔧 技术细节
Shap-E的训练分为两个阶段:首先,训练一个编码器,将3D资产确定性地映射到隐式函数的参数;其次,在编码器的输出上训练一个条件扩散模型。当在大量配对的3D和文本数据上进行训练时,该模型能够在几秒钟内生成复杂多样的3D资产。与基于点云的显式生成模型Point-E相比,Shap-E收敛更快,并且在建模更高维、多表示输出空间的情况下,能够达到相当或更好的样本质量。
📄 许可证
本项目采用MIT许可证。
📖 引用
@misc{jun2023shape,
title={Shap-E: Generating Conditional 3D Implicit Functions},
author={Heewoo Jun and Alex Nichol},
year={2023},
eprint={2305.02463},
archivePrefix={arXiv},
primaryClass={cs.CV}
}