什么是E型?
Shap-E 是 OpenAI 开发的突破性模型,使用文本或图像作为输入生成一系列 3D 对象,以其创新方法改变了 3D 应用领域。这项非凡的技术可以在 GitHub 上免费获取,允许用户在计算机上无缝运行它,而无需 OpenAI API 密钥或互联网连接。Shap-E 真正引人注目的是它的多功能性:生成的 3D 对象可以在 Microsoft Paint 3D 等软件中打开,甚至可以转换为 STL 文件以进行 3D 打印。凭借其独特的功能,Shap-E 正在重新定义我们处理文本到 3D 和图像到 3D 生成的方式,以及由此产生的人工智能应用的创造性可能性。
我们要做什么?
在本教程中,我们将学习如何在 Google Colab 中创建 Notebook、设置和使用 OpenAI 的 Shape-E 模型来生成 3D 模型并使用 Blender Studio 对其进行自定义。
先决条件
访问 Blender.org 并下载与您的操作系统兼容的 Blender Studio。
开始吧!
第 1 步 – 设置项目
让我们首先在 Google Colab 中创建新的笔记本。
转到 Google Colab 并创建新笔记本。
第 2 步 – 克隆存储库
现在,我们需要将 Shap-E 存储库克隆到我们的 Google Colab Notebook。
!git clone https://github.com/openai/shap-e
输入目录并安装要求。
%cd shap-e!pip install -e .
第 3 步 – 实施和烘焙 3D 模型。
添加新的code cell
.
在这里我们将导入所有必需的库。
import torchfrom shap_e.diffusion.sample import sample_latentsfrom shap_e.diffusion.gaussian_diffusion import diffusion_from_configfrom shap_e.models.download import load_model, load_configfrom shap_e.util.notebooks import create_pan_cameras, decode_latent_images, gif_widget
单击Run
按钮 或CMD/CTRL + Enter
运行单个code cell
.
凉爽的!
添加新的code cell
.
这里我们将设备设置为cuda
如果可用,否则设置为cpu
。
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
单击Run
或CMD/CTRL + Enter
。
添加新的code cell
.
在这里我们将加载模型和权重。
xm = load_model('transmitter', device=device) model = load_model('text300M', device=device) diffusion = diffusion_from_config(load_config('diffusion'))
单击Run
或CMD/CTRL + Enter
。
请耐心等待,加载模型和权重需要一些时间。对我来说大约需要 5 分钟。是的,当然这取决于您的互联网连接速度。
你做的很棒!
添加新的code cell
.
在这里我们将生成 3D 模型。
batch_size = 1 # this is the size of the models, higher values take longer to generate.guidance_scale = 15.0 # this is the scale of the guidance, higher values make the model look more like the prompt.prompt = "a donut" # this is the prompt, you can change this to anything you want.latents = sample_latents( batch_size=batch_size, model=model, diffusion=diffusion, guidance_scale=guidance_scale, model_kwargs=dict(texts=[prompt] * batch_size), progress=True, clip_denoised=True, use_fp16=True, use_karras=True, karras_steps=64, sigma_min=1e-3, sigma_max=160, s_churn=0,)
单击Run
或CMD/CTRL + Enter
。
生成 3D 模型需要一些时间,根据您的batch_size
等级越高,batch_size
生成 3D 模型需要的时间就越长。对我来说,用 . 生成 3D 模型大约需要 22 秒batch_size=1
。
添加新的code cell
.
这里我们将渲染 3D 模型,使用render_mode = 'nerf'
神经辐射场 (NeRF) 来渲染 3D 模型。您可以将其更改为render_mode = 'stf'
使用样式传递函数 (STF) 渲染模式来渲染 3D 模型。
render_mode = 'nerf' # you can change this to 'stf'size = 64 # this is the size of the renders, higher values take longer to render.cameras = create_pan_cameras(size, device)for i, latent in enumerate(latents): images = decode_latent_images(xm, latent, cameras, rendering_mode=render_mode) display(gif_widget(images))
单击Run
或CMD/CTRL + Enter
。
你看到模型在旋转吗?很酷,对吧?
我们继续吧。
添加新的code cell
.
在这里,我们将 3D 模型另存为.ply
和.obj
文件。
注意:.obj
,稍后我们将使用它在 Blender Studio 中进行自定义。
# Example of saving the latents as meshes.from shap_e.util.notebooks import decode_latent_meshfor i, latent in enumerate(latents): t = decode_latent_mesh(xm, latent).tri_mesh() with open(f'example_mesh_{i}.ply', 'wb') as f: # this is three-dimensional geometric data of model. t.write_ply(f) with open(f'example_mesh_{i}.obj', 'w') as f: # we will use this file to customize in Blender Studio later. t.write_obj(f)
单击Run
或CMD/CTRL + Enter
。
切换选项卡Files
并点击刷新。您将看到example_mesh_0.ply
和example_mesh_0.obj
文件。
将文件下载.obj
到本地计算机。
第 4 步 – 在 Blender Studio 中自定义 3D 模型。
打开 Blender Studio 并创建新项目。
删除默认的多维数据集。
单击File
>> Import
。Wavefront (.obj)
_ 选择.obj
您从 Google Colab 下载的文件。
您应该在中心看到 3D 模型。
哇!,它本身看起来很酷,不是吗?顺便说一句,Shap-E 做得很好。
您可以根据需要自定义 3D 模型。
为了演示目的,我简单地将配料涂成粉红色,将甜甜圈涂成棕色。
Shape-E 真的太棒了!
在本教程中,我们学习了如何使用 Google Colab 设置和使用 Shape-E 模型。此外,我们研究了 Blender Studio 并尝试自定义生成的 3D 模型。
现在轮到您测试您学到的技能并创建您自己的 3D 艺术作品了。随着您更多地使用它,也许您会发现一些限制并希望在您自己的 Shap-e 应用程序中修复它?
为什么不在人工智能黑客马拉松期间这样做呢?顺便赢得很酷的奖品!成为人工智能爱好者社区的一员,了解更多关于人工智能及其潜力的信息!
感谢您阅读本教程。
谢谢你!– AI未来百科 ; 探索AI的边界与未来! 懂您的AI未来站