興安盟做網(wǎng)站公司百度移動(dòng)端優(yōu)化
URL
https://arxiv.org/pdf/2402.03286
TL;DR
2024 年 2 月 nvidia 的文章。提出了一種不需要任何額外訓(xùn)練的主體保持方法,可以一次生成的 batch 中,通過(guò)多個(gè) prompt 生成對(duì)應(yīng)的多張圖片,這些圖片都可以擁有一個(gè)主體。
本文提出的方法通過(guò) subject-driven shared attention block
來(lái)保證多圖間的主體一致性,另外通過(guò)一些 trick 保證生成圖片分布的多樣性和 layout 的多樣性。本方法可以保證不需要任何額外訓(xùn)練或 finetune 的情況下,完成主體保持的人物,同時(shí)相比其他需要訓(xùn)練的方法有更好的文本對(duì)齊能力
Model & Method
作者提出,已有的主體保持方法有很明顯的幾個(gè)缺陷:
- 強(qiáng)制模型在進(jìn)行 posteriori 的主體保持,即強(qiáng)行制定一張 target 圖片送給模型來(lái)進(jìn)行生圖。比如通過(guò) encoder + cross attention、reference net 來(lái)進(jìn)行。
- 提供參考圖的方法破壞了模型本身的能力,讓生成圖片的分布遠(yuǎn)離了訓(xùn)練數(shù)據(jù)的分布。
本文主要通過(guò)對(duì) self-attn 的操作,保證圖片之間共享知識(shí),來(lái)實(shí)現(xiàn)無(wú)訓(xùn)練版的主體保持。ppl如下圖
Unet 中主要的改動(dòng)是:
- self-attn 替換成了 subject driven self-attn(SDSA)。除了當(dāng)前 prompt 對(duì)應(yīng)的 attn map 之外,還會(huì)附上其他 prompt 對(duì)應(yīng)的 attn map,其他 prompt 的 feature 會(huì)用 cross attn 提取的 mask 保證只保留主體信息。這樣 self-attn 就可以在所有的 prompt 的 feature 之間共享特征,實(shí)現(xiàn)了主體保持同時(shí)還能保證不同 prompt 之間的編輯性。
- 增加了一個(gè) feature injection(FI)模塊。文章提到僅使用 SDSA 無(wú)法保證細(xì)節(jié)的一致性比如眼睛(等 SD 常被詬病的細(xì)節(jié)),于是在 SDSA 之后,對(duì)單個(gè) feature 以及對(duì)應(yīng)的其他組 feature,分別計(jì)算一次相似度,選取與當(dāng)前 feature 最相似的另一組 feature 做一次 blend 計(jì)算,即融合兩張圖片之間的特征,來(lái)保證細(xì)節(jié)的相似度。因?yàn)槭菑?qiáng)化細(xì)節(jié)特征,所以在 patch 維度而不是整圖維度。具體的計(jì)算方法是先對(duì) feature 做一次 DIFT 特征匹配,然后與 batch 內(nèi)其他的 feature 量量計(jì)算 cos 相似度。
另外文章提到即使在 self-attn 之間共享的只是 mask 提取到的主體,但是仍然會(huì)出現(xiàn)生成圖片分布過(guò)于一致的問(wèn)題。作者給出的解法:
- 第一個(gè) trick 是使用早期結(jié)構(gòu)信息比較豐富的原始特征,融合到后續(xù)的特征中去這樣可以保證分布不受后面特征注入的影響
* 在 SDSA 中增加 dropout 機(jī)制。
Dataset & Results
部分結(jié)果:
Thought
- 思路很棒,和 StoryDiffusion 一樣都是在 self-attn 上做文章。
- Feature injection 操作感覺(jué)挺棒的,猜測(cè)是比較關(guān)鍵的技術(shù),可以嘗試一下細(xì)節(jié)保持的能力。(在 reference net 或者其他帶注入的方法里面也許可以用到,這是之前一直想要的技術(shù))