用對話編輯一間 3D 房間:AI 平面圖編輯器係點運作嘅

Flur Team6 分鐘閱讀
Flur 嘅智能代理構建器對話面板打開喺一間 3D 房間旁邊,可見「喺最長嘅牆度加一扇門」呢類建議編輯

「對話式編輯」聽落好似係喺一個 3D 工具之上加咗一層介面便利——打幾隻字, 而唔使喺選單裡面撳嚟撳去。但底層實際發生緊嘅嘢比呢個具體得多, 理解佢,既可以解釋一次對話編輯可以可靠咁做到咩,都可以解釋佢喺邊啲地方依然需要人。

由一張扁平上載圖到可編輯場景圖

起點係一張 2D 平面圖圖片——線條、尺寸、門嘅開合方向, 一個 3D 工具冇辦法直接對佢做任何操作。一個視覺語言模型讀取呢張圖片 並提取結構:牆身位置、開口、房間邊界。呢套結構會被搭建成實際嘅 3D 幾何結構——具有真實高度同厚度、位置同尺寸都正確嘅牆身—— 再由真實目錄將家具擺入去。結果係一張場景圖:牆身、家具、物料 作為各自獨立、可定址嘅對象,而唔係一個俾人壓平嘅模型。 呢個亦正正就係對話面板開始變得有用嘅地方——由呢一步開始, 之後發生嘅一切,都係要求模型針對一個佢已經可以讀取嘅場景嚟描述改動。

「已經可以讀取」呢一點比聽落去更加重要。一句「將梳化挪近窗口」嘅對話請求, 之所以可以被解析做一個具體動作,正正係因為模型面對嘅係一個結構化場景—— 一個具體嘅梳化對象,一個具體嘅窗口位置,兩者都可定址。 同一句說話打喺一塊冇場景背景嘅空白畫布上,唔會有任何可執行嘅意義; 正正係場景圖,將自然語言變成咗確定性引擎真正可以執行嘅嘢。

一次對話編輯喺底層究竟改動咗咩

唔係每一個請求都觸碰同一層。物料同家具位置類請求—— 「將主題牆調深啲」「將梳化挪近窗口」——係場景編輯: 佢哋改變嘅係邊個對象佔據某個位置,或者某個表面引用邊種物料, 完全唔觸碰底層嘅牆身或者房間幾何結構。結構性請求—— 「喺最長嘅牆度加一扇門」「將最細嘅房間放闊半米」——就確實會改變幾何結構: 一個新嘅開口會俾人切出嚟,或者一幅牆會俾人移動。

處於「構建」模式下嘅智能代理構建器,可見「上載一張平面圖,我會將佢搭建成 3D」提示以及一個唔同嘅房間幾何結構

喺呢兩種情況入面,模型嘅工作都係同一件事:將一句自然語言請求, 翻譯成對場景圖嘅一次具體、結構化改動——而唔係將房間由頭重新生成。 正正係呢個分別,令一次對話編輯保持快速,亦令請求冇觸碰到嘅一切 完全保持原狀。呢個亦係點解一個界定清晰嘅請求會產出一次細而快嘅編輯, 而一個含糊嘅請求要麼俾人拒絕,要麼產出一個遠比預期更大嘅結構性改動—— 模型並唔係喺度估計改動範圍,佢係喺場景圖容許嘅範圍內, 盡可能字面咁翻譯呢個請求。

檢查一次編輯自己嘅成果

一次冇受約束嘅編輯好容易產出一間無效嘅房間——一幅牆被搬到另一幅牆裡面, 家具最終同佢本應靠住嗰幅牆重疊埋一齊。模型有一個可以喺對話中途調用嘅 結構校驗工具,系統提示都會叫佢喺做完一個有風險嘅結構性改動之後, 用呢個工具再查一次:佢會將牆身規整度問題,同任何同牆身、房間邊界 或者另一件家具產生重疊嘅問題,以純文字形式報告返俾模型。

呢度值得講清楚呢個究竟係咩、又唔係咩。等報告返嚟嗰陣,改動其實 已經生效咗——移動一幅牆、加一個開口、重新擺放一件家具,模型一調用 工具就即刻生效。事後嘅校驗,係模型喺檢查自己嘅成果,而唔係企喺 一次提議改動同場景之間嘅一道閘門。而家具嗰部分檢查具體嚟講係 建議性質:佢會喺報告入面標出重疊,但唔會因此阻止或者撤銷造成 呢次重疊嘅編輯。真正防住大多數問題編輯嘅,並唔係一層強制機制—— 而係模型被要求去檢查,而且大多數時候的確會咁做。

人喺邊度依然需要介入

對話式編輯可以可靠咁處理界定清晰、範圍明確嘅請求。對於界定唔清嘅請求, 佢嘅處理方式係要求澄清,而唔係靠估——一個真正含糊嘅指示 (例如冇任何具體細節嘅「等佢感覺高級啲」), 或者一個同模型自己解決唔到嘅物理約束相沖突嘅請求, 依然需要一個人嚟澄清真正想要嘅係咩,或者直接經人手工具完成呢項修改。 對話層係一條快速通道,適用於嗰啲具體到足以俾人翻譯成場景編輯嘅請求, 而唔係要取代嗰啲真正需要人類判斷力同意圖嘅決定。實際呈現出嚟嘅模式, 係一種分工:對話面板處理一次審閱週期裡面真正大量產生嘅、 細而具體、界定明確嘅改動,而人依然留喺流程裡面, 負責嗰啲真正需要品味或者模型唔具備嘅背景資訊嘅、數量更少嘅決定。

立即開始

想了解呢一切所建立喺嘅更早階段——最初嘅上載係點變成可編輯幾何結構嘅—— 可以參考 如何將 2D 平面圖轉化做 3D 房間。 想了解呢度模型嘅角色,同其他 AI 驅動嘅 3D 生成方式相比有咩唔同,可以參考 AI 3D 生成模型:究竟係咩喺生成 3D 房間。 想全面了解 Flur 喺編輯層之外仲搭建咗咩,可以參考 Flur 是什麼?

了解運作方式,或申請優先試用, 喺你自己嘅平面圖上試吓對話式編輯。