news 2026/2/24 5:46:33

通过 AI 创造新的 3D 打印物体:塑造想象力

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通过 AI 创造新的 3D 打印物体:塑造想象力

原文:towardsdatascience.com/molding-the-imagination-using-ai-to-create-new-3d-printable-objects-cf3682f8563b

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/56d5d81a5c332e7768140a929e744d4d.png

由 AI 系统从文本提示生成的 3D 打印物体,图片由作者提供

如果您一直在阅读我在 Medium 上的文章,您知道我喜欢使用 AI 进行创意实验并撰写我的经历。我涵盖过图像生成、创意写作和音乐创作等领域。第一次,我将我的研究扩展到第三维度。我研究了使用商业和开源 AI 工具创建新的物理物体,并使用 3D 打印机打印它们。在这篇文章中,我将向您展示我使用各种商业和开源工具设计并打印四个不同 3D 网格的步骤。您将在附录中的 3D 画廊中找到所有四个物体。

概述

在以下几节中,我将向您展示我使用不同工具进行的四个 3D 物体生成实验,并展示结果。第一个实验使用了商业工具:使用Midjourney创建 2D 图像,以及一个名为3dMaker.ai的网站来提取 3D 网格,这是一个包含用于显示和 3D 打印的几何形状的文件。第二个实验使用了来自 OpenAI 的开源 AI 模型 Shape-E [1]。第三个实验使用了名为 MVDream 的开源模型 [2],第四个实验使用了 MVDream 和另一个名为 threestudio 的开源项目 [3]的组合。

在所有情况下,我都是从文本提示开始,生成 3D 网格,然后使用 Blender,一个开源的桌面应用程序,来修改和清理 3D 网格。然后我使用了桌面“切片”应用程序 Ultimaker Cura 和 PrusaSlicer 来准备和预览 3D 网格,以便在本地图书馆打印。如果您对打印这些物体感兴趣,您可以在我的Thingiverse 个人资料页面上查看它们。

在介绍完这四个例子之后,我将简要讨论使用 AI 生成 3-D 物体的社会影响和伦理问题。我将讨论来自各种服务和系统的所有权政策。最后,我将总结我从实验中学到的东西。

使用 Midjourney 和 3dMaker.ai 创建 3D 物体

在我的第一个实验中,我从 Midjourney 开始,这是一个基于文本提示创建图像的商业服务。有关此服务的更多信息,请参阅我的上一篇文章。

要创建 2D 图像,我登录了我的 Midjourney 账户,并输入了这个提示:“一个简单的几何形状,3D 打印雕塑,实心白色塑料,放在一个小白色塑料底座上,灰色背景”。它创建了四个缩略图图像,如下所示。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/155b8b1b293b8841e75eb7ee62fac458.png

从 Midjourney 中 3D 对象的 2D 渲染,使用 AI 图像创建程序生成的图像

所有四张图像都非常出色。系统了解 3D 打印;所有形状都很有趣且可打印。我最喜欢左上角的“8”形状图像。然后我使用 Midjourney 中的放大功能创建了该图像的大版本。

使用 Clipdrop 移除背景

从 2D 图像创建 3D 网格的下一步是从场景中移除背景。许多 AI 模型可以做到这一点,但我发现了一个名为Clipdrop的免费服务,来自 stability.ai,它做得很好。它可以通过网页浏览器访问。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7189da95a31891096afec9188971fba6.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f4a2addb4fef630a692007402ae0be3a.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3187ebca7e5ccf188454f6222c364a55.png

Midjourney 的 2D 图像(左),Clipdrop 用户界面(中),结果(右),图片由作者提供

如上图所示,Clipdrop 非常易于使用。我去了网站,上传了我的源图像,并点击了“移除背景”按钮。系统出色地移除了背景,包括阴影,但保留了雕塑的所有细节。然后我下载了生成的图像。

使用 3dMaker.ai 从 2D 图像创建 3D 网格

要打印 3D 模型,我需要先将 Midjourney 创建的 2D 图像转换为 3D 网格。有几个开源模型可以做到这一点,但我发现了一个名为 3dMaker.ai 的商业服务,它为此收取费用。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f8ae2700d239191367e2aef02f2b4f84.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/185dc467f8869167a467c9489efa8041.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0932db17b7c847f03937aac80cf97698.png

Clipdrop 输出的图像(左),3dMaker .ai 用户界面(中),生成的 3D 网格(右),图片由作者提供

