社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub 开源神器:一张照片生成 3D 世界,场景、模型、音效全都有

极客之家 • 1 月前 • 339 次点击  

 

前两天刷到一条帖子,发帖的人说,GitHub 上有人传了个仓库,扔一张照片进去,五分钟给你一个能走进去逛的 3D 世界:带物理碰撞的网格、背景环境、环境音,全套都有。

他还补了一句,那些花了十年学 Blender 的人,今天一整天都在默默看着这个。

我顺着链接摸过去看了这个仓库,叫 image-blaster,顺手装进 Codex 里跑了一遍。这篇就聊聊我了解到的情况,实际跑起来的效果,还有比较现实的问题。

项目简介

作者是个人开发者 neilsonnn,MIT 协议开源。

这仓库自己是不生成 3D 的。硬要说的话,它更像一本写给 AI 助手看的工作手册,作者把"照片变 3D 世界"这件事拆成了几步,每一步都配了文档和脚本。官方推荐装在 Claude Code 里用,我看了下就是标准的 SKILL.md 结构,所以没走这条路,直接装进了 Codex,一样能跑。

放在以前,想拿一张照片弄出 3D 场景,得自己串好几个服务,生成环境用一个,建物体模型用一个,出音效还得再找一个,每个都要单独对接,挺折腾的。现在这一串步骤被它串成了一条线,你说一句话,它就顺着跑完了。

一张照片能生成什么

默认情况下丢一张照片进去,跑完能拿到三堆文件,我一个个说。

先说环境。 照片里不动的那些部分,墙面、地面、天空,会生成一个能自由漫游的 3D 场景,格式是 .spz 的高斯泼溅,差不多就是一张能走进去的全景照片。

然后是物体。 照片里能搬得动的东西,比如椅子、桌子、箱子,会单独建成 3D 模型,给的是 .glb 和 .obj 两种常见格式。

还有声音。 一段环境循环音,再加上每个物体自己的碰撞音效,都是 mp3。

产物不是只能看的 demo:Unity、Unreal、Godot 能直接拖进去,Blender、3ds Max、Maya 也能开,Three.js 网页里也能嵌。

背后调用的模型

真正干活的是这么几个模型。

环境生成靠 World Labs 的 Marble,就是李飞飞那家公司的产品。物体建模用的是腾讯混元的 3D 模型,音效是 ElevenLabs 出的,这两个都走 FAL 平台调用。过程中还有一道图像编辑,比如把照片里的物体从图里擦掉,默认用 nano-banana,也可以换成 gpt-image-2。

这些模型都不开源,全是收费 API。所以跑这个项目要自备两个 key,一个 World Labs 的,一个 FAL 的,按调用量计费。

实际使用流程

我跑的时候是这样的。

先把仓库 clone 下来,在目录里填好两个 key,然后往 input/ 文件夹里丢一张照片,就是这个小机器人头像,跟它说一句 "blast it and confirm each step with me",让它每跑一步都先跟我确认。

它第一件事是分析照片,然后列出一张清单,写清楚这张照片里哪些东西要建成 3D 模型。列完之后它会停下来等我确认,哪里不对我就直接改。

确认之后才正式开始跑。这里的顺序是有讲究的,得先把清单里这些物体从原图里擦掉,拿到一张干净的空景照片,再拿这张空景去生成环境。

不擦的话会有问题,生成的 3D 环境里会留着残影,直接穿帮。擦掉物体这一步,项目里叫 clean plate,是从影视后期借过来的概念。

擦干净之后就是逐个建物体模型,最后配声音,中间不用我管。

还有个细节我觉得挺舒服。它存文件的时候,原图编号是 0,之后每生成一张新图编号就加一,原图永远不会被覆盖,每次生成还留一份请求记录。哪一步跑废了,顺着编号找回去就行,不用重新花钱。

物体模型的精细度也能调。默认是五万面,想要低多边形风格的话,说一声切成 LowPoly 就行,还能选三角形面还是四边形面,PBR 材质默认开着。

来看看我头像这个小机器人3D成果物交付效果,完成度非常高,难怪十年学 Blender 的人都沉默了。

适用场景和局限

官方说它适合游戏关卡概念、建筑渲染、影视勘景、机器人环境。我实际用下来,最顺手的还是快速出个效果看看。比如做游戏的策划拿一张气氛图,几分钟后就能在里面走动,比对着平面图开会直观多了。

但也有一些局限:

照片拍不到的地方,全是模型自己脑补的,你只给一张房间正面的照片,那背面长什么样就是它编的。所以它生成的世界只能说"像"你的房间,不能当成真实还原。

碰撞体比较粗糙,物体的尺寸、重量这些物理参数都没有校准过,想直接拿去做机器人仿真训练的话,这套产物还不够。

写在最后

跑完一遍,我的感觉是:它把原本要手动拼几天的流程,压成了一句"blast it"。目前出来的东西还比较糙,精细活肯定替代不了,但拿来快速验证个想法是够用了。

仓库地址在下面,有兴趣的自己翻。两个 key 备好,照片丢进去,说一句 blast it,它就开始跑。

开源地址

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

 

 

这个公众号长期分享实用开源项目。如果你不想逐篇翻阅历史文章,可以直接关注微信公众号“极客之家”,通过后台留言与我们互动交流。

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/201908