Shap-E是OpenAI开发的一种立异模型,它能够运用文本或图画作为输入来生成一系列3D对象,然后改变了3D应用领域。这项特殊的技术能够在GitHub上免费拜访,用户能够在自己的核算机上无缝运转它,不需求OpenAI API密钥或互联网衔接。Shap-E的多功能性也是其与众不同之处,用户能够将生成的3D对象在Microsoft Paint 3D等软件中翻开,甚至能够转换成STL文件进行3D打印。这项技术正在从头定义咱们处理文本到3D和图画到3D生成的方式,以及人工智能应用程序能够从中发生哪些创造性的可能性。
在本教程中,咱们将学习如安在Google Colab中创立笔记本,设置和运用OpenAI的Shap-E模型生成3D模型,并运用Blender Studio对其进行自定义。
首先,您需求前往blender.org并下载与您的操作系统兼容的Blender Studio。
接下来,转到Google Colab并创立一个新的笔记本。! 在 Google Colab 中创立新笔记本
现在,咱们需求将 Shap-E 存储库克隆到咱们的 Google Colab Notebook。
!gitclonehttps://github.com/openai/shap-e
进入目录并安装要求。
%cdshap-e!pipinstall-e.
增加新的code cell.
在这儿,咱们将导入一切必要的库。
importtorchfromshap_e.diffusion.sampleimportsample_latentsfromshap_e.diffusion.gaussian_diffusionimportdiffusion_from_configfromshap_e.models.downloadimportload_model,load_configfromshap_e.util.notebooksimportcreate_pan_cameras,decode_latent_images,gif_widget
请点击“Run”按钮或按下“CMD/CTRL + Enter”键来运转单个代码块。
现在,咱们将设置设备为CUDA(如果可用),不然设置为CPU。
device=torch.device('cuda'iftorch.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分钟的时刻。但是,这取决于您的互联网衔接速度。
接下来,咱们将生成一个3D模型。
batch_size=1#thisisthesizeofthemodels,highervaluestakelongertogenerate.guidance_scale=15.0#thisisthescaleoftheguidance,highervaluesmakethemodellookmoreliketheprompt.prompt="adonut"#thisistheprompt,youcanchangethistoanythingyouwant.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’Neural Radiance Fields (NeRF)来烘托 3D 模型。您能够将其更改为运用款式传递函数 (STF)render_mode = ‘stf’ 烘托形式烘托 3D 模型。
render_mode='nerf'#youcanchangethisto'stf'size=64#thisisthesizeoftherenders,highervaluestakelongertorender.cameras=create_pan_cameras(size,device)fori,latentinenumerate(latents):
images=decode_latent_images(xm,latent,cameras,rendering_mode=render_mode)
display(gif_widget(images))
请点击“Run”或按下“CMD/CTRL + Enter”键。
你看到模型旋转了吗?很帅,是吗?
接下来,咱们将把3D模型保存为.ply和.obj文件。
请注意:.obj文件将在稍后在Blender Studio中用于自定义。
#Exampleofsavingthelatentsasmeshes.fromshap_e.util.notebooksimportdecode_latent_meshfori,latentinenumerate(latents):
t=decode_latent_mesh(xm,latent).tri_mesh()
withopen(f'example_mesh_{i}.ply','wb')asf:#thisisthree-dimensionalgeometricdataofmodel.
t.write_ply(f)
withopen(f'example_mesh_{i}.obj','w')asf:#wewillusethisfiletocustomizeinBlenderStudiolater.
t.write_obj(f)
单击Run或CMD/CTRL + Enter。
将选项卡切换到Files并点击刷新。您将看到example_mesh_0.ply和example_mesh_0.obj文件。
谷歌 Colab 文件
将文件下载 .obj到本地核算机。
翻开 Blender Studio 并创立新项目。
搅拌机工作室
删除默许多维数据集。
删除默许立方体
点击File>Import>Wavefront (.obj) 。挑选 .obj您从 Google Colab 下载的文件。
导入 .obj 文件
您应该会在中心看到 3D 模型。
3D模型
它本身看起来很牛,趁便说一句,Shap-E 做得很好。
您能够根据需求自定义 3D 模型。
出于演示目的,我简单地运用粉红色的五颜六色浇头和棕色的甜甜圈。
定制3D模型
Midjourney 的 AI 生成艺术
在这个教程中,咱们学习了怎么运用Google Colab来设置和运用Shape-E模型。此外,咱们还研究了Blender Studio并尝试了自定义生成的3D模型。