一句话结论:AI 图生 3D 现在已经能出「看着像」的模型,但离「能打」还差三步——检查朝向、修正不适合打印的细节、补一个能站住的底座。这篇把我从一张照片到一套可直接切片打印的文件的完整过程拆开写,包括所有翻车点。
需求很具体:把一张人物照片做成彩色 3D 打印用的手办文件,要求高精度、还原细节。
这两个限定词决定了后面所有技术选择:
很多人做到第二步就停下了:拿到一个在浏览器里能转着看的 GLB,觉得完成了。实际上那只是一个「渲染资产」,离「打印资产」还有一段距离。

WorkBuddy 的多模态能力里可以直接调图生 3D。这一步的核心参数只有三个:
参数 | 选择 | 理由 |
|---|---|---|
面数 | 最高档(约 150 万面) | 手办尺寸小,细节全靠面数撑;低面数在切片后五官会糊成一团 |
材质 | 开启 PBR | 彩色打印直接吃贴图,省掉后期上色 |
输出格式 | GLB + STL + OBJ(带贴图)全要 | GLB 给多色切片,STL 给单色,OBJ+贴图给全彩石膏打印 |
生成完成后我拿到的模型是这样一组数据:
第一版出来的时候,坦白说超出预期——裙子上的金绿色印花、手腕上的金色纹样、鞋子的金属质感都还原出来了。

问题出在脸部。
照片本身是写实渲染风格,AI 重建时把睫毛、眼睑这些结构按「视觉正确」的方式做了出来——也就是薄片。在屏幕上看没问题,但放到 3D 打印里:
这是图生 3D 的通病:它在优化「像不像」,不是在优化「能不能打」。这两件事在细节层面经常冲突。
直接重跑一次 3D 解决不了问题——同样的输入只会得到同样的结果。真正有效的是先把参考图改掉,再拿去重建。
关键在于「只动脸」。这里用的是高保真模式(input_fidelity 拉满),提示词把不该变的东西全部列出来锁死,把该变的讲清楚:
严格保持原图中人物的发型、丸子头轮廓、发簪、头部轮廓、身体姿势、 手臂姿态、服装(墨绿色印花单肩裙)、金色饰品、鞋子、身体比例、 视角、背景与构图完全不变,仅重绘人物面部五官: 二次元手办风格,五官左右对称、比例协调;眉眼清晰有神且有适度体积感, 鼻梁与嘴唇有合理的轻度立体起伏,脸部饱满,皮肤细腻,妆容淡雅; 睫毛改为短粗有厚度的立体造型并与眉眼贴合, 禁止任何超薄薄片状睫毛、禁止悬空薄片和易断裂细节; 整体为高精度手办渲染质感,柔和光照,画面清晰锐利。
提示词里最有效的其实是否定句:「禁止任何超薄薄片状睫毛、禁止悬空薄片和易断裂细节」。不写这句,模型一定会给你画一对好看的薄睫毛。

参数完全不变,只换参考图。得到的模型其实值得说一句:面数、比例、姿势都没变,只有面部结构被重建成有厚度的立体形态——这正是两步法的价值,改动范围可控。
拿到模型别急着导入切片软件。第一件事是判断朝向。
这里有个坑:AI 生成的预览图默认机位在模型背面。我前后两版模型的预览图都是从背后拍的,如果只靠肉眼判断朝向,很容易误判。
正确做法是读数据,不是看图。我写了一段脚本直接解析 GLB:
meshes[0].primitives[0].attributes.POSITION 对应的 accessor,读出顶点判据很朴素:脚的截面积远小于头肩,所以底面积 < 顶面积 = 正立。
体检结果:
项目 | 数值 |
|---|---|
世界坐标高度 | 1.1886 单位 |
高宽比 | 3.29 : 1 |
底部脚印 | 0.106 × 0.181 |
朝向 | 正立(脚在下),无需翻转 |
高宽比 3.29:1 也顺便验证了比例正常——如果算出 1.5 或 6,说明模型被压扁或拉长了。
原模型是双脚并拢站姿,接触面只有 0.106 × 0.181。树脂打印出来放在桌上,一碰就倒。
底座的尺寸不能拍脑袋。我的算法是:
然后用旋转体轮廓车削的方式,纯 Python 生成了一个 96 段的网格(带顶部倒角、底部台阶收边),导出为 STL。好处是和模型完全同一坐标单位,切片时用同一个缩放倍数就自动配套。
按 200mm 人偶高度算,底座是 Ø62mm × 11mm——差不多是标准手办底座的比例。
模型原始单位不是毫米,高度是 1.1886。换算公式就一条:
缩放倍数 = 目标高度(mm) ÷ 1.1886
目标人偶高度 | 缩放倍数 | 底座尺寸 |
|---|---|---|
150 mm | ×126.2 | 46 × 8.3 mm |
180 mm | ×151.4 | 55 × 9.9 mm |
200 mm(推荐) | ×168.3 | 62 × 11.0 mm |
250 mm | ×210.3 | 77 × 13.8 mm |
1. 图片不能走命令行参数传
图片 Base64 编码后动辄几十万字符,直接作为命令行参数会超过 Windows 的长度上限。解法是把调用逻辑写进脚本,用 importlib 加载模块内部函数,绕过参数传递。
2. Prompt 和 Image 不能同时传
第一次提交时我既给了描述又给了图,接口直接报错。图生 3D 的场景下以图片为准,描述留空就行——想要控制细节,应该在前面的重绘环节做,而不是在这里补。
3. 预览图机位在背面
见第五节。判断朝向一定要读顶点数据,别信渲染图。
4. 单图重建,背面是猜的
正面有参考,背面只能靠模型推断。如果希望背面也准(比如及腰长发、裙摆褶皱),需要补背面和侧面照做多视角重建。

5. 150 万面直接切会卡
STL 有 75MB,大多数切片软件加载这个量级会明显卡顿,移动模型时像幻灯片。实际打印 200mm 手办,30–50 万面已经足够表现细节——建议先在切片软件里减面,再摆盘加支撑。
环节 | 消耗 |
|---|---|
图生 3D(每次) | 45 积分 |
图生图重绘(每张) | 5–10 积分 |
整套做下来(含一次返工) | 约 60 积分 |
最终交付的是一个完整打印包:带 PBR 贴图的 GLB(彩色首选)、OBJ + 4K 贴图(全彩石膏)、STL(单色打印)、配套底座 STL、缩放与工艺指南、浏览器预览页。
整套流程跑通一次之后,再做第二个就会发现大部分时间花在等生成上,真正需要判断的只有第 3 步和第 4 步。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。