图片转3D雕塑 是做什么的?
输入一张图片,输出一个可验证的雕塑:图片显示的每一个表面都根据该图片自身的法线、轮廓和深度在该图片的相机中拟合,每一个隐藏表面都来自首先生成且必须相互一致的视图,并且构建的每一步都在Blender中记录和回放。
输入路由
任何输入最终都会进入相同的大小写布局(i2s.py new CASE --input ...)。详情:references/inputs.md。
| 输入 | 操作 | 备注 |
|---|---|---|
| 角色/生物/物体渲染图或AI图像 | new → run | 主要路径 |
| 真实物体照片(手办、玩具、产品、雕像) | new --kind photo → run | MoGe提供真实焦距和深度 |
| 带透明背景的PNG裁剪图 | new → run | Alpha通道作为蒙版;无需蒙版调用 |
| 包含多个元素的复杂图像 | prep --select "the red dragon" | SAM-3选取主题 |
| 画作、草图或平面插图 | prep --restyle | nano banana先将其转换为3D渲染,保持姿态 |
| 同一物体的多张照片 | views --import DIR | 你的照片替换生成的视图;通过配准找到角度 |
| 仅有一个想法 | imagine OUT.png "idea" → new | 生成一个清晰的全身渲染作为起点 |
| 没有API密钥 | 裁剪PNG(+你自己的视图) | 仅正面也可行:轮廓被膨胀,后部深度为猜测值 |
工作流程
在每一个检查点发布标记的视觉结果(checks/sheet_*.png,视图图表,转台帧):首先是图像,其次是数字。修复轮次会添加步骤;任何记录的内容都不会被编辑。
- 框架搭建。
i2s.py new CASE --input IMG --subject "简短名词短语"。查看图像并自己编写主题短语("矮胖卡通巨魔","陶瓷猫头鹰雕像"):它会进入每个视图提示中。输入被复制,带有其sha256值,并填充到最近的生成器宽高比,因此所有视图共享一个镜头。 - 前端映射。
i2s.py prep CASE(蒙版、MoGe-3深度+焦距、Marigold法线;单位根据主题归一化)。在继续之前检查ref/front_mask.png和ref/front_normals.png。选错主题 →--select。草图 →--restyle。 - 视图。
i2s.py views CASE(9个视图+1个保留视图,预计约$2;--set minimal为5个)。查看每个生成的图像:改变姿态、多余肢体或裁剪的主题都是坏视图。配准将拒绝不一致的视图(IoU < 0.80与其他视图外壳比较),但说明你看到的情况。没有被任何视图看到的区域需要从可以看到这些区域的角度添加新视图(--angles "-30:25"),而不是增加平滑度(references/views.md)。 - 外壳。
i2s.py hull CASE:配准每个视图(请求的角度只是先验:左右翻转被找到,前后保持),重新居中,筛选,记录雕刻,对称检测。在case.json中读取配准后的角度;i2s.py symmetry CASE on|off覆盖检测到的镜像平面。 - 拟合。
i2s.py fit CASE --stage all(形状→表面→细节,38次记录通过),然后cut(打开手指、腿部、手臂和身体之间照片显示的间隙),smooth(去除网状物和斑点),fit --stage polish。i2s.py run CASE按顺序执行步骤2-8,使用此默认计划(references/fitting.md)。 - 检查和迭代。
i2s.py check CASE为每个视图写入一张图表:参考、参考法线、雕塑、法线误差、轮廓差异。查找凸块、网状物、缺失间隙、扁平特征。针对它们:parts CASE --prompt "hands"然后fit --stage focus --region hands,cut --region hands,smooth --region box:...(references/checking.md)。没有前后对比图表绝不声称修复完成。 - 完成、Blender、影片。
finish(面平滑,OBJ/STL),blender(从照片的相机回放每一步,360°转台,每个视图,sculpt.blend,GLB),film(双面板时间流逝动画,以360°转台结束,转台,视图图表,主图像)(references/blender-and-delivery.md)。 - 报告并停止。
report写入out/REPORT.md、out/index.html和逐步骤图表。呈现时间流逝动画、视图图表和测量表格,说明不足之处,然后停止。用户决定下一步。
硬性规则
- 照片控制其可见内容。 生成的视图仅填充照片未看到的部分;它们的深度从不使用(在视图之间相差数厘米)。从不将生成视图的法线平均到照片的法线上。
- 配准每个视图;永远不要信任请求的角度。 在巨魔案例中,生成的视图偏差达20–155°,主要是左右翻转。搜索允许这些偏差,但将前视图保持在前方,后视图保持在后方(对称主体的后部轮廓类似于前部)。在
case.json中读取配准后的角度。 - 在雕刻前先筛选。 与其他视图不一致的视图是不同主体或姿态:拒绝它(并说明原因),而不是用它切割雕塑。
- 保留一个视图不参与拟合。 它从不移动表面;其相机在拟合前冻结。在用于拟合的视图之外单独报告它。它也是生成的,因此衡量一致性而非真实性。
- 测量,不要仅凭目测。 IoU、轮廓距离、法线角度、相对于参考本身粗糙度的粗糙度、照片的深度。一个数字从不代表“质量”:并列报告它们。
- 距离场保持精确。 每次操作都会重新计算网格的距离场(条带内的精确三角形距离,条带外的EDT)。偏移不精确的场、镜像场本身或模糊法线目标会在构建该案例的案例中产生阶梯、波纹环和平坦的鼻子(
references/lessons.md)。 - 记录一切。 每次雕刻、通过、切割和平滑都是
build/steps/和build/log.jsonl中的一步,在Blender中回放并显示在时间流逝动画中。从不编辑已记录的一步;添加一个新步骤。 - 付费调用: 每次fal调用都通过案例预算(
settings.budget_usd),其请求ID在等待前保存在case.json中,并且不会盲目重新提交。FAL_KEY永远不会被打印或写入。 - 每个检查点都有视觉反馈,每个影片的第0帧都是一个完成的缩略图。
- 说明哪些是生成的。 仅从正面看到的主体的背面是生成器的猜测。
参考资料
| 文件 | 阅读时机 |
|---|---|
references/inputs.md | 路由不常见输入时;蒙版、重新样式、选择、导入照片、仅想法 |
references/views.md | 生成、判断、配准、筛选和添加视图时 |
references/fitting.md | 了解一次通过的作用、阶段、参数、切割/平滑/聚焦、默认计划 |
references/checking.md | 读取映射图表和指标、保留视图、下一步修复什么 |
references/blender-and-delivery.md | Blender回放、影片、导出、报告、审查页面 |
references/conventions.md | 世界坐标系、相机、单位、文件格式(用于编写新工具) |
references/lessons.md | 了解第一个案例出了什么问题以及为什么存在上述规则 |
模板:templates/CONTRACT.md(复制到每个案例中)、templates/acceptance.json(目标)。