ps怎么做网站首页和超链接,舆情信息报告范文,全球推广,网站前台的功能模块https://arxiv.org/abs/2403.06775
FaceChain-SuDe: Building Derived Class to Inherit Category Attributes for One-shot Subject-Driven Generation
摘要
最近#xff0c;基于主体驱动的生成技术由于其个性化文本到图像生成的能力#xff0c;受到了广泛关注。典型的研…https://arxiv.org/abs/2403.06775
FaceChain-SuDe: Building Derived Class to Inherit Category Attributes for One-shot Subject-Driven Generation
摘要
最近基于主体驱动的生成技术由于其个性化文本到图像生成的能力受到了广泛关注。典型的研究工作主要集中在学习新主体的私有属性。然而一个重要的事实没有被认真对待即主体并不是一个孤立的新概念而应该是预训练模型中某个类别的特化。这导致主体无法全面继承其类别中的属性从而导致属性相关生成效果不佳。在本文中受到面向对象编程的启发我们将主体建模为派生类其基类是其语义类别。这种建模使得主体能够从其类别继承公共属性同时从用户提供的示例中学习其私有属性。具体来说我们提出了一种即插即用的方法称为Subject-Derived正则化SuDe。它通过约束主体驱动生成的图像在语义上属于主体的类别构建了基类-派生类的建模。在三个基准和两个骨干网络下进行的广泛实验中我们的SuDe方法在保持主体忠实度的同时实现了富有想象力的属性相关生成。代码将很快在FaceChain开源。
1. 介绍
最近随着文本到图像扩散模型的快速发展【22, 26, 29, 32】人们可以轻松地使用文本提示生成高质量、照片般逼真且富有想象力的图像。这使得人们对AI绘画在游戏设计、电影拍摄等各个领域有了新的期待。其中主体驱动的生成是一种有趣的应用旨在为特定主体定制生成。例如您感兴趣的东西如宠物、吊坠、动漫角色等。这些主体对于每个自然人用户来说是特定的并不存在于预训练扩散模型的大规模训练中。为了实现这一应用用户需要提供一些示例图像以便将主体与一个特殊的标记{S*}绑定然后可以用来指导进一步的定制。
现有的方法可以分为两种离线方法和在线方法。前者【31, 41】采用离线训练的编码器直接将主体示例编码为文本嵌入从而实现高测试效率。但其编码器的训练依赖于额外的大规模图像数据集甚至还需要像素级的注释以获得更好的性能【41】。后者【13, 14, 18, 30】采用测试时微调策略来获得代表特定主体的文本嵌入。尽管牺牲了测试效率但这种方法消除了对额外数据的依赖更便于应用部署。由于其灵活性本文中我们重点改进在线方法。
在部署中最用户友好的方式仅需要用户上传一个示例图像即一次性主体驱动的生成。然而我们发现现有方法在这一具有挑战性但有价值的场景中特别是在属性相关提示下表现并不总是令人满意。如图1a所示基线方法未能使“Spike”奔跑、跳跃或张嘴这些都是狗的自然属性。有趣的是预训练模型可以为非定制的“狗”生成这些属性【22, 26, 29, 32】。由此我们推测图1中的失败是因为单一的示例图像不足以提供定制主体所需的属性而这些属性无法由预训练模型自动补全。基于上述考虑我们提出通过使主体“Spike”显式继承其语义类别“狗”的属性来解决这一问题。具体来说受到面向对象编程OOP中定义的启发我们将主体建模为其类别的派生类。如图1b所示语义类别“狗”被视为基类包含由预训练模型提供的公共属性。主体“Spike”被建模为“狗”的派生类继承其公共属性同时从用户提供的示例中学习私有属性。从图1a的可视化结果来看我们的建模显著改善了基线方法在属性相关生成方面的表现。 图1
(a) 该实验对象是一只名为“Spike”的金毛猎犬基准模型是 DreamBooth [30]。基准模型的失败是因为示例图像无法提供所需的属性如“running”。我们的方法通过将“Dog”类别的这些属性继承到“Spike”来解决这一问题。
(b) 我们将“Spike”构建为基类“Dog”的派生类。在本文中我们将预训练模型的基类的一般属性记录为公共属性而对象特定的属性记录为私有属性。红色波浪线标记的部分是 C 中的“继承”语法 [37]。
从人类理解的角度来看上述建模即主体“Spike”是其类别“狗”的派生类是一个自然的事实。但对于生成模型例如扩散模型来说这种建模是不自然的因为它没有“Spike”这一主体的先验概念。因此为了实现这种建模我们提出了一种Subject Derivation正则化SuDe以约束主体的生成图像可以分类到其对应的语义类别中。以上述例子为例生成的“Spike的照片”应该有很高的概率属于“狗的照片”。这种正则化不能通过添加分类器轻易实现因为其语义可能与预训练扩散模型中的语义不一致。因此我们提出显式揭示扩散模型中的隐式分类器以实现上述分类的正则化。
我们的SuDe是一种即插即用的方法可以方便地与现有的主体驱动方法结合。我们在三个精心设计的基准上进行了评估分别是DreamBooth【30】、Custom Diffusion【18】和ViCo【14】。结果表明我们的方法可以显著改善属性相关生成同时保持主体忠实度。
我们的主要贡献如下
我们为主体驱动生成提供了一个新的视角即将主体建模为其语义类别的派生类基类。我们提出了一种主体派生正则化SuDe通过隐式扩散分类器构建主体与其类别之间的基类-派生类关系。我们的SuDe可以方便地与现有基线方法结合在即插即用的方式下显著改善属性相关生成同时保持主体忠实度。
相关工作
2.1 面向对象编程
面向对象编程 (Object-Oriented Programming, OOP) 是一种具有对象概念的编程范式【2, 28, 40】包括四个重要定义类、属性、派生和继承。类是用于创建包含某些属性的对象的模板这些属性包括公有属性和私有属性。前者可以在类外部访问而后者不能。派生是定义一个属于现有类的新类例如可以从“Dog”类派生出一个新的“Golden Retriever”类前者称为派生类后者称为基类。继承意味着派生类应该继承基类的一些属性例如“Golden Retriever”应该继承“Dog”的“running”和“jumping”等属性。在本文中我们将以主题驱动的生成建模为类派生其中主题是派生类其语义类别是相应的基类。为了适应这一任务我们使用公有属性来表示一般特性如“running”使用私有属性来表示具体特性如主题标识符。基类类别包含由预训练扩散模型提供的公有属性而派生类主题从示例图像中学习私有属性同时继承其类别的公有属性。
2.2 文本到图像生成
文本到图像生成旨在通过输入文本的指导生成高质量的图像这通过结合生成模型与图像-文本预训练模型例如CLIP【24】来实现。从生成器的角度来看可以大致分为三类基于GAN的方法、基于VAE的方法和基于扩散的方法。基于GAN的方法【9, 27, 38, 42, 44】采用生成对抗网络作为生成器在结构化图像如人脸上表现良好但在具有多变组件的复杂场景中表现较差。基于VAE的方法【6, 10, 12, 25】使用变分自编码器生成图像能够合成多样化的图像但有时无法很好地匹配文本。最近基于扩散的方法【4, 11, 22, 26, 29, 32】取得了SOTAState-of-the-Art表现能够根据文本提示生成照片级真实感的图像。在本文中我们专注于将预训练的文本到图像扩散模型应用于主题定制化。
2.3 主题驱动的生成
给定一个特定主题主题驱动的生成旨在通过文本指导生成该主题的新图像。先驱工作根据训练策略可分为两类离线方法和在线方法。离线方法【7, 8, 31, 41】直接将主题的示例图像编码为文本嵌入因此需要训练一个额外的编码器。虽然具有高测试效率但由于需要大规模数据集进行离线训练成本较高。在线方法【13, 14, 18, 30, 39】在测试时通过微调预训练模型来学习新主题用一个特定的token ‘{S*}’表示主题。尽管牺牲了一些测试效率但不需要额外的数据集和网络。然而对于最用户友好的单次场景这些方法无法很好地定制与属性相关的生成。为此我们提出将主题构建为其类别的派生类以继承公有属性同时学习私有属性。一些先前的工作【18, 30】通过提示工程部分考虑了这个问题但我们在第5.4.5节中展示了我们的方法SuDe更为满意。
方法
3.1 预备知识
3.1.1 文本到图像扩散模型
扩散模型【15, 34】通过从高斯噪声中恢复图像来近似真实数据分布。它们使用一个前向过程逐渐在清晰图像或其潜在代码 x 0 x_0 x0上添加噪声 ϵ ∼ N ( 0 , I ) \epsilon \sim N(0,I) ϵ∼N(0,I)以获得一系列噪声变量 x 1 x_1 x1到 x T x_T xT其中 T T T通常等于1000如下所示 x t α t x 0 1 − α t ϵ x_t \sqrt{\alpha_t} x_0 \sqrt{1 - \alpha_t} \epsilon xtαt x01−αt ϵ
其中 α t \alpha_t αt是控制噪声进程的 t t t相关变量。在文本到图像生成中生成的图像由文本描述 P P P指导。给定步骤 t t t处的噪声变量 x t x_t xt模型训练逐渐对 x t x_t xt去噪如下所示 E x , c , ϵ , t [ w t ∣ ∣ x t − 1 − x θ ( x t , c , t ) ∣ ∣ 2 ] E_{x,c,\epsilon,t}[w_t ||x_{t-1} - x_\theta(x_t, c, t)||^2] Ex,c,ϵ,t[wt∣∣xt−1−xθ(xt,c,t)∣∣2]
其中 x θ x_\theta xθ是模型预测 w t w_t wt是步骤 t t t的损失权重 c Γ ( P ) c \Gamma(P) cΓ(P)是文本提示的嵌入 Γ ( ⋅ ) \Gamma(·) Γ(⋅)是预训练的文本编码器例如BERT【17】。在我们的实验中我们使用Stable Diffusion【3】其基于LDM【29】并使用CLIP【24】文本编码器作为我们的主干模型。
3.1.2 主题驱动的微调
概述主题驱动生成的核心是将新主题的概念植入预训练的扩散模型中。现有工作【13, 14, 18, 30, 43】通过微调扩散模型的部分或全部参数、文本嵌入或适配器实现这一点如下所示 L s u b ∣ ∣ x t − 1 − x θ ( x t , c s u b , t ) ∣ ∣ 2 L_{sub} ||x_{t-1} - x_\theta(x_t, c_{sub}, t)||^2 Lsub∣∣xt−1−xθ(xt,csub,t)∣∣2
其中这里的 x t − 1 x_{t-1} xt−1是步骤 t − 1 t-1 t−1处的用户提供的示例的噪声版本 c s u b c_{sub} csub是主题提示的嵌入例如“photo of a {S*}”。‘{S*}’代表主题名称。
动机使用上述公式3现有方法可以学习主题的特定属性。然而用户提供的单个示例中的属性不足以进行富有想象力的定制。现有方法没有设计来解决这个问题只依赖于预训练的扩散模型自动填充缺失的属性。但我们发现这不够令人满意例如在图1中基线未能将‘Spike’狗定制为‘running’和‘jumping’。为此我们提出将主题建模为其语义类别基类的派生类。这有助于主题继承其类别的公有属性同时学习其私有属性从而在保持主题一致性的同时改善属性相关的生成。具体而言如图2(a)所示通过重构主题示例捕捉私有属性。并且通过鼓励由主题提示{S*}指导的 x t − 1 x_{t-1} xt−1语义上属于其类别例如“Dog”继承公有属性如图2(b)所示。
3.2 主题派生正则化
派生类是面向对象编程中的定义而不是命题。因此没有可以直接用来约束主题成为其类别的派生类的充分条件。然而根据派生的定义自然存在一个必要条件派生类应该是其基类的子类。我们发现约束这个必要条件对帮助主题继承其类别的属性非常有效。具体而言我们正则化主题驱动生成的图像使其属于主题的类别如下所示 L s u d e − log [ p ( c c a t e ∣ x θ ( x t , c s u b , t ) ) ] L_{sude} -\log[p(c_{cate} | x_\theta(x_t, c_{sub}, t))] Lsude−log[p(ccate∣xθ(xt,csub,t))]
其中 c c a t e c_{cate} ccate和 c s u b c_{sub} csub是类别和主题的条件。公式4很好地构建了一个派生类主题原因有二(1) 类别的属性反映在其嵌入 c c a t e c_{cate} ccate中其中大部分是应该继承的公有属性。这是因为嵌入是由预训练的大型语言模型LLM【17】获得的其训练主要涉及一般属性。(2) 如第4节分析的那样优化 L s u d e L_{sude} Lsude结合公式3等同于增加 p ( x t − 1 ∣ x t , c s u b , c c a t e ) p(x_{t-1} | x_t, c_{sub}, c_{cate}) p(xt−1∣xt,csub,ccate)这意味着生成一个同时满足 c s u b c_{sub} csub私有属性和 c c a t e c_{cate} ccate公有属性条件的样本。尽管形式简单公式4不能直接优化。在接下来的部分我们描述如何在3.2.1节中计算它并在3.2.2节中防止训练崩溃的必要策略。
3.2.1 主题派生损失
公式4中的概率不能通过一个额外的分类器容易获得因为它的语义可能与预训练的扩散模型不对齐。为了确保语义对齐我们提出在扩散模型本身中揭示隐式分类器。使用贝叶斯定理【16】 p ( c c a t e ∣ x θ ( x t , c s u b , t ) ) C t ⋅ p ( x θ ( x t , c s u b , t ) ∣ x t , c c a t e ) p ( x θ ( x t , c s u b , t ) ∣ x t ) p(c_{cate} | x_\theta(x_t, c_{sub}, t)) C_t \cdot \frac{p(x_\theta(x_t, c_{sub}, t) | x_t, c_{cate})}{p(x_\theta(x_t, c_{sub}, t) | x_t)} p(ccate∣xθ(xt,csub,t))Ct⋅p(xθ(xt,csub,t)∣xt)p(xθ(xt,csub,t)∣xt,ccate)
其中 C t p ( c c a t e ∣ x t ) C_t p(c_{cate} | x_t) Ctp(ccate∣xt)与 t − 1 t-1 t−1无关因此在反向传播中可以忽略。在Stable Diffusion【3】中相邻步骤即 t − 1 t-1 t−1和 t t t的预测被设计为条件高斯分布 p ( x t − 1 ∣ x t , c ) ∼ N ( x t − 1 ; x θ ( x t , c , t ) , σ t 2 I ) ∝ exp ( − ∣ ∣ x t − 1 − x θ ( x t , c , t ) ∣ ∣ 2 / 2 σ t 2 ) p(x_{t-1} | x_t, c) \sim N(x_{t-1}; x_\theta(x_t, c, t), \sigma^2_t I) \propto \exp(-||x_{t-1} - x_\theta(x_t, c, t)||^2 / 2\sigma^2_t) p(xt−1∣xt,c)∼N(xt−1;xθ(xt,c,t),σt2I)∝exp(−∣∣xt−1−xθ(xt,c,t)∣∣2/2σt2)
其中均值是步骤 t t t处的预测标准差是 t t t的函数。从公式5和6我们可以将公式4转换为可计算的形式 L s u d e 1 2 σ t 2 [ ∣ ∣ x θ ( x t , c s u b , t ) − x θ ‾ ( x t , c c a t e , t ) ∣ ∣ 2 − ∣ ∣ x θ ( x t , c s u b , t ) − x θ ‾ ( x t , t ) ∣ ∣ 2 ] L_{sude} \frac{1}{2\sigma^2_t} [||x_\theta(x_t, c_{sub}, t) - \overline{x_\theta}(x_t, c_{cate}, t)||^2 - ||x_\theta(x_t, c_{sub}, t) - \overline{x_\theta}(x_t, t)||^2] Lsude2σt21[∣∣xθ(xt,csub,t)−xθ(xt,ccate,t)∣∣2−∣∣xθ(xt,csub,t)−xθ(xt,t)∣∣2]
其中 x θ ‾ ( x t , c c a t e , t ) \overline{x_\theta}(x_t, c_{cate}, t) xθ(xt,ccate,t)是条件 c c a t e c_{cate} ccate的预测 x θ ‾ ( x t , t ) \overline{x_\theta}(x_t, t) xθ(xt,t)是无条件预测。 θ ‾ \overline{\theta} θ表示训练中分离表明只有 x θ ( x t , c s u b , t ) x_\theta(x_t, c_{sub}, t) xθ(xt,csub,t)是梯度可传递的而 x θ ‾ ( x t , c c a t e , t ) \overline{x_\theta}(x_t, c_{cate}, t) xθ(xt,ccate,t)和 x θ ‾ ( x t , t ) \overline{x_\theta}(x_t, t) xθ(xt,t)的梯度被截断。这是因为它们是我们要保留的预训练模型中的先验。
3.2.2 损失截断
优化方程4会导致 p ( c c a t e ∣ x θ ( x t − 1 , c s u b , t ) ) p(c_{cate} | x_{\theta}(x_{t-1}, c_{sub}, t)) p(ccate∣xθ(xt−1,csub,t))增加至接近1。然而这个项表示在步骤 t − 1 t-1 t−1时噪声图像的分类概率。由于噪声的影响它不应接近1。因此我们提出提供一个阈值来截断 L s u d e L_{sude} Lsude。具体来说对于基于 c c a t e c_{cate} ccate生成的图像其属于 c c a t e c_{cate} ccate的概率可以用作参考。这表示在步骤 t − 1 t-1 t−1时噪声图像的适当分类概率。因此我们使用该概率的负对数似然作为阈值 τ \tau τ它可以通过将 c s u b c_{sub} csub替换为 c c a t e c_{cate} ccate来计算如公式7所示 τ t − log [ p ( c c a t e ∣ x θ ( x t , c c a t e , t ) ) ] − 1 2 σ t 2 ∣ ∣ x θ ‾ ( x t , c c a t e , t ) − x θ ‾ ( x t , t ) ∣ ∣ 2 \tau_t -\log[p(c_{cate} | x_{\theta}(x_t, c_{cate}, t))] -\frac{1}{2\sigma_t^2} ||\overline{x_{\theta}}(x_t, c_{cate}, t) - \overline{x_{\theta}}(x_t, t)||^2 τt−log[p(ccate∣xθ(xt,ccate,t))]−2σt21∣∣xθ(xt,ccate,t)−xθ(xt,t)∣∣2 8
公式8表示在步骤 t t t时 L s u d e L_{sude} Lsude的下界。当损失值小于或等于 L s u d e L_{sude} Lsude时优化应停止。因此我们截断 L s u d e L_{sude} Lsude如下 L s u d e λ τ ⋅ L s u d e , λ τ { 0 , 如果 L s u d e ≤ τ t 1 , 否则 L_{sude} \lambda_{\tau} \cdot L_{sude}, \quad \lambda_{\tau} \begin{cases} 0, \text{如果} \, L_{sude} \leq \tau_t \\ 1, \text{否则} \end{cases} Lsudeλτ⋅Lsude,λτ{0,1,如果Lsude≤τt否则 9
在实践中这种截断对于保持训练稳定性非常重要。详细信息见第5.4.2节。
3.3 总体优化目标
我们的方法仅引入了一个新的损失函数 L s u d e L_{sude} Lsude因此可以方便地以即插即用的方式嵌入现有的流程中 L E x , c , ϵ , t [ L s u b w s L s u d e w r L r e g ] L \mathbb{E}_{x, c, \epsilon, t} [L_{sub} w_s L_{sude} w_r L_{reg}] LEx,c,ϵ,t[LsubwsLsudewrLreg] 10
其中 L s u b L_{sub} Lsub是用于学习主体私有属性的重构损失如公式3所述。 L r e g L_{reg} Lreg是通常用于防止模型过拟合主体示例的正则化损失。通常它与 c s u b c_{sub} csub无关并在各种基线中有灵活的定义【14, 30】。 w s w_s ws和 w r w_r wr用于控制损失权重。在实践中我们保持 L s u b L_{sub} Lsub和 L r e g L_{reg} Lreg与基线一致仅通过添加我们的 L s u d e L_{sude} Lsude来改变训练过程。
4. 理论分析
这里我们分析SuDe的有效性因为它建模了 p ( x t − 1 ∣ x t , c s u b , c c a t e ) p(x_{t-1} | x_t, c_{sub}, c_{cate}) p(xt−1∣xt,csub,ccate)。根据公式34和DDPM【15】我们可以表达 L s u b L_{sub} Lsub和 L s u d e L_{sude} Lsude如下 L s u b − log [ p ( x t − 1 ∣ x t , c s u b ) ] L s u d e − log [ p ( c c a t e ∣ x t − 1 , c s u b ) ] L_{sub} -\log[p(x_{t-1} | x_t, c_{sub})] \\ L_{sude} -\log[p(c_{cate} | x_{t-1}, c_{sub})] Lsub−log[p(xt−1∣xt,csub)]Lsude−log[p(ccate∣xt−1,csub)] 11
这里我们首先简化 w s w_s ws为1以便于理解 L s u b L s u d e − log [ p ( x t − 1 ∣ x t , c s u b ) ⋅ p ( c c a t e ∣ x t − 1 , c s u b ) ] − log [ p ( x t − 1 ∣ x t , c s u b , c c a t e ) ⋅ p ( c c a t e ∣ x t , c s u b ) ] − log [ p ( x t − 1 ∣ x t , c s u b , c c a t e ) ] S t L_{sub} L_{sude} -\log[p(x_{t-1} | x_t, c_{sub}) \cdot p(c_{cate} | x_{t-1}, c_{sub})] -\log[p(x_{t-1} | x_t, c_{sub}, c_{cate}) \cdot p(c_{cate} | x_t, c_{sub})] -\log[p(x_{t-1} | x_t, c_{sub}, c_{cate})] S_t LsubLsude−log[p(xt−1∣xt,csub)⋅p(ccate∣xt−1,csub)]−log[p(xt−1∣xt,csub,ccate)⋅p(ccate∣xt,csub)]−log[p(xt−1∣xt,csub,ccate)]St 12
其中 S t − log [ p ( c c a t e ∣ x t , c s u b ) ] S_t -\log[p(c_{cate} | x_t, c_{sub})] St−log[p(ccate∣xt,csub)]与 t − 1 t-1 t−1无关。从公式12可以看出我们的方法建模了 p ( x t − 1 ∣ x t , c s u b , c c a t e ) p(x_{t-1} | x_t, c_{sub}, c_{cate}) p(xt−1∣xt,csub,ccate)的分布该分布同时以 c s u b c_{sub} csub和 c c a t e c_{cate} ccate为条件因此可以生成具有来自 c s u b c_{sub} csub的私有属性和来自 c c a t e c_{cate} ccate的公共属性的图像。
在实践中 w s w_s ws是各种基线上的变化超参数。这不会改变上述结论因为 w s ⋅ L s u d e − log [ p w s ( c c a t e ∣ x t − 1 , c s u b ) ] p w s ( c c a t e ∣ x t − 1 , c s u b ) ∝ p ( c c a t e ∣ x t − 1 , c s u b ) w_s \cdot L_{sude} -\log[p_{w_s}(c_{cate} | x_{t-1}, c_{sub})] \\ p_{w_s}(c_{cate} | x_{t-1}, c_{sub}) \propto p(c_{cate} | x_{t-1}, c_{sub}) ws⋅Lsude−log[pws(ccate∣xt−1,csub)]pws(ccate∣xt−1,csub)∝p(ccate∣xt−1,csub) 13
其中 a ∝ b a \propto b a∝b表示 a a a与 b b b正相关。基于公式13我们可以看出 L s u b w s L s u d e L_{sub} w_s L_{sude} LsubwsLsude与 − log [ p ( x t − 1 ∣ x t , c s u b , c c a t e ) ] -\log[p(x_{t-1} | x_t, c_{sub}, c_{cate})] −log[p(xt−1∣xt,csub,ccate)]正相关。这意味着当 w s w_s ws不等于1时优化我们的 L s u d e L_{sude} Lsude与 L s u b L_{sub} Lsub仍然可以增加 p ( x t − 1 ∣ x t , c s u b , c c a t e ) p(x_{t-1} | x_t, c_{sub}, c_{cate}) p(xt−1∣xt,csub,ccate)。
5. 实验
5.1 实现细节
框架我们在三个精心设计的框架上评估了SuDe的即插即用效果DreamBooth【30】、Custom Diffusion【18】和ViCo【14】使用了两个主干网络Stable-diffusion v1.4SD-v1.4和Stable-diffusion v1.5SD-v1.5【3】。在实践中我们保持所有基线的设计和超参数不变仅在训练损失中添加我们的 L s u d e L_{sude} Lsude。对于超参数 w s w_s ws由于这些基线有不同的训练范式如可优化参数、学习率等很难找到适用于所有基线的固定 w s w_s ws。我们在DreamBooth上设定为0.4在ViCo上设定为1.5在Custom Diffusion上设定为2.0。需要注意的是用户可以根据不同的主体在实际应用中调整 w s w_s ws。这只需付出很小的代价因为我们的SuDe是一个测试时调优基线的插件具有高效性如在单个3090 GPU上对ViCo的调优约7分钟。
数据集在定量实验中我们使用了DreamBooth【30】提供的DreamBench数据集该数据集包含来自15个类别的30个主体每个主体有5个示例图像。由于我们专注于单次定制这里我们在所有实验中只使用一个示例图像编号为’00.jpg’。在先前的工作中他们收集的大多数提示与属性无关如‘在沙滩/雪/森林中的{S*}照片’仅改变图像背景。为了更好地研究我们方法的有效性我们为每个主体收集了5个与属性相关的提示。示例如‘奔跑的{S*}照片’对于狗‘燃烧的{S*}照片’对于蜡烛。此外各种基线有其独特的提示模板。具体来说对于ViCo其模板是‘{S*}的照片’而对于DreamBooth和Custom Diffusion模板是‘{S*} [类别]的照片’。在实践中我们使用各种基线的默认模板。在本文中为了方便书写我们统一记录{S*}和{S*} [类别]为{S*}。此外我们还在附录中展示了其他定性示例这些示例收集自Unsplash【1】。
指标对于主体驱动的生成任务有两个重要方面是主体保真度和文本对齐度。对于第一个方面我们参考先前的工作使用DINO-I和CLIP-I作为指标。它们是生成图像和真实图像的DINO【5】或CLIP【24】嵌入的平均成对余弦相似度。如【14, 30】所述DINO-I比CLIP-I更能反映保真度因为DINO可以捕捉同一类别中主体的差异。对于第二个方面我们参考先前的工作使用CLIP-T作为指标这是提示和生成图像的CLIP【24】嵌入的平均余弦相似度。此外我们提出了一个新指标来评估属性的文本对齐度简称为属性对齐度。这不能通过CLIP-T反映因为CLIP仅在分类级别上粗略训练对动作和材料等属性不敏感。具体来说我们
使用BLIP-T这是提示和生成图像的BLIP【19】嵌入的平均余弦相似度。由于BLIP被训练用于处理图像描述任务因此它能更好地衡量属性对齐度。 5.2. 定性结果
这里我们在图3中可视化了在三种基线上有无我们方法生成的图像。
属性对齐
定性上我们看到使用我们的SuDe方法生成的图像在属性相关文本上对齐得更好。例如在第1行Custom Diffusion不能让狗玩球在第2行DreamBooth不能让卡通人物跑步在第3行ViCo不能给茶壶一个金色的材质。相比之下结合了我们的SuDe后他们的生成可以很好地反映这些属性。这是因为我们的SuDe帮助每个主体继承了其语义类别中的公共属性。
图像保真度
此外我们的方法在生成富含属性的图像时仍能保持主体的保真度。例如在第1行使用SuDe生成的狗的姿势与示例图像非常不同但我们仍然可以确定它们是同一只狗因为它们具有私有属性例如金色的毛发、面部特征等。
5.3. 定量结果
这里我们定量验证了第5.2节中的结论。如表1所示我们的SuDe在属性对齐上取得了稳定的提升即在SD-v1.4和SD-v1.5下BLIP-T在ViCo上分别提高了4.2%和2.6%在Custom Diffusion上提高了0.9%和2.0%在DreamBooth上提高了1.2%和1.5%。此外我们还展示了一个灵活的 w s w_s ws 在[0.5, 1.0, 2.0] · w s w_s ws中选取的最佳结果标记的性能。我们看到这种低成本调整可以进一步扩大提升即在SD-v1.4和SD-v1.5下BLIP-T在ViCo上分别提高了5.3%和3.9%在Custom Diffusion上提高了1.1%和2.3%在DreamBooth上提高了3.2%和2.0%。关于 w s w_s ws 的更多分析在第5.4.1节中。对于主体保真度SuDe只对基线的DINO-I带来了轻微波动表明我们的方法不会牺牲主体保真度。
5.4. 经验研究
5.4.1 训练权重 w s w_s ws w s w_s ws 影响 L s u d e L_{sude} Lsude 的权重比例。我们在图4中可视化了不同 w s w_s ws 下生成的图像通过这些图像我们可以总结出1随着 w s w_s ws 的增加主体例如茶壶可以更全面地继承公共属性例如清晰。在适当范围内例如茶壶的[0.5, 2] · w s w_s ws可以很好地保持主体的保真度。但 w s w_s ws 过大导致我们的模型失去主体保真度例如碗的4 · w s w_s ws因为它稀释了学习私有属性的 L s u b L_{sub} Lsub。2对于属性简单的主体例如碗较小的 w s w_s ws 更合适而对于属性复杂的主体例如狗较大的 w s w_s ws 更合适。另一个有趣的现象是图4第1行中基线生成的图像中有浆果而我们的SuDe没有。这是因为尽管浆果出现在示例中但它不是碗的属性因此没有被我们派生的类别建模捕获。此外在第5.4.3节中我们展示了我们的方法还可以通过提示结合属性相关和属性无关的生成用户可以进行诸如“带有樱桃的金属{S∗}照片”这样的定制。
5.4.2 损失截断消融
在第3.2.2节中设计损失截断是为了防止 p ( c c a t e ∣ x θ ( x t , c s u b , t ) ) p(c_{cate}|x_{\theta}(x_t,c_{sub},t)) p(ccate∣xθ(xt,csub,t)) 过度优化。这里我们验证了这种截断对于防止训练崩溃的重要性。如图5所示没有截断的情况下生成在第2轮展示出失真并在第3轮完全崩溃。这是因为过度优化 p ( c c a t e ∣ x θ ( x t , c s u b , t ) ) p(c_{cate}|x_{\theta}(x_t,c_{sub},t)) p(ccate∣xθ(xt,csub,t)) 使噪声图像具有过高的分类概率。一个极端的例子是将纯噪声分类为某一类别的概率为1。这破坏了预训练扩散模型的语义空间导致生成崩溃。
5.4.3 结合属性无关的提示
在以上章节中我们主要展示了我们SuDe在属性相关生成方面的优势。这里我们展示了我们的方法的优势也可以结合属性无关的提示进行更具创意的定制。如图6所示我们的方法可以和谐地生成图像例如在各种背景下跑步的{S ∗ }狗、在各种背景下燃烧的{S ∗ }蜡烛、以及带有各种水果的{S ∗ }金属碗。
5.4.4 与类别图像正则化的比较
在现有的主体驱动生成方法中【14, 18, 30】如公式10所述通常使用一个正则化项 L r e g L_{reg} Lreg 来防止模型过拟合到主体示例。这里我们讨论 L r e g L_{reg} Lreg 和我们的 L s u d e L_{sude} Lsude 的角色差异。以DreamBooth中的类别图像正则化为例定义如下 L r e g ∣ ∣ x θ ˉ p r ( x t , c c a t e , t ) − x θ ( x t , c c a t e , t ) ∣ ∣ 2 , L_{reg} ||x_{\bar{\theta}_{pr}}(x_t,c_{cate},t) - x_{\theta}(x_t,c_{cate},t)||^2, Lreg∣∣xθˉpr(xt,ccate,t)−xθ(xt,ccate,t)∣∣2, 其中 x θ ˉ p r x_{\bar{\theta}_{pr}} xθˉpr 是冻结的预训练扩散模型。可以看出公式14在主体驱动微调前后通过 c c a t e c_{cate} ccate 条件生成保持一致。视觉上根据图8我们发现 L r e g L_{reg} Lreg 主要有利于背景编辑。但它只使用‘类别提示’ c c a t e c_{cate} ccate单独进行忽略了 c s u b c_{sub} csub 和 c c a t e c_{cate} ccate 之间的联系建模。因此它不能像我们的SuDe那样有利于属性编辑。
5.4.5 与修改提示的比较
本质上我们的SuDe通过其类别的公共属性丰富了主体的概念。一种简单的替代方法是同时在文本提示中提供主体标记和类别标记例如“{S ∗ }[category]的照片”这已经在DreamBooth【30】和Custom Diffusion【18】基线中使用了。上述对这两个基线的比较表明这种提示无法很好地解决属性缺失问题。这里我们进一步在ViCo基线上评估其他提示模板的性能因为其默认提示仅包含主体标记。具体来说我们验证了三个提示模板P1“[attribute] {S ∗ } [category]的照片”P2“[attribute] {S ∗ }的照片并且是[category]”P3“{S ∗ }的照片并且是[attribute] [category]”。参考提示学习中的工作【20, 23, 33, 35】我们在这些模板中保留了触发词结构即在主体驱动微调中使用的“{S ∗ }的照片”形式。
如表2所示一个好的提示模板可以部分缓解这个问题例如P3的BLIP-T为41.2。但是仍然有一些属性无法通过修改提示来补充例如在图7中P1到P3无法让狗“张开嘴”。这是因为它们只是在提示中放入了主体和类别但忽略了像我们SuDe一样建模它们的关系。此外我们的方法也可以在这些提示模板上工作如表2所示SuDe进一步改善了所有提示模板超过1.5%。
6. 结论
本文创造性地将主体驱动生成建模为构建一个派生类。具体来说我们提出了主体派生正则化SuDe使主体从其语义类别中继承公共属性同时从主体示例中学习其私有属性。作为一个即插即用的方法我们的SuDe可以方便地结合现有基线并改进属性相关的生成。我们的SuDe面对最具挑战性但也是最有价值的一次性场景可以生成富有想象力的定制展示了有吸引力的应用前景。
更广泛的影响
主体驱动生成是一个新兴应用目前的大多数工作集中在使用属性无关提示进行图像定制。但可以预见且有价值的场景是进行用户提供图像的多模式定制其中属性相关生成将被广泛需要。本文提出的建模方法将主体构建为其语义类别的派生类能够进行良好的属性相关生成从而为未来的主体驱动应用提供了一个有前途的解决方案。 文章转载自: http://www.morning.dfhkh.cn.gov.cn.dfhkh.cn http://www.morning.qwpdl.cn.gov.cn.qwpdl.cn http://www.morning.glnxd.cn.gov.cn.glnxd.cn http://www.morning.czrcf.cn.gov.cn.czrcf.cn http://www.morning.nqyfm.cn.gov.cn.nqyfm.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.rwjtf.cn.gov.cn.rwjtf.cn http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn http://www.morning.xtkw.cn.gov.cn.xtkw.cn http://www.morning.yrddl.cn.gov.cn.yrddl.cn http://www.morning.rxcqt.cn.gov.cn.rxcqt.cn http://www.morning.gsjfn.cn.gov.cn.gsjfn.cn http://www.morning.hksxq.cn.gov.cn.hksxq.cn http://www.morning.gcqdp.cn.gov.cn.gcqdp.cn http://www.morning.nnrqg.cn.gov.cn.nnrqg.cn http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn http://www.morning.kqxng.cn.gov.cn.kqxng.cn http://www.morning.xnkh.cn.gov.cn.xnkh.cn http://www.morning.hmtft.cn.gov.cn.hmtft.cn http://www.morning.mmqng.cn.gov.cn.mmqng.cn http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn http://www.morning.qgfkn.cn.gov.cn.qgfkn.cn http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn http://www.morning.bftr.cn.gov.cn.bftr.cn http://www.morning.yfqhc.cn.gov.cn.yfqhc.cn http://www.morning.qlwfz.cn.gov.cn.qlwfz.cn http://www.morning.syhwc.cn.gov.cn.syhwc.cn http://www.morning.kpqjr.cn.gov.cn.kpqjr.cn http://www.morning.gyjld.cn.gov.cn.gyjld.cn http://www.morning.hpggl.cn.gov.cn.hpggl.cn http://www.morning.kkzwn.cn.gov.cn.kkzwn.cn http://www.morning.dybth.cn.gov.cn.dybth.cn http://www.morning.xmtzk.cn.gov.cn.xmtzk.cn http://www.morning.hxhrg.cn.gov.cn.hxhrg.cn http://www.morning.kxrld.cn.gov.cn.kxrld.cn http://www.morning.ymjrg.cn.gov.cn.ymjrg.cn http://www.morning.zrqs.cn.gov.cn.zrqs.cn http://www.morning.gqwpl.cn.gov.cn.gqwpl.cn http://www.morning.rjfr.cn.gov.cn.rjfr.cn http://www.morning.pdynk.cn.gov.cn.pdynk.cn http://www.morning.slfmp.cn.gov.cn.slfmp.cn http://www.morning.rfhm.cn.gov.cn.rfhm.cn http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn http://www.morning.pcbfl.cn.gov.cn.pcbfl.cn http://www.morning.lgnrl.cn.gov.cn.lgnrl.cn http://www.morning.jpjpb.cn.gov.cn.jpjpb.cn http://www.morning.zfxrx.cn.gov.cn.zfxrx.cn http://www.morning.nnpwg.cn.gov.cn.nnpwg.cn http://www.morning.lbpfl.cn.gov.cn.lbpfl.cn http://www.morning.kjsft.cn.gov.cn.kjsft.cn http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn http://www.morning.slzkq.cn.gov.cn.slzkq.cn http://www.morning.jlnlr.cn.gov.cn.jlnlr.cn http://www.morning.cyhlq.cn.gov.cn.cyhlq.cn http://www.morning.rfycj.cn.gov.cn.rfycj.cn http://www.morning.bpwfr.cn.gov.cn.bpwfr.cn http://www.morning.dsgdt.cn.gov.cn.dsgdt.cn http://www.morning.ylsxk.cn.gov.cn.ylsxk.cn http://www.morning.xsymm.cn.gov.cn.xsymm.cn http://www.morning.xqcst.cn.gov.cn.xqcst.cn http://www.morning.prjty.cn.gov.cn.prjty.cn http://www.morning.szzxqc.com.gov.cn.szzxqc.com http://www.morning.nkiqixr.cn.gov.cn.nkiqixr.cn http://www.morning.myrmm.cn.gov.cn.myrmm.cn http://www.morning.ypnxq.cn.gov.cn.ypnxq.cn http://www.morning.knlgk.cn.gov.cn.knlgk.cn http://www.morning.gfrjs.cn.gov.cn.gfrjs.cn http://www.morning.rshs.cn.gov.cn.rshs.cn http://www.morning.zcsyz.cn.gov.cn.zcsyz.cn http://www.morning.lyhry.cn.gov.cn.lyhry.cn http://www.morning.nynlf.cn.gov.cn.nynlf.cn http://www.morning.hrhwn.cn.gov.cn.hrhwn.cn http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn http://www.morning.mqldj.cn.gov.cn.mqldj.cn http://www.morning.yqrgq.cn.gov.cn.yqrgq.cn http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn http://www.morning.lkxzb.cn.gov.cn.lkxzb.cn http://www.morning.zdsdn.cn.gov.cn.zdsdn.cn http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn http://www.morning.zkqsc.cn.gov.cn.zkqsc.cn