为了创建 3D 网格,我访问了3dMaker.ai,创建了一个账户,并上传了去除背景的 2D 图像。创建 3D 网格有两种选择:标准质量为 25 美元,高质量为 40 美元。网站说明,标准质量适用于硬表面、有机、高度详细输入,而高质量适用于有机、真正高度详细输入。我选择了标准质量并点击了“生成”按钮。结果大约需要 30 分钟,我下载了 OBJ 格式的模型,这是一种描述 3D 几何形状的常用格式。结果非常出色!它捕捉了原始图像的细节,并且忠实地构建了图像的背面部分。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b8b45ac7fd33e1fbb9a41fee2a0c9cac.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c7902e806051a6a932d2af928965cbff.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d09bc08f21374c09023216339bca2d94.png

3D Maker AI 创建的网格背面视图的三视图,图片由作者提供

令人惊讶的是,3D Maker AI 仅根据一个正面视图的图像就创建了雕塑背面的细节。你可以在文章后面的部分看到该服务的另一个输出示例。

3D 打印服务和当地图书馆

这个实验的最后一步是打印 3D 网格。我并没有 3D 打印机,但很高兴地发现波士顿地区许多公共图书馆提供免费或低成本 3D 打印服务。居民可以使用打印机制作有用的物品,如手机壳和饼干模具,以及小型装饰品。

图书馆提供不同类型的访问。一些图书馆在“创客空间”中有 3D 打印机,这是居民聚集创作、发明和学习的协作工作空间。其他图书馆有在线打印服务,居民可以上传 3D 网格进行打印。图书馆提供的服务的种类也各不相同,如最大打印尺寸和打印材料的颜色选择。

打印 3D 对象

为了打印 3D 网格,我首先需要准备一个文件。3D 打印的标准文件格式是 STL,但 3dMaker.ai 不支持该格式导出。因此,我使用了Blender,这是一个开源的桌面 3D 建模应用程序,用于读取 OBJ 文件并将其导出为 STL 格式。然后,我启动了一个名为 PrusaSlicer 的切片应用程序,并将 STL 文件导入以查看打印预览。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1bf5978917b907da3567100055de1ea2.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/df2dcf1d7bb475fba786e45112aa84f9.png

PrusaSlicer 的用户界面(左侧),以及沃尔瑟姆公共图书馆的 Prusa 3D 打印机(右侧),图片由作者提供

我在 Waltham 公共图书馆的Makerspace使用深灰色丝线打印了这个作品。在 3D 打印中,丝线是熔融沉积建模(FDM)打印机的热塑性原料。它以各种材料的卷轴形式存在,通过打印机的喷嘴熔化并挤出,以层叠的方式构建物体。居民可以免费使用 Waltham 图书馆的 3D 打印机打印物体。我使用他们的 Prusa MK3S 打印机,喷嘴直径为 0.6mm,打印了上面的样品。

我还使用 Woburn 公共图书馆的在线表格,用白色丝线打印了这个作品。他们允许打印高达 11 英寸高的物体,但我因为打印时间的原因打印了 6.5 英寸高。他们不接受打印时间超过 10 小时的订单。与其它图书馆不同,Woburn 对工作中使用的材料收费。但他们每月提供 5 美元的信用额度。使用信用额度后,我的总费用是 3.63 美元。以下是两个打印作品。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ee0c1aa1b6fa828400b2a9fa9c6842d0.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6a5284add0c73e7510d20d59504d016a.png

在 Waltham 公共图书馆打印的最终 8 字图案(左)和在 Woburn 公共图书馆打印的(右),图片由作者提供

打印的两个物体都非常好!在 Waltham 打印的那个只有 4.75 英寸高,但显示了原始 Midjourny 图像的许多细节。由于打印规模相对较小,你可以看到一些分层瑕疵。Waltham 的免费打印服务限制在最多 8 小时创建物体。在 Woburn 打印的那个 6.5 英寸高,分层瑕疵更少。但物体表面有几个暗斑。

使用 Shape-E 创建 3D 物体

在我的下一个实验中,我使用了 OpenAI 的一个开源 AI 模型 Shap-E [1],它可以从文本提示生成 3D 网格。Shap-E 这个名字是对他们从文本提示创建 2D 图像的 DALL-E AI 模型的戏仿。以下是他们论文中的部分示例图像。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6af7b721e8e855ca68da5148cad887f2.png

使用 Shap·E 从文本提示生成的 3D 网格,图片由OpenAI提供

