从一张照片到 3D 世界:image-blaster 清洁底版完整指南
【免费下载链接】image-blasterAn image-to-world skillset for Claude.项目地址: https://gitcode.com/gh_mirrors/im/image-blaster
image-blaster 是一套给 Claude 用的「图生世界」技能集:丢一张照片进去,几分钟内就能得到一个可探索的 3D 环境、对应的物体模型和音效。这里只拆它最实用的一招——清洁底版(clean plate):把照片里的椅子、人物、道具擦掉,留一张「空的」背景图,再拿这张干净的底版去重建环境。
为什么不直接拿原图重建?image-blaster 会把照片拆成两半处理:能搬走的动态物体单独提取成 3D 模型(.glb/.obj),墙面、地面这类静态环境则重建为可走动的场景(Gaussian splat)。如果原图里还留着那把椅子,重建出来的环境里就会浮着一圈「椅子的残影」。所以顺序得倒过来:先确认哪些物体要单独建模,再把它们从原图里擦掉,最后用擦干净的底版生成静态环境。这一步就是 image-blaster 里的image-blast-plate技能。
两个 API Key 分别填在哪
先把环境配好,只需三小步:
拿到仓库并进入:
git clone https://gitcode.com/gh_mirrors/im/image-blaster cd image-blaster装好 Claude Code 后,复制环境变量模板并填入密钥:
cp .env.example .env文件里要填两把钥匙(约定见 .claude/rules/project.md):
WORLD_LABS_API_KEY—— 交给 World Labs,负责生成 3D 世界;FAL_KEY—— 交给 FAL,3D 建模、音效、图像编辑都走它,清洁底版依赖的就是这把 Key。
终端里输入
claude进入对话,把两个 Key 发给它即可开工。
把照片丢进 input/,再让它学会认物体
步骤 1:图片进input/
把想「清洁」的照片放进仓库根目录的input/文件夹。跑分析时,image-blaster 会自动把input/里的文件暂存(stage)到worlds/<世界名>/source/下,从此源图路径就固定下来(对应 image-blast-project 技能)。
步骤 2:分析 + 你点头确认
接着它按 image-blast-uncover 技能 逐张读图:
- 用观察性的描述写场景——环境、光照、氛围;
- 只挑「人搬得走」的独立物体,一把椅子算,墙上的钉子不算;
- 结果落进
worlds/<世界名>/image.json,然后停在这里等你确认哪些物体要做成 3D 模型。
image-blaster 会把你确认的物体(如蝴蝶)单独提取建模,再从底版中移除它们。
这步是关键:只有你点头的物体会写进worlds/<世界名>/output/<物体名>/object.json,而清洁底版正是照着这份「已确认清单」来拼移除提示词的。
一句话生成清洁底版
确认完物体,直接对 Claude 说(照着发就行):
给
my-room这个世界生成一张 clean plate,把我确认的物体从源图里移除。
它会在后台拉起 image-blast-plate 智能体,由 image-blast-plate 技能 驱动。有几处设计值得知道:
- 一次编辑删完所有:全部确认物体合并进一条移除提示词,单次图像编辑搞定,不拆成多次;
- 提示词只做减法:只说删什么,不说留什么,免得模型「顺手」动背景;
- 底版是一张新的源图:写进
worlds/<世界名>/source/,编号用下一个可用的(命名见下一节); - 跑完会汇报:输入图、输出底版图、请求元数据、实际使用的提示词。
真正干活的入口是 generate-edit.mjs,带--role plate参数标识这是一次底版生成,--provider参数可切换图像编辑模型。
底版落在哪个目录,怎么核对
一次底版生成后,source/目录长这样(完整约定见 .claude/rules/project.md):
worlds/my-room/source/ 0-room.png ← 原始照片 0-room.json ← 这张图的分析结果 .0-room-request.json ← 原始请求元数据(隐藏文件) 1-room-plate.png ← 清洁底版,注意编号是 1 不是 0 .1-room-plate-request.json ← 底版请求元数据规则很简单:N-slug.ext里的N是生成序号,0永远是原始图,数字越大越是后派的生图;每张图旁还躺着一个隐藏的.N-slug-request.json请求记录,支持断点续传和本地修复。靠这套编号,原图永远不会被覆盖——每次编辑都产出一张新编号的图,来龙去脉查得到。
几个常见卡点:
- 底版文件不见了:请求记录里有模型返回的 URL、本地却缺文件,用 ensure-local-assets.mjs 从对应请求 JSON 把本地文件补回来,不用重新花钱生成。
- 底版把背景改坏了:重新发起请求,指令里写死「只做移除,不要修补或新增内容」,或者换模型再试。
- 想顺手删掉没确认过的东西(路人、电线杆):调用底版时追加一句「额外的移除说明」就行。
默认 nano-banana,不满意就换 gpt-image-2
底版默认用nano-banana做图像编辑;想换的话,在提示里点名gpt-image-2即可。两个入口脚本 nano-banana-edit.mjs 和 gpt-image-2-edit.mjs 都由 FAL 统一调度,不用额外配置。
底版越干净,重建出的世界越可信——上图是 image-blaster 重建出的 3D 环境。
底版之后按 image-blast-project 的建议顺序走:先跑image-blast-world生成 3D 世界,再逐个跑image-blast-3d出物体模型,最后用image-blast-sfx配上环境音和撞击音效。整条链路串起来就是:原图 → 物体分析确认 → 清洁底版 → 环境 3D 化 → 物体建模 → 音效,产物能在 app/ 查看器 里实时浏览。
更多玩法(视频级世界、SFX、通配模式)看 README.md 和 .claude/skills/ 下的各技能文档。
【免费下载链接】image-blasterAn image-to-world skillset for Claude.项目地址: https://gitcode.com/gh_mirrors/im/image-blaster
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考