論文筆記 — IPAdapter-Instruct: Resolving Ambiguity in Image-based Conditioning using Instruct Prompts

Watson Wang
Aug 12, 2024

--

paper link: https://arxiv.org/pdf/2408.03209

Introduction

實驗證明,文字提示不足以準確描述影像風格或精細的結構細節(例如臉部)。 ControlNet 和IPAdapter 透過在影像上調節生成流程來解決這個缺點,但每個單獨的實例僅限於建模單一條件:對於實際用例,在同一工作流程中需要多個不同的輸入條件,訓練和使用多個adapter是很麻煩的。 我們提出了IP-Adapter-Instruct作為解決方案:一個可以被文本指導如何解釋條件影像的單一模型,這是一個文本指導非常適合的任務。我們的消融實驗顯示,訓練這樣一個處理多種條件方面的模型不僅可行,甚至結果表現不亞於特定任務模型。

本文討論了聯合IP-Adapter-Instruct模型的五個不同生成任務:

1. 複製:條件的變化(如IP-Adapter),
2. 風格:具有條件風格的影像,
3. 構圖:具有與條件相同結構的影像,
4. 物體:包含條件中物體的影像,和
5. 人臉:包含條件中人物面孔的影像。

給定適當的數據集和訓練程序,五個獨立的IP-Adapter實例可以很好地處理這些任務,但這種工作流程在訓練和推理時都很繁瑣。而IP-Adapter-Instruct同時訓練所有任務,使整個任務集的訓練更高效,推理更實用。此外,多任務學習在許多情境中已被證明是有益的。

實驗架構

我們的模型架構基於IPAdapter+的transformer投影模型。我們首先討論原始IPAdapter+的架構,然後介紹我們的修改。

在每次對文本提示T進行交叉注意力後,對條件影像的投影編碼添加了一個交叉注意力層,如圖2所示。

條件影像首先被編碼到CLIP領域,然後通過單一線性層投影到IPAdapter+特定的空間,接著通過一個小型transformer模型,如圖3所示。對於IPAdapter-Instruct,我們修改了投影transformer模型,在每次迭代中引入了一個額外的注意力層,這個注意力層也會關注指示的CLIP嵌入,如圖3所示。這樣,模型就能夠從條件嵌入中提取相關信息

我們為每個不同的任務構建了一個專用數據集,下面將詳細討論。對於指示提示,我們使用大型語言模型(LLM)生成每個任務的示例指示提示:這些提示在訓練過程中隨機抽取。為了確保每個任務在CLIP空間中能夠被很好地識別,我們為每個任務分配了一個關鍵詞,並刪除任何包含來自其他任務關鍵詞的指示。

圖像複製

與IPAdapter的訓練過程相似,目標是創建輸入圖像的輕微但微妙的變化。由於這種模式複製了IPAdapter的原始行為,我們預期它同樣能夠在其他任務中使用這種指示模式。為了創建訓練數據集,我們使用了JourneyDB數據集,收集了42,000個隨機示例及其原始文本提示。指示提示通過查詢 ChatGPT-4生成,要求“生成不同長度的描述如何從圖像中提取所有內容的方法,不要使用構圖、風格、面部或物體等詞語”。

風格保留

在風格保留中,用戶希望僅提取條件圖像的風格並應用到新圖像中 。儘管這不易定義,它通常涵蓋色彩方案和一般藝術風格。身份、布局和構圖不應滲入生成結果。為了創建風格訓練數據集,我們從ehristoforu/midjourney-images風格數據集和一個大規模藝術數據集中開始。條件圖像從風格數據集中抽樣,而目標圖像則使用InstantStyle生成,提示來自藝術數據集,條件作為風格源。即這種模式受監督生成的圖像與InstantStyle生成的圖像一致。指示提示通過查詢ChatGPT-4生成,要求“生成不同長度的描述如何從圖像中提取風格的方法,不要使用構圖、物體、面部或所有內容等詞語”。由於InstantStyle計算昂貴且緩慢,該數據集僅包括20,000個示例。

物體提取

這個任務的目標是將條件圖像中的物體放置到新場景中,儘可能保持其身份,類似於MagicInsert。我們基於COCO數據集生成此數據集:作為條件的35,000個示例中,我們裁剪出相關物體,並(如有必要)用隨機顏色填充。目標圖像是原始數據集中的圖像,文本提示由GPT-4生成。指示提示通過查詢ChatGPT-4生成,要求“生成不同長度的描述如何從圖像中提取物體的方法,不要使用構圖、風格、面部或所有內容等詞語”。為了給圖像投影層提供更多語義信息(典型用戶將可以訪問),我們將指示中的‘物體’關鍵詞替換為物體名稱。

結構保留

最後,我們還創建了一個結構保留的數據集。這旨在複製Scribble ControlNet 模型的行為,該模型生成與條件具有相似邊緣輪廓的圖像,但不必先顯式生成這些邊緣圖像。對於塗鴉數據集,我們使用Common Canvas數據集,並使用 lllyasviel/sd-controlnet-scribble ControlNet從其邊緣圖和原始提示生成新的目標圖像 以及原始圖像本身用作條件。

指示提示通過查詢ChatGPT-4生成,要求“生成不同長度的描述如何從圖像中提取構圖的方法,不要使用風格、物體、面部或所有內容等詞語”。

身份保留

由於人類對面部特徵極其敏感,我們還創建了一個專門的面部保留數據集,使用CelebA數據集。我們從中抽樣了40,000對匹配的圖像對,文本提示由GPT-4提供。條件圖像中的一半專注於面部特徵,以進一步強調面部細節。指示提示通過查詢ChatGPT-4生成,要求“生成不同長度的描述如何從圖像中提取面部或身份的方法,不要使用構圖、風格、所有內容或物體等詞語”。

結論

在這項工作中,我們引入了IPAdapter-Instruct,以消除用戶在對圖像擴散模型進行條件設置時的意圖模糊:通過引入指定用戶意圖的指示提示,這個聯合模型可以在不損失性能的情況下進行高效訓練。這將多個適配器壓縮到單一的提示和圖像組合中,同時保留了原始IPAdapter工作流程的優勢,如保持基礎擴散模型完整,並保持與其LoRAs的兼容性。

我們發現主要的限制在於訓練數據集的創建:這是一個耗時且受到源數據可用性嚴重限制的過程,但對任務性能有顯著影響。這些數據集還明顯地對條件模型施加了偏見:風格轉換偏向於MidJourney,面部提取在真實照片上效果最佳,而 最引人注目的是 物體提取從有色填充中獲益顯著。

然而,像素精確的指導任務不適合壓縮到CLIP空間。我們希望最終能將這兩種類型的指導(像素精確和語義)結合到一個單一的條件模型中,通過指示提示來傳達用戶意圖。

--

--