Shap-E 模型

2023 年 5 月,OpenAI 发布了一个名为 Shap-E 的文本到 3D 模型。该系统旨在通过生成隐函数的参数来创建 3D 网格,从而实现详细 3D 视觉的渲染。他们采用了两步训练过程,首先将 3D 资产映射到参数,然后使用条件扩散模型对结果进行细化。这种方法允许从文本提示中高效地生成各种 3D 模型。每个样本在大约 13 秒内生成于 GPU [1]。OpenAI 在 GitHub 上以 MIT 开源许可证发布了训练模型的源代码和权重。

该系统使用三个在 OpenAI 的模型卡片上描述的 AI 模型。

  • transmitter– 将编码器输出转换为隐式神经表示的编码器和相应的投影层。

  • decoder– 发射器的最终投影层组件。这个检查点比transmitter小,因为它不包含编码 3D 资产的参数。这是将扩散输出转换为隐式神经表示所需的最小模型。

  • text300M– 文本条件潜在扩散模型。

此外,还有一个图像条件潜在扩散模型,但我没有在这个项目中使用它。

在 Python 中运行 Shap-E

我使用 Google Colab 从提示创建 3D 网格。以下是展示我如何初始化系统的 Python 代码。

fromshap_e.diffusion.gaussian_diffusionimportdiffusion_from_configfromshap_e.models.downloadimportload_model,load_configimporttorch device=torch.device('cuda'iftorch.cuda.is_available()else'cpu')xm=load_model('transmitter',device=device)model=load_model('text300M',device=device)diffusion=diffusion_from_config(load_config('diffusion'))

代码下载了三个模型:发射器、解码器和文本扩散模型。如果存在 GPU,所有模型都将加载到 GPU 上。

使用 Shap-E 创建 3D 对象

我使用这段代码将文本提示发送到 Shap-E 以生成 3D 形状的潜在参数。

fromshap_e.diffusion.sampleimportsample_latentsfromshap_e.util.notebooksimportcreate_pan_cameras,decode_latent_imagesimportnumpyasnpimportrandom prompt="a dolphin"seed=0batch_size=1guidance_scale=15render_mode='nerf'size=512torch.manual_seed(seed)np.random.seed(seed)random.seed(seed)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)cameras=create_pan_cameras(size,device)fori,latentinenumerate(latents):images=decode_latent_images(xm,latent,cameras,rendering_mode=render_mode)display(gif_widget(images))

您可以看到我是如何使用文本提示“海豚”通过 Shap-E 采样潜在参数的。我将随机种子初始化为 0,这将始终渲染相同的网格。将随机种子更改为 1、2 或任何其他整数将创建网格的不同变体。以下是结果图像。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/68d11b8ee6a955fc3350012006dfc826.png

Shap-E 渲染的“海豚”,图像由作者提供

它相当基础,有很多空白空间。但它确实看起来像一只海豚。以下是导出 3D 网格的代码。

fromshap_e.util.notebooksimportdecode_latent_meshfori,latentinenumerate(latents):t=decode_latent_mesh(xm,latent).tri_mesh()withopen(f'example_mesh_{i}.ply','wb')asf:t.write_ply(f)

此代码使用潜在参数在另一个称为 PLY 的 3D 对象文件格式中生成网格。以下是网格在 Blender 中的样子。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a33153de56fd9ceef4245a9012711803.png

Blender 中的海豚网格,图像由作者提供

它仍然看起来像海豚,但网格存在几个问题。你可以看到物体身体上的分层步骤,鳍看起来被分割成水平切片。此外,网格没有底座来展示为打印对象。为了解决分层问题,我在 Blender 中使用了位移修改器,然后是平滑修改器,以使形状变厚并使其平滑。为了创建底座,我使用提示“海洋波浪风格的圆柱形底座”重新运行了 Shap-E,并导出了网格。然后我在 Blender 中定位并合并了这两个对象。以下是修改后的网格。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/253440e63ae556f87dc14999e7f5b2a9.png

带有底座的清理后的海豚网格在 Blender 中,图片由作者提供

你可以看到我是如何平滑海豚的侧面并修复鳍的。Shap-E 在渲染底座方面做得很好,在 Blender 中只需要进行最小修改。我仅在底座的底部添加了一个细长的圆柱体,以帮助整个物体平放在表面上。接下来,我将模型保存为 STL 文件。

打印 3D 对象

