Image Blaster:一张图炸出一个 3D 世界,5 分钟内跑完建模、场景和音效

Image Blaster:一张图炸出一个 3D 世界,5 分钟内跑完建模、场景和音效

你有了一张概念图、一张实拍照片,或者一段电影分镜参考。把它变成可探索的 3D 场景需要建模、UV、贴图、灯光、渲染——几个工种,几天时间。即使你用 AI 生成了一张图,从图到 3D 的那一步,仍然卡着。

Image Blaster 就是解决这个卡点的。它是一个 Claude Code skill,输入一张图,输出一个完整的 3D 世界——包括物体模型、静态场景、环境音效。全程在 Claude 终端里对话式完成,不到 5 分钟。

Image Blaster 做了什么

Image Blaster 串联了三个 AI 生成管线,把一张图拆开、理解、重建:

  • World Labs Marble 模型生成可探索的 3D 环境(高斯泼溅 spz 格式),处理静态背景
  • FAL 平台上的 Hunyuan 3D 模型把图中的动态物体提取出来,生成带贴图的 3D 模型(glb、obj 格式)
  • ElevenLabs SFX 模型为场景生成环境音效和物体交互音效(mp3 格式)

一句话总结管线:一张图 -> 空间重建 + 物体提取 + 音效匹配 -> 可导入引擎的完整资产包。

整个过程通过 Claude Code 的 skill 机制驱动。你把图放进 input/ 目录,在 Claude 终端里说一句”blast it”,skill 就会自动调用 World Labs 和 FAL 的 API,分步生成、逐个确认。你不需要写一行代码去调这些 API。

工具架构:8 个 Skill + 5 个外部服务

Image Blaster 不是一个单一的 skill,而是由 8 个 Claude Code skill 组成的协作管线,每个 skill 负责管线中的一个环节。

内部 Skill 管线:

Skill职责
image-blast-project项目总控。创建 world 目录结构,生成 project.json 和 scene.json,跟踪整个管线的状态
image-blast-uncover图像分析核心。读取图片,识别动态物体(可分离的独立物件),生成场景描述和物体列表
image-blast-plate生成干净背景(clean plate)。把确认的物体从原图中擦除,留下空白场景用于环境生成
image-blast-world调用 World Labs API 生成 3D 静态环境(高斯泼溅),用干净的 background 还原场景的空间感
image-blast-3d为每个动态物体生成 3D 模型,支持 Hunyuan(默认)和 Meshy 两个供应商
image-blast-sfx生成三种音效:环境氛围音、物体碰撞音、自定义提示音效
image-blast-image-edit通用图片编辑 skill,支撑 plate 生成和物体参考图裁剪
image-blast-wildcard万能出口。用户想调用任何 FAL 平台上的模型时使用(如额外的 AI 图像生成)

外部 AI 服务:

服务模型用途
World Labsmarble-1.1从单张图片生成可探索的 3D 高斯泼溅环境
FAL AIhunyuan-3d把图片中的物体提取并生成为带 PBR 材质的 3D 模型(glb/obj)
FAL AInano-banana默认图片编辑模型,用于物体去除、背景修复、参考图裁剪
FAL AIgpt-image-2备选图片编辑模型,用户可指定切换
ElevenLabselevenlabs-sfx生成环境氛围音、物体碰撞音效

所有的 skill 通过 .claude/settings.json 中声明的权限和钩子串在一起。SessionStart 钩子自动执行 setup-check 脚本,确保依赖和环境变量就位。UserPromptSubmit 钩子监听 input/ 目录的文件变化。

8 个 Skill 的协作流程

Image Blaster 的执行不是并发的,是一条严格有序的流水线。每一步的输出是下一步的输入:

1. image-blast-project(项目初始化)

接收用户指令后,创建 worlds/<任务名>/ 项目文件夹,生成初始 project.json,把 input/ 中的源图分片到 source/ 目录。这一步是所有下游 skill 的前置条件。

脚本位置:.claude/scripts/project/project-state.mjs

2. image-blast-uncover(图像分析与物体识别)

核心理解步骤。Claude 用自己的视觉能力逐张分析 source/ 中的图片,提取:

  • 场景名称和概括描述
  • 环境特征、视觉风格、光照、氛围
  • 所有可分离的独立物体(判断标准:人能不能搬起来?)——墙上的涂鸦不拆、地上的地毯不拆,但桌上的杯子、路边的贩卖机要拆

分析结果写入 worlds/<任务名>/source/<图片名>.json,合并成 image.json。然后等待用户确认哪些物体要生成 3D 模型。

3. image-blast-plate(清理背景)

用户确认物体列表后,调用 FAL 的 nano-banana(或 gpt-image-2)模型,把这些物体从原图中擦除,生成一张干净的背景图(plate)。这张图去掉了动态物体,只保留静态环境,给 world 生成用。

