首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用 WorkBuddy 把一张照片做成能彩色 3D 打印的手办:全流程与三次踩坑复盘

用 WorkBuddy 把一张照片做成能彩色 3D 打印的手办:全流程与三次踩坑复盘

原创
作者头像
用户12859809
发布于 2026-10-29 22:30:07
发布于 2026-10-29 22:30:07
1180
举报

一句话结论:AI 图生 3D 现在已经能出「看着像」的模型,但离「能打」还差三步——检查朝向、修正不适合打印的细节、补一个能站住的底座。这篇把我从一张照片到一套可直接切片打印的文件的完整过程拆开写,包括所有翻车点。

一、先说清楚目标:能打,不是能看

需求很具体:把一张人物照片做成彩色 3D 打印用的手办文件,要求高精度、还原细节。

这两个限定词决定了后面所有技术选择:

  • 彩色 → 模型必须带 PBR 颜色贴图,光有形状没用
  • 高精度 → 面数要拉满,细节才不会被削平
  • 能打 → 模型不能有悬空薄片、不能倒立、不能没有底座

很多人做到第二步就停下了:拿到一个在浏览器里能转着看的 GLB,觉得完成了。实际上那只是一个「渲染资产」,离「打印资产」还有一段距离。

图1 原始照片,人物正面全身,深绿色印花单肩短裙、丸子头配发簪
图1 原始照片,人物正面全身,深绿色印花单肩短裙、丸子头配发簪

二、图生 3D:参数怎么选

WorkBuddy 的多模态能力里可以直接调图生 3D。这一步的核心参数只有三个:

参数

选择

理由

面数

最高档(约 150 万面)

手办尺寸小,细节全靠面数撑;低面数在切片后五官会糊成一团

材质

开启 PBR

彩色打印直接吃贴图,省掉后期上色

输出格式

GLB + STL + OBJ(带贴图)全要

GLB 给多色切片,STL 给单色,OBJ+贴图给全彩石膏打印

生成完成后我拿到的模型是这样一组数据:

  • 三角面 1,499,982,顶点 852,090
  • 自带 4 张 4K PBR 贴图:颜色、金属度、法线、粗糙度
  • 文件体积:GLB 80MB、STL 75MB、OBJ 包 56MB

第一版出来的时候,坦白说超出预期——裙子上的金绿色印花、手腕上的金色纹样、鞋子的金属质感都还原出来了。

图2 生成完成的 3D 模型渲染预览
图2 生成完成的 3D 模型渲染预览

三、第一次翻车:脸能看,但不能打

问题出在脸部。

照片本身是写实渲染风格,AI 重建时把睫毛、眼睑这些结构按「视觉正确」的方式做了出来——也就是薄片。在屏幕上看没问题,但放到 3D 打印里:

  • 0.1mm 以下的薄片,树脂打印出来一碰就断
  • 支撑必须打在睫毛或下巴上,拆支撑时必然带掉一块
  • 就算打出来了,薄片在光下是半透明的,观感很差

这是图生 3D 的通病:它在优化「像不像」,不是在优化「能不能打」。这两件事在细节层面经常冲突。

四、修法:两步法,先重绘再重建

直接重跑一次 3D 解决不了问题——同样的输入只会得到同样的结果。真正有效的是先把参考图改掉,再拿去重建。

第一步:图生图重绘,只动脸

关键在于「只动脸」。这里用的是高保真模式(input_fidelity 拉满),提示词把不该变的东西全部列出来锁死,把该变的讲清楚:

严格保持原图中人物的发型、丸子头轮廓、发簪、头部轮廓、身体姿势、 手臂姿态、服装(墨绿色印花单肩裙)、金色饰品、鞋子、身体比例、 视角、背景与构图完全不变,仅重绘人物面部五官: 二次元手办风格,五官左右对称、比例协调;眉眼清晰有神且有适度体积感, 鼻梁与嘴唇有合理的轻度立体起伏,脸部饱满,皮肤细腻,妆容淡雅; 睫毛改为短粗有厚度的立体造型并与眉眼贴合, 禁止任何超薄薄片状睫毛、禁止悬空薄片和易断裂细节; 整体为高精度手办渲染质感,柔和光照,画面清晰锐利。

提示词里最有效的其实是否定句:「禁止任何超薄薄片状睫毛、禁止悬空薄片和易断裂细节」。不写这句,模型一定会给你画一对好看的薄睫毛。