因为海豚下面有很多负空间,切片器应用添加了临时支撑柱,以便打印上层。你可以在下面的图片中看到这些支撑柱。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/058a3396ffbc600e7fb2e2fee3b4ef04.png

PrusaSlicer 的用户界面(左侧)和带有支撑的 3D 打印(右侧),图片由作者提供

我还在沃尔瑟姆公共图书馆的创客空间打印了这个。我在他们的 Prusa MK3S 打印机上打印的。以下是最终作品。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4b74116d41a9c839009357d42cb511c7.png

最终的 3D 海豚打印作品,图片由作者提供

这一个打印效果也很好。因为它打印得较小,只有 5 英寸宽,你可以看到打印过程中的分层线条。此外,顶部的背鳍非常薄,需要更好地定义。

使用 MVDream 创建 3D 对象

在我的下一个实验中,我使用了一个名为 MVDream 的开源项目,其中 MV 代表“多视图”。它是一种稳定的扩散文本到图像模型,根据文本提示创建 3D 对象的多个 2D 视图。作者们在他们的论文[2]中描述了该模型。

我们介绍 MVDream,这是一个多视图扩散模型,能够根据给定的文本提示生成一致的多视图图像。从 2D 和 3D 数据中学习,多视图扩散模型可以实现 2D 扩散模型的可推广性和 3D 渲染的一致性。我们证明了这样的多视图先验可以作为通用的 3D 先验,对 3D 表示“无偏见”。它可以应用于通过分数蒸馏采样进行 3D 生成,显著提高现有 2D 提升方法的一致性和稳定性。 —— 石一春等 [2]

注意,在机器学习中,“先验”指的是模型在接收任何特定输入之前所拥有的知识。MVDream 的多视图扩散模型充当一个对特定 3D 表示“无偏见”的 3D 先验。这意味着它可以生成类似 3D 的图像,而不依赖于 3D 数据的任何特定格式,使其在根据文本提示生成 3D 表示时具有多功能性。以下是 MVDream 根据指定提示生成的某些示例对象。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3417ec8bad9eeeeebc417225874958bd.png

使用 MVDream 从文本提示生成的图像的四个视图,图像由Yichun Shi 等提供

这些图像展示了 MVDream 从文本提示中创建多视图 3D 对象的能力,展示了从不同角度的一致且详细的渲染。包括骑马的宇航员和雕刻的老鹰在内的示例,揭示了该模型在生成精确的多样化 3D 图像方面的实际应用。

我使用以下 Python 代码在 Google Colab 上运行了 MVDream。

frommvdream.camera_utilsimportget_camerafromIPython.displayimportdisplay prompt="""a 3d-printed Cubist-styled sculpture of a male bust, in light-gray plastic, on a simple light-gray pedestal, dark-gray background"""num_views=4seed=12set_seed(seed)img=t2i(model,prompt=prompt,uc=uc,sampler=sampler,step=100,scale=10,batch_size=num_views,ddim_eta=0.0,device=device,camera=camera,num_frames=num_views,image_size=256,seed=seed)images=np.concatenate(img,1)pil_image=Image.fromarray(images,'RGB')display(pil_image)

代码展示了我是如何使用 MVDream 从我的文本提示中生成 3D 对象的多个 2D 视图。我指定了要生成的对象的期望属性(一个立体派风格的男性头像雕塑)并配置了模型以生成四个不同的视图。然后它处理这些视图以创建一个将它们并排组合的单个图像,使用 IPython 的显示功能显示。您可以在这里看到结果。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/94deeb613f51a4bb775825a6cc778ffb.png

MVDream 生成的立体派头像输出视图,使用 AI 图像创建程序创建的图像

这些图像显示了 3D 打印的立体派风格男性头像的四个角度,每个视图都与另一个视图一致,突出了模型精确解释和可视化文本提示的能力。雕塑的纹理暗示了与 3D 打印相似的粒度,而放置在基座上则使其具有展示就绪的外观。

使用 3dMaker.ai 从四张 2D 图像创建 3D 网格

再次使用 3D Maker AI 服务从四张图像中生成了一个 3D 网格。以下是使用 Blender 渲染的网格的四个视图。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/364f00f1db99f268862b6af5d380484a.png

3D Maker AI 为立体派头像提供的输出视图,图片由作者提供