4. image-blast-world(环境生成)

用 clean plate 和修正后的场景描述,调用 World Labs Marble API,生成高斯泼溅格式的 3D 可探索环境。输出 spz 文件 + 碰撞体 glb + 全景图。

5. image-blast-3d(物体建模)

对每个确认的物体,先做一步 image edit 裁剪出干净的目标参考图,然后调用 Hunyuan 3D(或 Meshy)生成带贴图的 3D 模型。支持面数、PBR、贴图类型等参数控制。

6. image-blast-sfx(音效生成)

最后一步。根据场景描述生成环境氛围音(循环),根据物体材质生成撞击音效。通过 ElevenLabs SFX API 完成,输出后自动做静音裁剪和音量归一化。

7. image-blast-image-edit / image-blast-wildcard(辅助/扩展)

image-blast-image-edit 是底层图片编辑 skill,被 plate、3d 等 skill 内部调用。image-blast-wildcard 是万能出口,用户想调用 FAL 上其他模型时用(比如额外生成一张概念图)。

什么时候用

Image Blaster 不是万能的 3D 生产管线。它定位在概念验证和快速原型。

  • 游戏关卡概念:画一张场景概念图,Image Blaster 给你一个能走进去的初版 3D 布局,直接拖进 Unity/Unreal/Godot
  • 建筑可视化快稿:渲染一张建筑效果图,炸出一个可旋转查看的空间,给客户做第一轮 demo
  • 电影勘景参考:街拍一张实景照片,转换成 3D 环境做镜头规划
  • 机器人仿真环境:需要快速搭一个测试场地,用参考图直接生成

生成的资产可以嵌入任何游戏引擎(Unity、Unreal、Godot)、DCC 软件(Blender、Maya、3DS Max)或 Web 应用(Three.js、Electron)。导出格式是行业标准的 glb、obj、spz、mp3,不需要中间转换。

它的边界在哪

Image Blaster 很快,但快有快的代价。

  • 不是高质量生产管线:生成的是概念稿级别的 3D 资产,面数、贴图精度、UV 质量都不适合直接用于最终产品。后续需要在 Blender 或 Maya 里精修
  • 场景复杂度有限:一张图的视角决定了它能提取的信息量。被遮挡的物体、图外的空间、复杂的透明材质,生成模型是猜出来的,不是算出来的
  • 依赖外部 API:需要 World Labs 和 FAL 两个平台的 API key。两者都是独立服务,任何一个挂了或限流,管线就不通
  • 面数默认偏保守:Hunyuan 3D 的面数默认 50000,可以调到 150 万,但大面数对应更长的生成时间和更高 API 费用
  • 不适合多图场景重建:Image Blaster 处理单张图片。需要一个完整建筑或大型场景的精确扫描,用摄影测量或 NeRF 方案更靠谱

安装和配置

前置要求:已安装 Claude Code CLI。

# 1. 克隆仓库
git clone https://github.com/neilsonnn/image-blaster
cd image-blaster

# 2. (如果没装)安装 Claude Code
curl -fsSL https://claude.ai/install.sh | bash

# 3. 启动 Claude
claude

进入 Claude 终端后,把你的 World Labs API key 和 FAL API key 告诉 Claude。它会自动配置到项目中。

申请 API key:

项目目录中有 .env.example 文件作为配置参考,Claude 会按这个模板帮你设置环境变量。

使用流程

准备一张图片放到 input/ 目录,然后在 Claude 里说:

blast it and confirm each step with me

Claude 会按顺序执行 8 个 skill 的全流程:

  1. project skill 创建项目文件夹,初始化状态
  2. uncover skill 分析图片,提取物体列表,等你确认
  3. plate skill 擦除物体,生成 clean plate
  4. world skill 调用 World Labs 生成高斯泼溅场景
  5. 确认后 3d skill 逐个生成物体模型
  6. sfx skill 生成环境音效和物体 SFX
  7. 每步完成后暂停,等你确认再继续

生成的资产在 worlds/ 目录下,按任务组织的子目录存放。

Hunyuan 3D 参数控制

如果你需要调整模型的生成精度和风格,在对话中告诉 Claude 修改 Hunyuan 参数:

参数取值范围说明
face-count40000 ~ 1500000目标面数,默认 50000
enable-pbrtrue / false是否生成 PBR 材质,默认 true
generate-typeNormal / LowPoly / GeometryNormal 带贴图,LowPoly 减面,Geometry 纯白模
polygon-typetriangle / quadrilateralLowPoly 模式的面片类型,默认 triangle

“把汽车模型调到 20 万面,开 PBR”——附在 blast 命令后面就行。

实践示例

假设你有一张赛博朋克风格的街道概念图 cyberpunk-alley.png。放进 input/ 目录,启动 Claude:

