Stable 3D 是 Stability AI 在三维生成方向推出的服务,目标是把自然语言描述转化为带网格和材质贴图的模型文件。它并不是单纯的图像生成,而是在扩散模型基础上增加了三维表示与网格重建步骤,因此输出结果可以直接导入 DCC 软件继续编辑。对不熟悉手工建模但需要快速验证造型的团队来说,这条链路能大幅降低原型阶段的成本。

使用 Stable 3D 前需要确认两件事:一是账号是否已开通 API 权限,二是本地是否安装 Python 和 requests 库。生成接口通常接收一个文本提示词,并在几十秒到几分钟内返回 GLB 或 OBJ 文件。GLB 格式会把网格和贴图打包在一起,适合直接预览;OBJ 则更适合接入传统建模流程。
生成流程与调用准备
Stable 3D 的生成链路可以简单拆成三个阶段。第一阶段是文本编码,模型把提示词转成语义向量;第二阶段是多视角扩散,围绕物体生成若干视角的深度或潜在表示;第三阶段是网格重建和贴图烘焙,最终输出带 UV 的模型。不同版本在细节上有差异,但核心思想都是先理解描述,再生成几何,而不是直接把单张图像转成浮雕。
调用前需要准备 API Key。登录 Stability AI 的开发者平台后,在 API 管理页面创建密钥。本地环境建议使用 Python 3.9 以上版本,并执行 pip install requests 安装请求库。生成任务对网络稳定性有一定要求,客户端超时设置不建议低于 300 秒,因为网格重建比普通图像生成更耗时。
输出格式的选择会直接影响后续工作流。如果主要使用 Blender、Maya 或 Unreal,优先选择 GLB/glTF;如果需要把模型拆开处理,或只想要纯几何,可以申请 OBJ 输出。OBJ 通常不包含材质,贴图文件需要单独保存,而 GLB 可以一次携带全部纹理。
提示词设计:从模糊到可用的关键
如果只写一个名词,生成结果往往不可控。比如输入“一个箱子”,模型可能给出木箱、金属箱甚至卡通宝箱。更有效的方法是同时约束主体、风格、材质和细节。可以写成“一个低多边形风格的木质宝箱,深棕色木纹,金属包角,轻微做旧,PBR 贴图,无背景,居中展示”。这样模型在几何和纹理两个层面都有了明确目标。
材质描述要写清楚是塑料、木质、金属、陶瓷还是布料,必要时加上表面状态,例如磨砂、抛光、锈蚀。风格词决定了模型的造型倾向,低多边形、写实、手办、科幻、中世纪等词会产生完全不同的边缘轮廓和拓扑密度。要避免在一条提示词里同时加入互相冲突的限定,比如“极简低模”与“高精度雕刻”,这会让生成结果不断在两种方向之间摇摆。
部分 Stable 3D 版本支持负面提示词,可以用简单词组排除不希望出现的内容,例如“不要底座、不要文字、不要背景”。负面提示词通常权重较低,核心还是要把正面描述写充分。描述顺序建议从整体到局部,先说物体类别和风格,再补充材质、颜色、结构细节,最后说明输出姿态和背景。
Python 调用 Stable 3D API 的完整示例
下面是一个可以直接运行的请求示例。代码使用 requests 库以表单方式提交提示词和参数,并将返回的二进制内容写入本地文件。实际调用前请把 API_KEY 替换成你自己的密钥,并根据控制台显示的端点确认 URL。
import requests
API_KEY = 'your_api_key'
url = 'https://api.stability.ai/v2beta/3d/stable-3d'
headers = {
'Authorization': f'Bearer {API_KEY}'
}
files = {
'prompt': (None, '一个低多边形风格的木质宝箱,深棕色木纹,金属包角,PBR贴图'),
'output_format': (None, 'glb'),
'texture_resolution': (None, '1024')
}
resp = requests.post(url, headers=headers, files=files, timeout=300)
if resp.status_code == 200:
with open('output.glb', 'wb') as f:
f.write(resp.content)
print('模型已保存为 output.glb')
else:
print(resp.status_code)
print(resp.text)
代码中 files 字典用于构造 multipart/form-data 请求。prompt 是必填字段,output_format 和 texture_resolution 是常见可选参数,具体名称以官方文档为准。返回 200 时,响应体就是模型文件,可以直接写入本地。如果返回 202 或带有任务 ID,则说明接口是异步模式,需要继续查询任务状态再下载结果。
生产环境中还应加入重试和异常处理。网络抖动导致超时时,可以在 requests.post 外加一层 try 块,捕获 requests.exceptions.Timeout 后重试两到三次。同时要注意 API 调用额度,不要在循环中无限制地发起生成,避免账号被限流。
导入 Blender 后处理与优化
生成出来的 GLB 文件通常可以导入 Blender,但初始网格往往存在面数偏高、三角面过多、法线方向不一致等问题。合理流程是先做减面,再检查材质和 UV,最后重新导出。减面可以使用 Blender 的 Decimate 修改器,或者用 Instant Meshes 等外部工具进行更可控的重拓扑。
import bpy bpy.ops.import_scene.gltf(filepath=r'C:\models\output.glb') obj = bpy.context.selected_objects[0] mod = obj.modifiers.new(name='Decimate', type='DECIMATE') mod.ratio = 0.35 bpy.ops.object.modifier_apply(modifier='Decimate') bpy.ops.export_scene.gltf(filepath=r'C:\models\output_lowpoly.glb')
这段脚本会把指定路径下的 GLB 导入 Blender,对第一个选中物体应用减面修改器,将面数比例降到原来的 35%,再导出新的低模文件。实际项目中不要机械地全局减面,重要结构比如边缘、卡线位置应当保留更多细节。可以先在编辑模式下清理非流形边和孤立顶点,再进行减面。
纹理方面,Stable 3D 通常会烘焙一张漫反射贴图,有时也会附带法线贴图。由于 AI 生成的 UV 布局不一定合理,贴图分辨率优先选择 1024 或 2048。若模型将进入实时渲染,建议在 Blender 里重新展 UV,并把漫反射、法线、粗糙度贴图导入标准 PBR 节点。完成这些处理后,模型才能稳定用于游戏、虚拟展厅或电商预览。
Stable 3D文本生成3DStability AI修改时间:2026-09-23 00:24:31