3D Maker AI 的输出接近原始形状,但有一些明显的差异。MVDream 的输出显示了一个具有更明确、尖锐平面的头像,尤其是在面部多边形周围,这是提示中提到的立体派风格的典型特征。在 3D Maker AI 服务的渲染网格中,头像形状看起来更平滑,面部特征和平面之间的过渡更平缓。为了创造艺术效果,我在 Prusa slicer 中使用了多边形减少设置,使头像更加尖锐。以下是结果。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/142f19bab4116013b8dc89d67e48b81e.png

PrusaSlicer 对立体派头像进行多边形减少后的输出视图,图片由作者提供

这很微妙,但你可以看出,与上面展示的版本相比,这个头像有更多明显的尖锐三角形。我做出这个艺术选择是为了使这件作品看起来更具立体派风格。

打印 3D 模型

我在 Water town Free Public Library 的Hatch Makerspace打印了这个网格。他们使用不同的切片器,Unitmaker Cura,但打印机相同,是 Prusa i3 MK3。我使用了连接到构建板的树形支撑,这最大限度地减少了成品上的连接点数量。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/00ccd1d684405aca49d31cf81fa7cb02.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1e407b59ccbb7315f21e9e1654a201fd.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/8a96d9b68ea4af83e3dfda09d0b91f77.png

Cura Slicer 的用户界面(左),Hatch Makerspace 的 Prusa 3D 打印机(中),以及带有支撑的 3D 打印(右),图片由作者提供

这 3D 作品上的树形支撑看起来特别令人毛骨悚然。然而,在构建过程中,软件需要一种方式来支撑眉毛的悬挑。由于连接点数量很少,支撑很容易去除。以下是最终作品。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/24662c9539fcad4d8bb529d4c94fc29a.png

最终立体派头像 3D 打印成品,图片由作者提供

打印效果不错。3D 打印的头像通过其尖锐的多面表面呈现出立体派风格。以统一的蓝色铸造,这座雕塑强调几何形状而非细节,尖锐的平面定义了面部轮廓。它放置在一个简单的底座上。

使用 threestudio 和 MVDream 创建 3D 对象

MVDream 模型在从文本提示渲染 3D 对象的多个视角方面表现良好,但它不生成 3D 网格。这就是 threestudio 发挥作用的地方。threestudio 是一个开源项目,提供了一个模块化框架,使用户能够尝试各种文本到 3D 和图像到 3D 组件,包括 MVDream。以下是作者在他们的论文中的说法。

我们介绍了 threestudio,这是一个专门为 3D 内容生成设计的开源、统一和模块化框架。该框架将基于扩散的 2D 图像生成模型扩展到 3D 生成指导,同时结合了文本和图像等条件。我们阐述了 threestudio 中每个组件的模块化架构和设计。此外,我们在 threestudio 中重新实现了 3D 生成的最先进方法,展示了它们设计选择的全面比较。这个多功能的框架有可能使研究人员和开发者深入研究 3D 生成的尖端技术,并展示了促进 3D 生成以外的进一步应用的潜力——刘英天等人 [3]。

这是一张来自论文的流程图,展示了主要组件。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/74776b45506127c99bf7a8f85271e14c.png

threestudio 中基于文本/图像条件的 3D 生成管道,图片由刘英天等人提供

使用 AI 从文本或图像生成 3D 内容的 threestudio 管道由几个关键组件组成。该过程从生成用于优化的随机相机参数开始,包括外参和内参属性以及光照条件。几何通过隐式符号距离函数(SDF)、隐式密度场等表示来定义 3D 对象或场景。材料决定了对象在特定条件下的外观,采用漫反射和基于物理的渲染(PBR)类型。背景创建选项包括神经网络环境图、纹理图或纯色。渲染由各种光栅化器处理,考虑几何和材料以生成最终图像。DeepFloyd-IF 和 Stable Diffusion 等扩散模型的指导使用文本或图像输入来指导优化过程,以生成所需的 3D 内容。这种结构化方法允许从文本或视觉输入中模块化生成 3D 表示 [3]。

使用 threestudio 和 MVDream 创建 3D 对象

我在 Google Colab 中运行了带有 MVDream 的 threestudio,但该模型需要一个超过 16 Gigs VRAM 的 GPU。因此,它只能通过 Colab Pro 订阅来访问 A100 GPU 才能运行。

在安装 threestudio 和 MVDream 扩展后,我使用此代码从文本提示创建了一个 3D 对象。

prompt="""a 3d-printed abstract sculpture with geometric shapes, in light-gray plastic, on a simple pedestal"""!python launch.py--config custom/threestudio-mvdream/configs/mvdream-sd21.yaml--train--gpu0system.prompt_processor.prompt="$prompt"seed=42