> blast cyberpunk-alley.png and confirm each step

>> image-blast-project: 创建项目目录 worlds/cyberpunk-alley/
  - 移动源图到 source/0-cyberpunk-alley.png
  - 生成 project.json 和 scene.json 骨架

>> image-blast-uncover: 分析图片
  - 识别 3 个动态物体: neon-sign, vending-machine, hover-bike
  - 场景特征: 窄巷子、湿沥青地面、霓虹蓝紫光、远处城市嗡鸣
  - 等待确认... (用户确认 3 个物体)

>> image-blast-plate: 生成 clean plate
  - 调用 nano-banana 擦除 3 个物体
  - 输出: source/1-cyberpunk-alley-plate.png

>> image-blast-world: 生成 3D 环境
  - 调用 World Labs Marble
  - 输出: worlds/cyberpunk-alley/output/world/environment.spz

>> image-blast-3d (neon-sign):
  - 裁剪参考图 -> 调用 Hunyuan 3D
  - 输出: neon-sign.glb (50000 面, PBR)

>> image-blast-3d (vending-machine):
  - 裁剪参考图 -> 调用 Hunyuan 3D
  - 输出: vending-machine.glb (50000 面, PBR)

>> image-blast-3d (hover-bike):
  - 裁剪参考图 -> 调用 Hunyuan 3D (用户指定 100000 面)
  - 输出: hover-bike.glb (100000 面, PBR)

>> image-blast-sfx:
  - 环境音: worlds/cyberpunk-alley/output/sfx/city-hum.mp3
  - 物体音: neon-buzz.mp3, machine-hum.mp3, bike-hover.mp3
  - 后处理: 静音裁剪、音量归一化

All assets generated. Ready for import.

每步之间 Claude 都会暂停等你确认。你想跳过某个物体、调整面数、换一个生成模型——在确认前说就行。

拖进 Unity 或 Blender,直接开始细化。

结尾

Image Blaster 把”图到 3D”这个本来需要多个工种协作的步骤压缩成了一个终端命令。它不是要取代 3D 艺术家——它取代的是”在什么都没有的时候,先把东西搭出来”的那段空白。

下次你有了一张参考图,别先打开 Blender。先 blast 一下。

GitHub: https://github.com/neilsonnn/image-blaster

相关文章

22 个 Claude Code 技能打通内容创作全链路:从生成到发布的一条龙工作流

22 个 Claude Code 技能打通内容创作全链路:从生成到发布的一条龙工作流

你写完一篇技术博客,接下来要做的事情让人头疼:生成封面图、画配图、做信息图、转 HTML 适配微信公众号、发到 X 和微博。这些工作以前需要切换四五个工具,现在在 Claude Code 里打一条命令 ...

Caveman:砍掉 AI 输出 75% 的 Token,一个都不少

Caveman:砍掉 AI 输出 75% 的 Token,一个都不少

你的 AI Agent 话太多了。每句"当然!我很乐意帮你解决这个问题"都是一个浪费的 token —— 它在烧钱、拖慢响应速度、把真正的答案埋在客套话里。如果你每天都在用 AI 编码 agent — ...

风格 × 布局:baoyu-skills 的视觉设计系统如何让 AI 画得比你设计得还好

你让 AI 画张图,它给你一堆过饱和塑料感的玩意儿。你让 AI 做信息图,它把文字堆在一张不透明的背景上。你让 AI 设计幻灯片,它给你五颜六色、毫无一致的灾难。 问题的根源不在 AI 不会画画—— ...

DESIGN.md:纯文本设计系统,让 AI 编码 Agent 生成像素级匹配的 UI

DESIGN.md:纯文本设计系统,让 AI 编码 Agent 生成像素级匹配的 UI

你告诉 AI agent "做一个登录页",它给你一个蓝底白字的 Bootstrap 默认样式。你让它在现有项目里加一个弹窗,它写出来的按钮和你的设计稿差了三个色号。agent 不蠢 —— 它只是不知 ...

当 AI 输出从 10 行暴涨到 1000 行,Claude 团队为什么正在抛弃 Markdown

当 AI 输出从 10 行暴涨到 1000 行,Claude 团队为什么正在抛弃 Markdown

你的 AI 能一次性输出 1000 行计划、画复杂流程图、做完整代码审查。但你还在用 Markdown 读它。 Claude Code 团队工程师 Thariq 最近在 X 上发了一条很直接的推文: ...

跟 Claude 说一声,图就画好了:/drawio 在 Claude Code 里直接出图

跟 Claude 说一声,图就画好了:/drawio 在 Claude Code 里直接出图

你在跟 Claude Code 描述系统架构。它回复了一堆 ASCII art,差不多能看,但总觉得差点意思。你心想:"要是能直接让它画张图就好了。" 可以。 draw.io 的 Claude C ...