图片转 3D 世界完整指南:image-blaster 如何把一张照片变成可探索场景
【免费下载链接】image-blasterAn image-to-world skillset for Claude.项目地址: https://gitcode.com/gh_mirrors/im/image-blaster
image-blaster 是一个开源的 AI 技能包,专门做图片转 3D:给它一张普通照片,它会在几分钟内产出一整套可漫游的 3D 世界——高斯泼溅(Gaussian Splat)静态环境、独立 GLB 动态物体、配套环境音效,一样不少。传统做法里这些资产要建模师排期好几天,这里则压缩成一次对话。
先把产物想清楚:一个"世界"由 3 类文件组成
理解这个项目最快的方式,是看它最终吐出的东西。每次生成完成后,worlds/<世界名>/output/目录里会有三类文件,分别由不同的模型负责:
| 产物 | 格式 | 负责生成的模型 |
|---|---|---|
| 可漫游的静态环境 | .spz(高斯泼溅) | World Labsmarble-1.1 |
| 场景中的动态物体(逐个建模) | .glb/.obj | FAL 上的 Hunyuan 3D(可换 Meshy) |
| 环境循环音 + 物体碰撞音效 | .mp3 | ElevenLabs SFX |
另外还有一类"幕后"产物:图片清理阶段会用到nano-banana(默认)或gpt-image-2(备选)做图像编辑,负责把物体从原图里抠出来、生成干净底片。
申请 World Labs 与 FAL 的 Key 并写入 .env
整条流水线只依赖两个平台的 API Key,变量名已经定义在 .env.example 里:
WORLD_LABS_API_KEY:生成静态环境用FAL_KEY:生成 3D 模型和音效用(Hunyuan 3D、ElevenLabs SFX 都走 FAL)
把两个值填进项目根目录的.env即可。之所以要两个 Key 而不是一个,是因为"环境"和"物体/声音"分属不同厂商的模型,FAL 在这里充当了统一调用入口。
放好图片后,对 Claude 说这句话
跑通全流程只需要下面几步,每步都尽量短:
- 克隆仓库并进入目录:
git clone https://gitcode.com/gh_mirrors/im/image-blaster cd image-blaster - 安装 Claude CLI 后在项目根目录运行
claude,启动时把上面两个 API Key 交给它(这一步就是在完成.env配置)。 - 把想转 3D 的图片放进
input/目录。 - 对 Claude 说:"blast it and confirm each step with me"——让它执行每个阶段并逐步跟你确认。
省钱小贴士:图片分析和物体确认阶段不产生费用。可以先让 Claude 把识别到的"可搬走物体"列出来,你再决定哪些真正要做成 3D 模型,避免为一堆不重要的物体付费。
六个阶段在幕后做了什么
这些"逐步"背后,其实是.claude/skills/目录下的一组 Claude 技能在自动接力,每个阶段一个目录:
- image-blast-project:创建
worlds/<世界名>/结构,把源图归档进source/。没有统一的项目骨架,后面的阶段就没地方落盘。 - image-blast-uncover:让 AI"读图",提取场景里可搬走的动态物体,写入场景描述
image.json。 - image-blast-plate:把已确认的物体从图中移除,得到"干净底片"。这一步很关键——底片如果还带着物体,生成的静态环境会把它们再"长"一遍,场景里就会出现双胞胎。
- image-blast-world:把底片连同合成好的"空环境"描述发给 World Labs,产出
.spz静态世界(含碰撞体、全景图等配套资产)。 - image-blast-3d:每个物体单独提取、单独建模,保证每个动态物体都是独立、可复用的模型文件。
- image-blast-sfx:生成环境循环音,并为每个物体配上专属碰撞音效。
所有阶段产物统一收在worlds/<世界名>/output/,中断后可以断点续跑,不用从头再来。
用 bun run dev 打开网页查看器
仓库自带一个 React + Three.js 查看器(入口 WorldViewer.tsx),在根目录执行bun run dev启动。它会扫描本地worlds/目录,自动列出所有已生成的世界:
- 侧边栏可以切换不同世界,以及同一世界的多个生成版本;
- 按
`键可隐藏全部 UI,进入纯探索模式; - 支持触屏操作,也能环绕指定物体调整视角。
场景光照由内置的全景环境贴图驱动,效果类似下面这张:
小细节:如果生成失败或资产缺失,查看器只加载本地文件、不依赖任何远端 URL,所以断网也能回看已生成的世界。
面数、减面、PBR:3D 模型质量的 4 个开关
默认情况下 Hunyuan 3D 会输出约 5 万面、启用 PBR 材质的贴图模型。对模型不满意时,直接指示 Claude 调整参数即可,不用碰脚本:
| 参数 | 作用 | 默认值 |
|---|---|---|
--face-count | 目标面数,取值 40000~1500000,越大细节越多 | 50000 |
--generate-type | Normal贴图模型 /LowPoly低模减面 /Geometry纯白几何体 | Normal |
--enable-pbr | 是否生成 PBR 材质 | true |
--provider | 切换 3D 生成商,meshy可换用 Meshy | hunyuan |
做快速预览时可以先用LowPoly或 Geometry-only 省时间,确认造型对了再拉高面数出正式版。
产物的去向:游戏引擎、DCC 还是网页
这套产物格式是通用的,可以直接嵌入:
- 游戏引擎:Unity、Unreal、Godot;
- 桌面 DCC:Blender、3DS Max、Maya;
- 网页应用:任意 Three.js 项目或 Electron 应用。
适用场景很宽:游戏关卡概念预演、机器人训练场地、电影勘景、建筑渲染草图,或者单纯想把童年卧室 3D 化。整个流程的起点始终是同一件事——一张照片;终点则是一个能走进去、能听到声音、能继续往引擎里搬的世界。
【免费下载链接】image-blasterAn image-to-world skillset for Claude.项目地址: https://gitcode.com/gh_mirrors/im/image-blaster
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考