我定义了提示并运行了 launch.py 脚本,指定使用配置文件来使用 MVDream。操作是“训练”系统,这意味着它运行一个优化循环来创建一个检查点文件,该文件基于文本提示定义 3D 几何形状。我将种子设置为 42 以获得一致的输出。更改种子数字将创建不同的变体。运行脚本大约需要 40 分钟。

从训练检查点创建 3D 网格

在运行训练优化时,系统会渲染图像显示正在形成的形状的状态。以下是根据提示“一个 3D 打印的抽象雕塑,具有几何形状,浅灰色塑料,放在简单的底座上”生成的 3D 对象。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/8e02f097732025e2260a8777a29a23f9.png

使用 threestudio 和 MVDream 创建的抽象雕塑,图片由作者提供*

哇,这真的很酷!使用 MVDream 进行引导的三工作室系统制作了一个雕塑,三个堆叠的三角形形状被小心翼翼地放置在底座上。表面的纹理看起来像经历了风雨。

打印 3D 对象

在此过程中的下一步是导出定义形状的 3D 网格。以下是此步骤中使用的命令。

!python launch.py--config"$save_dir/../configs/parsed.yaml"--export--gpu0resume="$save_dir/../ckpts/last.ckpt"system.exporter_type=mesh-exporter system.geometry.isosurface_method=mc-cpu system.geometry.isosurface_resolution=256system.exporter.save_texture=Falsesystem.exporter.fmt=obj

这个 Python 脚本使用之前生成的检查点文件运行导出命令。我告诉它使用网格导出器。“MC”方法是指“Marching Cubes”渲染方法,它产生一个更高分辨率的网格,以获得更详细的三维模型。我还指出,我只想要 OBJ 文件,而不是纹理图,以加快处理过程。这一步运行了 81 秒。以下是 Blender 中渲染的 3D 网格结果。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/dc643ba0847b63466474897c9d2a967f.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/48cb9560cd0d0ba447bd5c288a8dc5de.png

抽象雕塑的 3D 网格(左),以及清理后在 Blender 中的效果(右),图片由作者提供

它看起来像上面的渲染,但更粗糙,底部有一些额外的材料。我在 Blender 中清理了网格,移除了大部分底座,并添加了一个锥形立方体作为替代。

打印 3D 模型

我在沃特敦的Hatch Makerspace使用他们的 Prusa i3 MK3 打印机打印了这个网格。我使用了固定在网格下部的常规支撑。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e9ac12c6562ce33ff440e09da449d0a0.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/543bb4645b5fcf97de04bf11b9b5052a.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/255ea02130cfae3141a29d94da301791.png

Cura Slicer 的用户界面(左),Hatch Makerspace 的 Prusa 3D 打印机(中),以及带有支撑的 3D 打印(右),图片由作者提供

上面的图像显示了我在 Cura Slicer 中使用的设置,正在构建的物体,以及移除支撑前的成品。这是一张成品物体的图片。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/fed43c0d6cae15aec12eb960bce52744.png

作者提供的成品 3D 打印几何雕塑,图片由作者提供

这也做得很好。纹理相当粗糙,你可以看到一些支撑物的残留部分。但总体来说,看起来不错。如果我要再次打印它,我会只使用连接到构建板的树形支撑。

现在我已经向您展示了我是如何使用 AI 创建四个 3D 对象的,接下来我将讨论两个重要方面:使用 AI 进行 3D 对象生成的社会影响以及我使用的系统的所有权权利。

3D 对象生成系统对社会的影响

3D 对象生成的发展标志着技术的一个重大步骤,使个人能够将他们的想法转化为物理模型。这个过程,由商业和开源工具促进,为创意表达和制造带来了新的维度。然而,在它的机会之外,考虑其社会影响是至关重要的。这些技术提供了创新可以产生积极和消极后果的明确例子,强调了仔细考虑其使用和影响的需要。

Shap-E 对社会的影响

在他们的论文中,OpenAI 讨论了其训练数据集中可能影响他们开发模型行为的偏差。例如,他们通过提供模糊的标题来检查其文本到 3D 模型中的偏差,其中特定的细节,如身体形状或颜色,被留作未指定。他们观察到,他们的模型生成的某些样本对模糊提示表现出常见的性别角色刻板印象。您可以在OpenAI 的论文 [1]的附录 C 中了解更多信息。

