跳转至

ShapeWords: Guiding Text-to-Image Synthesis with 3D Shape-Aware Prompts

会议: CVPR 2025
arXiv: 2412.02912
代码: 项目页面
领域: Image Generation
关键词: 3D形状引导, 文本到图像, 形状token, CLIP空间, 可控生成

一句话总结

提出ShapeWords,将3D形状编码为可嵌入文本prompt中的特殊token(Shape2CLIP模块),实现视角无关的3D形状引导文本到图像生成,在组合场景中显著优于ControlNet深度图条件方法。

研究背景与动机

文本到图像生成的形状控制面临三大挑战: - 文本-视觉条件失衡:ControlNet等方法用深度/边缘图条件控制形状,但在组合场景(如"树下的椅子")中形状条件常压过文本描述 - 视角依赖:深度图只捕获单一视角的2D信息,丢失完整3D几何 - 缺乏形状探索:用户可能想看目标形状的变体,但现有方法只能精确复现或完全忽略形状

核心想法:将3D形状信息直接"写入"文本prompt的token中(而非作为外部条件),让形状与文字在同一空间自然融合。

方法详解

整体框架

  1. 用Point-BERT编码3D形状为token序列 \(\mathbf{B} \in \mathbb{R}^{65 \times 384}\)
  2. 文本prompt经OpenCLIP编码为 \(\mathbf{T}\),其中形状占位符用类别名替代
  3. Shape2CLIP模块通过cross-attention学习prompt残差 \(\delta\mathbf{T}\),修改形状token和EOS token的embedding
  4. 修改后的embedding送入Stable Diffusion 2.1生成图像
  5. 用户通过 \(\lambda\) 参数控制形状引导强度

关键设计1:Shape2CLIP残差映射

  • 功能:将3D形状信息注入到文本prompt的embedding空间
  • 核心思路:6层cross-attention块中,Point-BERT的形状表示作为key/value,prompt embedding作为query。输出的残差 \(\delta\mathbf{T}\) 只修改两个关键位置的embedding:形状标识token和EOS token,其余保持不变。\(\mathbf{T}'[s,e] = \mathbf{T}[s,e] + \delta\mathbf{T}(\mathbf{B}, \mathbf{T}; \theta)\)
  • 设计动机:残差方式比直接前馈更不易过拟合(训练数据有限)。只修改2个token而非全部,保留了prompt其余部分的原始语义(如场景描述、风格指令),避免形状信息"淹没"文本含义

关键设计2:可控形状引导强度

  • 功能:让用户在"忠实于3D形状"和"允许创意变体"之间灵活控制
  • 核心思路:推理时通过参数 \(\lambda \in [0,1]\) 线性插值:\(\mathbf{T}'[s,e] = \mathbf{T}[s,e] + \lambda \cdot \delta\mathbf{T}\)\(\lambda=0\) 忽略形状,\(\lambda=1\) 最大形状约束,中间值产生风格化变体
  • 设计动机:用户手中可能只有粗糙几何原型(如简单方块),需要模型在保持基本形态的同时进行合理的细节想象

关键设计3:SDS-based训练

  • 功能:仅训练Shape2CLIP模块,固定所有其他组件
  • 核心思路:在ShapeNet形状上用ControlNet生成深度条件图像作为训练数据(1.58M对),但用SDS损失 \(\mathcal{L}_{\text{SDS}}(\theta) = W(t)\|\hat{\epsilon}_{i,k} - \epsilon_{i,k}\|_2^2\) 训练Shape2CLIP,利用DreamTime的时间加权函数稳定训练
  • 设计动机:SDS损失让训练目标与生成质量直接对齐,而非简单模仿ControlNet输出。训练数据的prompt特意避免提及具体3D结构,使模型学习泛化映射而非记忆特定形状-外观对

损失函数

SDS损失 + DreamTime时间加权。

实验关键数据

主实验:组合prompt生成质量

方法 FID↓ KID↓ Aes.↑ CLIP↑
ControlNet 97.0 10.40 5.24 26.9
CNet-Stop@60 90.5 10.25 5.20 28.3
CNet-Stop@80 92.4 9.72 5.17 27.5
ShapeWords 73.8 8.58 5.45 31.5

在组合场景下ShapeWords全面优于ControlNet变体,FID降低24%,CLIP相似度提升17%。

形状忠实度评估(简单prompt)

方法 S-IOU↑ S-CD↓
CNet-Stop@20 (category) 较低 较高
ShapeWords@20 更高 更低

ShapeWords在各种停止步数下一致优于对应的ControlNet变体。

关键发现

  • ControlNet在组合prompt下严重忽视文本上下文(如"树下的椅子"只生成椅子无树)
  • ShapeWords在训练时使用ControlNet生成数据,但推理时完全不需要深度图
  • 用户研究中ShapeWords在形状和文本遵循度上均被优先选择
  • 形状引导强度 \(\lambda\) 提供了平滑的形状保留-创意变体过渡

亮点与洞察

  1. 形状即单词:将3D几何编码为语言token的思路优雅地统一了形状和文本条件
  2. 组合场景的突破:在需要"形状+上下文"的复杂prompt中表现远优于深度图方法
  3. 视角无关:Shape2CLIP编码完整3D而非单一视角,支持多视角一致生成

局限与展望

  • 仅在ShapeNet 5个类别上训练,对未见形状类别的泛化待验证
  • 生成图像中的形状与目标3D的精确程度仍不如ControlNet(精度vs灵活性trade-off)
  • 训练依赖ControlNet生成的合成数据,数据分布可能与真实图像有差距
  • 未来可扩展到大规模3D数据集(Objaverse)和更多样的形状类别

相关工作与启发

  • ControlNet:深度图条件的标杆方法,ShapeWords在组合场景下大幅超越
  • Continuous 3D Words:将3D属性嵌入token的相关工作,但只处理属性而非形状
  • Point-BERT:提供3D形状的结构感知特征编码

评分

⭐⭐⭐⭐ — 将3D形状嵌入语言空间的创新思路简洁有力,组合prompt场景的突破有实际价值。类别覆盖范围有限是主要瓶颈。

相关论文