图3 重绘后的参考图,五官改为二次元手办风格,发型姿势构图未变
图3 重绘后的参考图,五官改为二次元手办风格,发型姿势构图未变

第二步:用新图重跑 3D

参数完全不变,只换参考图。得到的模型其实值得说一句:面数、比例、姿势都没变,只有面部结构被重建成有厚度的立体形态——这正是两步法的价值,改动范围可控。

五、第二次翻车:模型可能是倒着的

拿到模型别急着导入切片软件。第一件事是判断朝向。

这里有个坑:AI 生成的预览图默认机位在模型背面。我前后两版模型的预览图都是从背后拍的,如果只靠肉眼判断朝向,很容易误判。

正确做法是读数据,不是看图。我写了一段脚本直接解析 GLB:

  1. 拆 GLB 容器,取出 JSON chunk 和 BIN chunk
  2. 找到 meshes[0].primitives[0].attributes.POSITION 对应的 accessor,读出顶点
  3. 应用节点变换(四元数转旋转矩阵 + 平移 + 缩放),得到世界坐标
  4. 比较底部 6% 高度带和顶部 6% 高度带的截面积

判据很朴素:脚的截面积远小于头肩,所以底面积 < 顶面积 = 正立。

体检结果:

项目

数值

世界坐标高度

1.1886 单位

高宽比

3.29 : 1

底部脚印

0.106 × 0.181

朝向

正立(脚在下),无需翻转

高宽比 3.29:1 也顺便验证了比例正常——如果算出 1.5 或 6,说明模型被压扁或拉长了。

六、补一个底座:手办站不住

原模型是双脚并拢站姿,接触面只有 0.106 × 0.181。树脂打印出来放在桌上,一碰就倒。

底座的尺寸不能拍脑袋。我的算法是:

  • 半径 = 脚印对角线 ÷ 2 × 1.75(保证视觉上稳,不至于头重脚轻)
  • 高度 = 模型高度 × 5.5%
  • 中心 = 模型包围盒的 XZ 中心(对齐重心,不是对齐原点)

然后用旋转体轮廓车削的方式,纯 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. 单图重建,背面是猜的

正面有参考,背面只能靠模型推断。如果希望背面也准(比如及腰长发、裙摆褶皱),需要补背面和侧面照做多视角重建。

图4 4K PBR 颜色贴图,衣服印花和皮肤颜色都在这一张上
图4 4K PBR 颜色贴图,衣服印花和皮肤颜色都在这一张上

5. 150 万面直接切会卡

STL 有 75MB,大多数切片软件加载这个量级会明显卡顿,移动模型时像幻灯片。实际打印 200mm 手办,30–50 万面已经足够表现细节——建议先在切片软件里减面,再摆盘加支撑。

九、成本与产出

环节

消耗

图生 3D(每次)

45 积分

图生图重绘(每张)

5–10 积分

整套做下来(含一次返工)

约 60 积分

最终交付的是一个完整打印包:带 PBR 贴图的 GLB(彩色首选)、OBJ + 4K 贴图(全彩石膏)、STL(单色打印)、配套底座 STL、缩放与工艺指南、浏览器预览页。

十、如果你也想做,照这个顺序

  1. 选一张正面、光线均匀、全身入镜的照片,人物尽量不遮挡自己
  2. 图生 3D,面数拉满,PBR 打开,三种格式全要
  3. 先检查朝向和尺寸(读数据,别看图)
  4. 看脸部:有没有薄片结构、睫毛是否悬空。有就按第四节的思路重绘再重建
  5. 生成配套底座,和人偶同倍数缩放
  6. 切片时先减面,再摆角度、加支撑,支撑点避开五官

整套流程跑通一次之后,再做第二个就会发现大部分时间花在等生成上,真正需要判断的只有第 3 步和第 4 步。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、先说清楚目标:能打,不是能看
  • 二、图生 3D:参数怎么选
  • 三、第一次翻车:脸能看,但不能打
  • 四、修法:两步法,先重绘再重建
    • 第一步:图生图重绘,只动脸
    • 第二步:用新图重跑 3D
  • 五、第二次翻车:模型可能是倒着的
  • 六、补一个底座:手办站不住
  • 七、缩放:别忘了单位换算
  • 八、五个用血换来的坑
  • 九、成本与产出
  • 十、如果你也想做,照这个顺序
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档