MVDream 对社会的影响

MVDream 的创造者在他们的论文中讨论了他们模型的社会影响。

本文提出的多视图扩散模型旨在促进游戏和媒体行业广泛需求的 3D 生成任务。我们注意到,它可能被潜在地应用于意外场景,例如通过第三方微调生成暴力或色情内容。建立在 Stable Diffusion 模型[4]之上,它也可能继承其偏差和限制,从而生成不受欢迎的结果。因此,我们认为使用我们的方法合成的图像或模型应仔细检查,并作为合成品呈现。这些生成模型也可能具有通过自动化取代创意工作者的潜力。话虽如此,这些工具也可能促进创意行业的发展并提高其可及性。 —— 石一春等[2]

在导航文本到 3D 模型的社会影响时,我们被提醒到在利用 AI 的创新潜力与应对其崛起伴随的伦理、文化和经济影响之间保持谨慎平衡。

3D 对象生成系统的所有权权利

所有权权利是媒体生成的一个关键方面,需要彻底审查每个工具的服务条款,以理解授予创作者的权利。

Midjourney 用户的所有权权利

Midjourney 最近更改了其关于使用其服务生成的图像所有权的政策。该公司过去要求用户支付订阅费才能拥有他们创建的图像。但这一规定已放宽,对个人用户来说。以下是他们的更新政策。

您在适用法律允许的范围内完全拥有您通过服务创建的所有资产。有一些例外:

  • 您的所有权受本协议规定的任何义务和任何第三方权利的限制。
  • 如果您是一家年收入超过 100 万美元的公司或任何年收入超过 100 万美元的公司的员工,您必须订阅“专业”或“超级”计划才能拥有您的资产。
  • 如果您提升了他人的图像,这些图像仍然归原始创作者所有。– Midjourney

因此,个人用户将拥有他们创建的图像。但如果您为年收入超过 100 万美元的公司工作,您必须每月支付 60 美元才能拥有您的图像。有关定价的详细信息在此。

3dMaker.AI 用户的所有权权利

使用 3dMaker.AI 时的所有权权利很简单。网站上的常见问题解答说:“3dMaker.AI 生成的模型 100%属于您。”您不需要律师来解读这一点!😊

摘要

在我的项目中,我尝试使用商业和开源 AI 工具将想法转化为 3D 打印对象。从 Midjourney 生成 2D 图像开始,然后使用 3dMaker.ai 将这些图像转换为 3D 模型,我探索了从数字构思到物理创建的创意过程。像 Shape-E、MVDream 和 threestudio 这样的开源模型进一步扩大了可能性,允许直接进行文本到 3D 的转换。

该过程包括在 Blender 中细化生成的模型,为打印做准备,然后使用当地图书馆的 3D 打印机将它们变为现实。这次旅程展示了 AI 和 3D 打印的技术进步,并强调了考虑社会影响和理解这些新兴工具的所有权权利的重要性。

在创建和打印 3D 对象的过程中,该项目强调了该领域创新与可访问性的结合,促使人们反思在创意过程中使用 AI 的伦理和实际影响。

源代码

我将这个项目的源代码发布在GitHub。同时,我在Sketchfab和Thingiverse上发布了 3D 设计。我将在 Creative Commons Attribution Sharealike 许可下发布代码和设计。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4c63d8fda526561f717cbcc6359363f0.png

创用 CC 署名-相同方式共享

致谢

我感谢 Jennifer Lim 审阅这篇文章并提供反馈。我还要感谢 Waltham 公共图书馆的 Makerspace 工作人员、Watertown 免费公共图书馆的 Hatch Makerspace 以及 Woburn 公共图书馆在为这篇文章打印物体方面的帮助。

参考文献

