一句中文提示,AI 自己搭出一整间房:浙大开源的 8B「3D 场景设计师」,会边搭边挑错
> 本文基于项目官方页面、GitHub 仓库与 Hugging Face 权重/数据集等一手开源信息整理。
3分钟看懂
过去一年,AI 生 3D 的模型不少:给一张图、给一句话,就能吐出一个 3D 模型。但真正做过 3D 内容的人都知道,最难的从来不是"生成一个东西",而是"把一堆东西摆在正确的位置上,搭成一个像人布置出来的场景"——也就是游戏里说的"置景(set dressing)"。
浙江大学 ACES Lab 的 OmniAI Group 开源了一个叫 Scene-Designer 的模型:你给它一句文字提示(比如"设计一间温暖的卧室,有床、床头柜和一个阅读角"),它会分四步把整套 3D 室内场景搭出来:先画户型图,再摆家具,然后立墙,最后加天花板。更关键的是,每搭完一步,它都会"长出眼睛"看一圈——从 1 个俯视 + 4 个斜视角度渲染出 5 张新画面,自己检查哪里不对,然后改。
代码、模型权重和评测数据集都已经开源,任何人可以下载到本地跑。
它为什么重要
生成 3D 的模型很多,但"会设计、还会给自己挑错"的很少。
团队把这种能力叫做"设计智能(design intelligence)",并拆成两半:
- 会设计:搭出来的房间要物理上站得住(椅子不能悬空、不能陷进地板)、功能上说得通(床旁边是床头柜,椅子真的对着阅读灯)、布局上协调。
- 会评审:能判断哪一版搭得更好、哪一版更差,并据此继续改。
这两个能力互相咬合:会评审,才能高效地纠错,而不是反复瞎试。团队在诊断研究中发现,通用的大模型在搭景时经常要试好几次才修好一个很简单的布局错误——因为它"看不出自己搭错了"。
Scene-Designer 就是把"会设计 + 会评审"这件事,从一句口号变成了一份可以下载、可以本地运行的 8B 权重。
它是怎么搭出来的(原理,尽量说人话)
一份 8B 的"视觉大脑"。 模型的底座是 Qwen3-VL-8B-Instruct,一个能同时看图、读文字的小尺寸模型,团队对它做了微调,让它专门干"搭 3D 房间"这件事,产出的权重叫 Scene-Builder(发布的是强化学习之前的 SFT 版本)。
分四步走,每步都能回头看。 流水线是:户型图 → 家具 → 墙体 → 天花板。每到需要"看"的阶段,它会拿到5 张全新渲染图(1 张俯视、4 张分别从东南西北斜着看),然后根据看到的画面决定下一步动作。
两种"经验"喂出来的。 团队准备了两类数据:
- Scene-OTA-35K:约 35,000 条"观察—思考—行动"步骤,来自 1,000 次真实搭景过程,并且把"做了但没用"的废操作剔掉,让模型学会高效纠错。
- Scene-OTC-15K:约 15,000 组对比样本,通过故意把房间改坏(布局跑偏、功能失效、物理穿模)来制造"好房间 vs 坏房间",让模型学会排优劣。
再用强化学习加一层"教练"。 一个叫 Scene-GRPO 的阶段会用一个冻结的评审器给每一步改动打分,奖励两类行为:比"兄弟方案"更好的选择、比自己上一版确实有进步的改动,同时照顾搭得完整、别啰嗦。
怎么用(操作步骤)
这是个研究性质的本地项目,不是网页应用。能跑起来的前提是:Linux 系统 + Python 3.11。
- 克隆仓库:
git clone https://github.com/ZJU-OmniAI/Scene-Designer.git,进入目录。 - 准备环境:按仓库的安装指引装好模型依赖,并单独下载它所依赖的 SceneSmith 及其集成补丁、几何服务和素材(SceneSmith 不打包在仓库里,需要另外拉取)。
- 下载权重:把
XuanyuLiu/Scene-Builder-Qwen3-VL-8B-Instruct拉到本地。 - 起本地工具服务(一个终端):
python -m uvicorn src.tool_server:app --host 127.0.0.1 --port 18000。 - 下提示词开跑(另一个终端):用
rollout_client指向本地服务,给一句提示词,例如"设计一间温暖的卧室,有床、床头柜和一个阅读角",再配--config scene_designer等参数。 - 看结果:完整的过程记录与工具调用轨迹会落到
results/里,最终产物是可继续编辑的 Blender 场景。想要"评审器帮忙挑更好的分支",再加上参数即可开启。
想省事先验证的话,仓库还提供了一条更便宜的"只用模型、不装全套 SceneSmith"的自检路径,先跑一步推理看看效果。
适用场景
- 游戏关卡与置景:室内是程序化关卡最容易"露馅"的地方。一个会考虑功能的智能体(床靠着收纳柜、椅子朝着阅读灯),比随机撒物件的地基强很多。
- 室内设计与建筑可视化:快速产出一个可继续编辑的布局草图,再在 Blender 里精修。
- 仿真/训练环境搭建:需要批量生成室内场景时,可以拿它做起点。
- 给"生成的房间"做自动质检:它的评审能力本身就能单独当"自动检查器"用——不生成,只判断好坏。
- 研究复现:权重、数据构造流程、训练与评测代码都开源,方便在此基础上继续做。
不适用场景(限制)
- 它不是成品产品:官方定位就是研究发布,不是开箱即用的 App,需要自己搭环境。
- 只能在 Linux 上跑,且依赖外部的 SceneSmith(MIT 许可)以及 Blender、Drake 等工具链。
- 发布的权重是强化学习之前的版本(即 Scene-Builder 的 SFT 阶段),不是最终形态。
- 目前放出的强化学习入口只优化"家具"这一环;户型图、墙体、天花板在 SFT 与推理阶段才支持。
- 论文仍是"即将上线(arXiv soon)"状态,严格的同行评审结论还没有。
避坑与注意事项
- 别把评测集混进训练:Scene-OTC-Bench 是留出来做评测的,官方明确要求不要拿它做训练数据。
- 想要"多试几个方案挑更好的"要显式开启:critic 引导的分支探索默认不开,需要加对应参数。
- 先自检再全装:完整安装 SceneSmith 依赖不轻,建议先用仓库给的"只用模型"的轻量自检,确认环境没问题再上全套。
- 物理正确性靠 SceneSmith:椅子的放置校验等来自它,所以你看到的"不悬空、不穿地",是这条外部依赖在兜底。
- 想回到旧模型要显式指定:Scene-Builder 基于的底座有版本差异时,调用里要写清模型名,避免加载到不是你预期的权重(这条对做二次开发的人尤其重要)。
行动建议
第一步,先打开官方项目页看两段演示视频,直观感受"一句提示搭出一间房"是什么样;第二步,如果打算动手,直接克隆 GitHub 仓库、按其 README/USAGE 指引先跑一遍轻量自检;第三步,想深入的话,重点看它公开的两套经验数据(Scene-OTA / Scene-OTC)和 Scene-GRPO 的奖励设计——这部分对做 3D 场景生成的研究者最有参考价值。
参考来源
- 官方项目页:https://zju-omniai.github.io/Scene-Designer/
- 官方代码仓库:https://github.com/ZJU-OmniAI/Scene-Designer
- 官方模型权重:https://huggingface.co/XuanyuLiu/Scene-Builder-Qwen3-VL-8B-Instruct
- 官方评测数据集:https://huggingface.co/datasets/XuanyuLiu/Scene-OTC-Bench