StyleTex: Style Image-Guided Texture Generation for 3D Models
Zhejiang University
一句话总结
StyleTex 通过在 CLIP 空间中用正交分解剥离参考图的内容信息、只保留风格特征,并结合几何感知 ControlNet 与 Interval Score Matching 蒸馏,为给定 3D 网格生成既忠于参考图风格、又与文本提示和几何一致的纹理。
研究背景
风格图引导的纹理生成,目标是给定一张参考风格图、一个无纹理的 3D 网格及其文本描述,生成一张同时与参考图风格和网格几何相协调的纹理。这在游戏与影视的风格化数字环境创作中有重要价值。
已有工作大多把两个需求分开处理:2D 风格图生成通常靠微调扩散模型或调整其隐藏层来注入风格特征;3D 纹理生成则通过多视角迭代 inpainting、多视角一致的图像合成,或分数蒸馏采样(SDS)等方法实现。将蒸馏方法与”风格对齐的扩散分布”结合看似可行,但面临两个核心挑战:
- 风格与内容的彻底解耦:在 2D 单视角下分离风格与内容大多能成功,但在 3D 中,任一视角解耦失败都会导致最终纹理出现风格不准和内容泄漏(content leakage)。
- 色调保持:蒸馏方法容易带来过饱和(over-saturation)与过平滑(over-smoothing),造成色调偏移和细节缺失,无法准确反映目标风格。
方法
整体框架
输入为无纹理网格 M、参考风格图 \(I_{ref}\)、以及描述目标风格与内容的文本提示。作者用 GPT-4 从参考图中提取两段文本:描述目标网格及风格的提示 \(y\),以及仅描述参考图内容的提示 \(y_{ref}\)。方法不直接优化 2D 纹理图,而是优化一个神经色场 \(\Gamma_{\theta}(p)=c\)(用 hash-grid 表示,\(p\) 为表面位置,\(c\) 为颜色),优化完成后再从色场采样出纹理图。
每次迭代渲染出图像、深度图与法线图,深度/法线经几何感知 ControlNet 注入以保证几何一致性;并借鉴 ISM 用 DDIM inversion 生成加噪结果 \(x_t\) 以获得更优的噪声估计。
flowchart TD
A[无纹理网格 M] --> R[可微渲染]
S[参考风格图 I_ref] --> G[GPT-4 提取文本]
G --> Y[目标提示 y]
G --> YR[内容提示 y_ref]
S --> ODCR[ODCR 正交分解<br/>提取风格特征 f_s]
YR --> ODCR
R --> DDIM[DDIM inversion 加噪]
DDIM --> UNET[扩散 UNet + 几何 ControlNet]
ODCR -->|交叉注意力注入风格| UNET
Y --> UNET
YR -->|负提示| UNET
UNET --> LOSS[风格引导 ISM 损失]
LOSS -->|梯度更新| NF[神经色场 Γθ]
NF --> R
NF --> TEX[采样输出纹理图]
关键设计 1:正交分解去内容(ODCR)
核心洞察是:把参考图的内容用其文本提示的 CLIP 嵌入来表示,并从图像嵌入中”减掉”该内容分量。相比 InstantStyle 那种直接把图像嵌入朝内容嵌入反方向平移的朴素做法(减太少去不掉内容,减太多改变色调),作者将图像嵌入正交分解为两部分,其中一部分与内容嵌入对齐,只保留与风格相关的正交残差:
\[f^{ref}_{g}=E^{img}_{CLIP}(I_{ref}),\quad f^{ref}_{c}=E^{text}_{CLIP}(y_{ref})\] \[f^{ref}_{s}=f^{ref}_{g}-\frac{f^{ref}_{c}\,(f^{ref}_{g})^{T}f^{ref}_{c}}{\lVert f^{ref}_{c}\rVert^{2}_{2}}\]仅保留风格特征 \(f^{ref}_{s}\) 去引导扩散模型。
关键设计 2:风格注入与内容负提示
作者观察到扩散模型不同 transformer 层对风格与内容的作用不同。与 2D 方法只选少数”风格层”不同,StyleTex 尽可能纳入所有对风格有影响的层来保持多视角风格一致性(否则会出现色调偏离参考图),同时用 ODCR 提取的干净风格特征通过交叉注意力注入。此外,把内容提示 \(y_{ref}\) 作为负提示进一步剥离残余内容。总的梯度更新方向为:
\[\delta(x_t,x_{t-1};y,I_{ref},y_{ref},t,t-1)=\epsilon_{\phi}(x_t;t)-\epsilon_{\phi}(x_{t-1};t-1)+\lambda_{cfg}\big(\epsilon_{\phi}(x_t;t,y)-\epsilon_{\phi}(x_t;t,y_{ref})\big)+\delta_{style}\]关键设计 3:风格引导项
借鉴分类器引导,显式加入风格引导项将渲染图分布导向目标风格分布:
\[\delta_{style}(x_t;y,I_{ref},y_{ref},t)=\lambda_{style}\big(\epsilon_{style}(x_t;t,y,I_{ref},y_{ref})-\epsilon_{\phi}(x_t;t)\big)\]关键设计 4:ISM 蒸馏 + 几何 ControlNet
采用 Interval Score Matching(ISM)替代 SDS,用多步 DDIM 取代单步 DDPM,缓解过平滑/过饱和并加速收敛;几何感知 ControlNet 接收渲染的深度与法线图,增强复杂几何的纹理细节并抑制 Janus 问题。总损失梯度为:
\[\nabla_{\theta}\mathcal{L}^{style}_{ISM}(\theta)=\mathbb{E}_{t,c}\Big[\omega(t)\,\delta(x_t,x_{t-1};y,I_{ref},y_{ref},t,t-1)\,\frac{\partial g(\theta,c)}{\partial\theta}\Big]\]实验结果
在 25 种风格 × 每种 4 个来自 Objaverse 的网格(共 100 个结果、每结果渲染 4 视角)上,用 Gram 矩阵距离衡量风格保真度、CLIP Score 衡量文本语义对齐,StyleTex 均优于对比方法:
| 方法 | Gram Matrix Distance ↓ | CLIP Score ↑ |
|---|---|---|
| TEXTure | 0.830 | 68.01 |
| TextureDreamer | 0.947 | 68.57 |
| IPDreamer | 0.910 | 61.81 |
| SyncMVD | 0.920 | 69.60 |
| Ours | 0.723 | 73.66 |
此外,37 名参与者对 12 种风格 × 24 个网格结果的用户研究中,StyleTex 在整体质量(4.60)、风格保真度(4.61)、内容去除(4.36)三项均以显著优势领先(次优方法各项分别为 3.07、3.45、3.23)。单个网格纹理在 NVIDIA RTX 4090 上约需 15 分钟优化。
亮点与局限
亮点
- 用文本 CLIP 嵌入表示内容、通过正交分解去除内容分量的 ODCR 策略,在 3D 场景下比朴素的嵌入平移更干净地解耦风格与内容,兼顾风格表达与色调保持。
- 免训练/免微调:相比 TEXTure、TextureDreamer 依赖对单张参考图微调(易过拟合或抽风格不准),本方法无需额外训练即可推广到与参考图主体不同的网格。
- ISM + 几何 ControlNet 有效缓解过饱和/过平滑并保证多视角与几何一致性。
局限
- 风格的存在使方法难以定义一个通用渲染模型来解耦高光与阴影,导致生成纹理中可能出现”烘焙进去”的高光或阴影。
- 蒸馏耗时较长(每个网格约 15 分钟),限制了交互式应用。
- 风格由材质、笔触、色调、绘画风格等多因素组合而成,方法无法单独提取或调整其中某一要素。
延伸思考
- ODCR 本质是”用一段文本作为内容锚点、在 CLIP 空间做正交投影去噪”,这一思路可迁移到其他需要属性解耦的多模态生成任务(如风格化图像/视频编辑)。
- 内容锚点依赖 GPT-4 从参考图反推的文本描述,描述质量与颗粒度会直接影响解耦效果;若参考图内容复杂或抽象,单条文本能否充分表征其内容值得关注。
- 结合 PBR 材质生成方向,若能把风格纹理进一步分解为反照率/粗糙度/金属度等通道,或可解决烘焙高光问题并让风格化资产更好地融入现代渲染管线。
- 蒸馏速度瓶颈可能随更快的扩散采样(few-step / 一致性模型)或更高效的 3D 表示得到改善。