[1] Heewoo Jun 和 Alex Nicho,《Shap·E:生成条件 3D 隐式函数》(https://arxiv.org/pdf/2305.02463.pdf) (2023)

[2] Yichun Shi 等人,《MVDream:多视图扩散用于 3D 生成》(https://arxiv.org/pdf/2308.16512.pdf) (2023)

[3] Ying-Tian Liu 等人,《threestudio:用于扩散引导 3D 生成的模块化框架》(https://cg.cs.tsinghua.edu.cn/threestudio/ICCV2023_AI3DCC_threestudio.pdf) (2023)

[4] Rombach 等人,《使用潜在扩散模型进行高分辨率图像合成》(https://arxiv.org/pdf/2112.10752.pdf) (2022)

附录 A:3D 画廊

这里是我为这篇文章创建的 3D 物体。您可以在此处与之互动或下载 STL 文件。

图 8 雕塑

cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fsketchfab.com%2Fmodels%2F5d5dff084d854039aa38d5f272ba469a%2Fembed&display_name=Sketchfab&url=https%3A%2F%2Fsketchfab.com%2F3d-models%2Ffigure-8-sculpture-5d5dff084d854039aa38d5f272ba469a&image=https%3A%2F%2Fmedia.sketchfab.com%2Fmodels%2F5d5dff084d854039aa38d5f272ba469a%2Fthumbnails%2F2994c2608db14e179a3a04b2ab5ff9b3%2Ff4728a04b509493f9d9ac8f9b3deeaba.jpeg&key=d04bfffea46d4aeda930ec88cc64b87c&type=text%2Fhtml&schema=sketchfab

底座上的海豚

cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fsketchfab.com%2Fmodels%2Fd11aee8a17f24f6cb470408aeabf70c1%2Fembed&display_name=Sketchfab&url=https%3A%2F%2Fsketchfab.com%2F3d-models%2Fdolphin-on-a-pedestal-d11aee8a17f24f6cb470408aeabf70c1&image=https%3A%2F%2Fmedia.sketchfab.com%2Fmodels%2Fd11aee8a17f24f6cb470408aeabf70c1%2Fthumbnails%2F475994c7b04a4cb1a8160e6a485b64cf%2F55e579afd4354de39897ac49bc3ce96b.jpeg&key=a19fcc184b9711e1b4764040d3dc5c07&type=text%2Fhtml&schema=sketchfab

低多边形立体派头像

cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fsketchfab.com%2Fmodels%2F09c65752f1254354a9d2b59c4c9ef209%2Fembed&display_name=Sketchfab&url=https%3A%2F%2Fsketchfab.com%2F3d-models%2Flow-poly-cubist-head-09c65752f1254354a9d2b59c4c9ef209&image=https%3A%2F%2Fmedia.sketchfab.com%2Fmodels%2F09c65752f1254354a9d2b59c4c9ef209%2Fthumbnails%2Fe0c4febec24347e0918e805d67abb0bc%2F60aac9b9934f4374807b0f0345a1e6f9.jpeg&key=a19fcc184b9711e1b4764040d3dc5c07&type=text%2Fhtml&schema=sketchfab

三角形抽象雕塑

cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fsketchfab.com%2Fmodels%2Ff439a754814448dc8d06c648eb11beb1%2Fembed&display_name=Sketchfab&url=https%3A%2F%2Fsketchfab.com%2F3d-models%2Fabstract-geometric-sculpture-with-triangles-f439a754814448dc8d06c648eb11beb1&image=https%3A%2F%2Fmedia.sketchfab.com%2Fthumbnails%2F4c57687b657445e1b46c83b35e494ad4%2Fplaceholder.png&key=a19fcc184b9711e1b4764040d3dc5c07&type=text%2Fhtml&schema=sketchfab

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/17 17:52:01

火山引擎正式上线 102.4T 自研交换机,构建 AI 网络新底座

从 AI 大模型训练到多模态推理,算力规模持续放大。网络已成为决定 AI 系统上限的关键因素:不仅需要更高带宽,还需更少层级以实现低成本、低时延互联。基于对超大规模 AI 集群的长期实践与思考,火山引擎正式上线 102.4T 自研交换机…

作者头像 李华
网站建设 2026/2/24 1:36:11

Redis安装和杂谈

Redis Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合&#xf…

作者头像 李华
网站建设 2026/2/14 22:08:13

滚柱导轨润滑周期预测

滚柱导轨为直线运动传动装置,接触面积大,负载能力和刚性强,适用于重载、高精度或刚性要求高的运用场景,如CNC数控机床、重型搬运设备、大型龙门机床、自动化设备等大型机械设备。是精密加工设备的核心传动配件,其润滑周…

作者头像 李华
网站建设 2026/2/14 21:48:45

应对海量编曲配乐订单,AI编曲软件让原创音乐人实现批量高产

在音乐创作的领域里,传统的人工编曲一直占据着主导地位。然而,随着科技的飞速发展,AI编曲软件正以其独特的优势逐渐崭露头角,成为应对海量配乐订单、助力原创音乐人实现批量高产的得力助手。与人工编曲相比,AI编曲软件…

作者头像 李华