只需一步!One-Step圖像轉換來了!親測效果驚艷!


項目鏈接:https://github.com/GaParmar/img2img-turbo
文章鏈接:https://arxiv.org/pdf/2403.12036
demo鏈接:??https://huggingface.co/spaces/gparmar/img2img-turbo-sketch(親測驚艷)??
現有條件擴散模型的兩個局限性:
- 由于迭代去噪過程而導致的推理速度較慢
- 依賴成對數據進行模型微調
為了解決這些問題,本文引入了一種通用方法,通過對抗性學習目標來將單步擴散模型調整到新的任務和領域中。具體來說,將原生latent diffusion model的各種模塊整合到一個端到端的生成器網絡中,該網絡具有較小的可訓練權重,增強了其保持輸入圖像結構的能力,同時減少了過擬合。
通過證明,在無配對設置下,CycleGAN-Turbo模型在各種場景轉換任務中優于現有的基于GAN 和擴散的方法,例如將白天轉換為夜晚以及添加/去除霧、雪和雨等天氣效果。并將該方法擴展到配對設置,模型 pix2pix-Turbo 與最近的工作如 Control-Net for Sketch2Photo 和 Edge2Image 相當,但只需單步推理。這項工作表明,單步擴散模型可以作為一系列 GAN 學習目標的強大骨干。

介紹
條件擴散模型使用戶能夠基于空間條件和文本提示生成圖像,從而實現了對場景布局、用戶草圖和人體姿勢等進行精確控制的各種圖像合成應用。盡管這些模型取得了巨大成功,但它們面臨兩個主要挑戰。首先,擴散模型的迭代性質使推理速度變慢,限制了實時應用,例如交互式 Sketch2Photo。其次,模型訓練通常需要篩選大規模的配對數據集,對許多應用造成了重大成本,而對其他應用來說則不可行。
本項工作介紹了一種適用于配對和無配對設置的one-step圖像到圖像轉換方法。該方法實現了與現有條件擴散模型相當的視覺吸引力結果,同時將推理步驟的數量減少到1步。更重要的是,可以在沒有圖像對的情況下進行訓練。通過對抗性學習目標有效地調整預訓練的文本條件one-step擴散模型(例如 SD-Turbo)到新的領域和任務中。
不幸的是,在實驗中,直接將標準擴散適配器(如 Control-Net)應用到one-step設置中的效果不如預期。與傳統的擴散模型不同,作者觀察到噪聲圖直接影響one-step模型的輸出結構。因此,通過額外的適配器分支將噪聲圖和輸入條件輸入到網絡中會導致網絡得到相互沖突的信息。特別是對于無配對情況,這種策略會導致網絡在訓練結束時原始網絡被忽視。
此外,在圖像到圖像轉換過程中,由于SD-Turbo模型的多階段pipeline(Encoder-UNet-Decoder)的不完美重建,輸入圖像中的許多視覺細節都會丟失。當輸入是真實圖像時,這種細節的丟失尤為顯著和關鍵,例如在白天到夜晚的轉換中。
為了解決這些挑戰,本文提出了一種新的生成器架構,利用了??SD-Turbo 權重??同時保持輸入圖像的結構。首先,直接將條件信息饋送到 UNet 的噪聲編碼器分支中。這使得網絡能夠直接適應新的控制,避免了噪聲圖和輸入控制之間的沖突。其次,將編碼器、UNet 和解碼器這三個獨立模塊整合到一個端到端可訓練的架構中。為此,采用了 LoRA 來將原始網絡調整到新的控制和領域,減少過擬合和微調時間。最后,為了保留輸入的高頻細節,通過零卷積在編碼器和解碼器之間引入了跳躍連接。本文的架構是多功能的,可作為條件 GAN 學習目標(如 CycleGAN 和 pix2pix)的即插即用模型。據我們所知,本文的工作是首次使用文本到圖像模型實現one-step圖像轉換。
本文主要關注更具挑戰性的無配對轉換任務,例如從白天到黑夜的轉換,反之亦然,以及向圖像中添加/移除天氣效果。展示了該模型 CycleGAN-Turbo 在分布匹配和輸入結構保持方面明顯優于現有基于 GAN 和擴散的方法,同時比擴散方法實現更高的效率。本文進行了廣泛的消融研究,探討了該方法的每個設計選擇。
為了展示架構的多功能性,作者還進行了配對設置的實驗,例如 Edge2Image 或 Sketch2Photo。模型 pix2pix-Turbo 在視覺上達到了與最近的條件擴散模型相媲美的結果,同時將推理步驟的數量減少到了1步。可以通過在預訓練模型和我們模型的編碼器輸出之間插值噪聲圖,生成多樣化的輸出。工作表明,預訓練的one-step文本到圖像模型可以作為許多下游圖像合成任務的強大而多功能的支撐。
相關工作
圖像到圖像轉換。生成模型的最新進展使得許多圖像到圖像轉換應用成為可能。配對圖像轉換方法將一幅圖像從源域映射到目標域,使用了重建和對抗性損失的組合。最近,出現了各種條件擴散模型,整合了文本和空間條件用于圖像轉換任務。這些方法通常建立在預訓練的文本到圖像模型之上。然而,模型訓練仍然需要大量的訓練對。與此相反,作者的方法可以利用大規模的擴散模型,而無需圖像對,推理速度顯著更快。
在許多無法獲得配對輸入和輸出圖像的情況下,已經提出了幾種技術,包括循環一致性、共享中間潛在空間、內容保留損失和對比學習。最近的研究還探索了用于無配對轉換任務的擴散模型。然而,這些基于 GAN 或擴散的方法通常需要在新域從頭開始訓練。相反,作者引入了第一個利用預訓練擴散模型進行無配對學習的方法,展示了優于現有方法的結果。
文本到圖像模型。大規模文本條件模型已經通過對互聯網規模數據集的訓練顯著提高了圖像的質量和多樣性。一些方法提出了用于編輯真實圖像的zero-shot方法。盡管這些方法取得了令人印象深刻的結果,但它們在復雜場景中經常遇到困難。我們的工作可以被視為使用來自新域/任務的配對或無配對數據增強這些方法的方式。
one-step生成模型。為了加速擴散模型的推理,最近的工作集中于減少采樣步驟的數量。與專注于one-step文本到圖像合成的其他工作不同,我們提出了第一個同時使用文本和條件圖像的one-step條件模型。本方法打敗了直接使用原始 ControlNet 的one-step蒸餾模型的基線。
方法
本文從一個能夠生成逼真圖像的one-step預訓練文本到圖像模型開始。然而,作者的目標是將輸入的真實圖像從源域轉換到目標域,例如將白天駕駛圖像轉換為夜晚。分別探討了為我們的模型添加結構的不同條件方法及其相應的挑戰。研究了困擾潛在空間模型的常見細節丟失問題(例如文本、手部、街道標志)并提出了解決方案。然后,討論了無配對圖像轉換方法,并將one-step擴展到配對設置和隨機生成。
添加條件輸入
要將文本到圖像模型轉換為圖像轉換模型,首先需要找到一種有效的方式將輸入圖像 x 合并到模型中。
噪聲和條件輸入之間的沖突。將條件輸入合并到擴散模型中的一種常見策略是引入額外的適配器分支,如下圖3所示。

具體來說,初始化第二個編碼器,標記為條件編碼器,可以使用Stable Diffusion編碼器的權重,或者使用具有隨機初始化權重的輕量級網絡。該控制編碼器接收輸入圖像 x,并通過殘差連接將特征圖輸出到預訓練的Stable Diffusion模型中的多個分辨率。這種方法在控制擴散模型方面取得了顯著的成果。然而,如上圖3所示,在one-step模型的上下文中,使用兩個編碼器(U-Net編碼器和條件編碼器)處理噪聲圖和輸入圖像會帶來挑戰。與多步擴散模型不同,one-step模型中的噪聲圖直接控制生成圖像的布局和姿態,通常與輸入圖像的結構相矛盾。因此,解碼器接收兩組殘差特征,每組特征表示不同的結構,使得訓練過程更具挑戰性。
直接條件輸入。圖3還說明了預訓練模型生成的圖像結構受噪聲圖 z 的顯著影響。基于這一觀察結果,我們提出應該直接將條件輸入饋送到網絡中。下圖7和表4還顯示,使用直接條件輸入比使用額外編碼器獲得更好的結果。


為了讓骨干模型適應新的條件,我們在U-Net的各個層中添加了幾個LoRA權重(下圖2)。

保留輸入細節
阻止使用潛在擴散模型(LDM)在多對象和復雜場景中使用的一個關鍵挑戰是缺乏細節保留。
細節丟失的原因。潛在擴散模型(LDMs)的圖像編碼器將輸入圖像在空間上壓縮了8倍,同時將通道數量從3增加到4。這種設計加快了擴散模型的訓練和推理速度。然而,對于需要保留輸入圖像細節的圖像轉換任務來說,這可能并不理想。下圖4中說明了這個問題,在這個示例中,采用不使用跳躍連接的結構,將輸入的白天駕駛圖像(左)轉換成對應的夜間駕駛圖像(中)。

可以觀察到,諸如文本、街道標志和遠處的汽車等細粒度細節并未得到保留。相比之下,使用包含跳躍連接的架構(右)會導致轉換后的圖像更好地保留這些復雜的細節。
連接第一階段編碼器和解碼器。 為了捕獲輸入圖像的細粒度視覺細節,我們在編碼器和解碼器網絡之間添加了跳躍連接(見上圖2)。具體地,在編碼器中的每個下采樣塊之后提取四個中間激活,并通過一個1×1零卷積層對它們進行處理,然后將它們饋送到解碼器中相應的上采樣塊中。這種方法確保了在整個圖像轉換過程中細節的保留。
無配對訓練






擴展
雖然本文的主要重點是無配對學習,但還展示了兩種擴展來學習其他類型的 GAN 目標,例如從配對數據中學習和生成隨機輸出。

- 重構損失作為感知損失和像素空間重構損失的組合
- GAN 損失,類似于方程 2 中的損失,但僅針對目標域
- CLIP 文本-圖像對齊損失 LCLIP。
生成多樣化輸出 在許多圖像轉換任務中,例如草圖到圖像生成,生成多樣化的輸出非常重要。然而,讓one-step模型生成多樣化的輸出是具有挑戰性的,因為它需要利用額外的輸入噪聲,而這往往被忽略。本文提出通過插值特征和模型權重向預訓練模型進行生成多樣化的輸出。


值得注意的是,γ=0 對應于預訓練模型的默認隨機行為,此時不會強制執行重構損失。γ =1對應于確定性轉換。我們通過使用不同的插值系數對圖像轉換模型進行微調。下圖 9 顯示,這種微調使我們的模型能夠通過在推理時采樣不同的噪聲來生成多樣化的輸出。

實驗
對幾個圖像轉換任務進行了廣泛的實驗,主要分為三個類別。首先,將我們的方法與幾種先前的基于 GAN 和擴散模型的圖像轉換方法進行了比較,展示了更好的定量和定性結果。其次,通過逐個將它們納入我們的無配對方法 CycleGAN-Turbo 的每個組件來分析其有效性。最后,展示了我們的方法如何在配對設置中運作,并生成多樣化的輸出。
訓練細節。在駕駛數據集上的無配對模型的總訓練參數為 330 MB,包括 LoRA 權重、零卷積層和 U-Net 的第一卷積層。請在附錄 D 中查找超參數和架構細節。
數據集。在兩個常用數據集(馬 ? 斑馬 和優勝美地夏季 ? 冬季)以及兩個更高分辨率的駕駛數據集(白天 ? 夜晚 和晴朗 ? 多霧來自 BDD100k 和 DENSE)上進行了無配對轉換實驗。對于前兩個數據集,遵循 CycleGAN并加載 286×286 圖像,在訓練時使用隨機的 256×256 裁剪。在推理過程中,直接在 256×256 上應用轉換。對于駕駛數據集,在訓練和推理時將所有圖像調整大小為 512×512。對于評估,使用相應的驗證集。
評估協議。一個有效的圖像轉換方法必須滿足兩個關鍵標準:(1)匹配目標域的數據分布和(2)在轉換輸出中保留輸入圖像的結構。
使用 FID評估數據分布的匹配,采用了 Clean-FID 實現。我們使用 DINO-Struct-Dist評估第二個標準的符合度,該指標測量兩個圖像在特征空間中的結構相似性。報告中所有 DINO 結構分數乘以 100。較低的 FID 分數表示與參考目標分布的更接近匹配和更大的逼真度,而較低的 DINO-Struct-Dist 表明在轉換圖像中更準確地保留了輸入結構。較低的 FID 分數與較高的 DINO-Struct-Dist 表明該方法無法遵循輸入結構。較低的 DINO-Struct-Dist 但較高的 FID 表明該方法幾乎不會改變輸入圖像。考慮這兩個分數是非常關鍵的。此外,我們在 Nvidia RTX A6000 GPU 上比較所有方法的推理運行時間,并包括一個人類感知研究。
與無配對方法的比較
將 CycleGAN-Turbo 與先前基于 GAN 的無配對圖像轉換方法、zero-shot圖像編輯方法以及經過公開可用代碼訓練的擴散模型進行比較。在定性上,下圖 5 和圖 6 顯示,現有的方法,無論是基于 GAN 還是基于擴散的,都難以在輸出逼真度和結構保持之間取得正確的平衡。


與基于GAN方法的比較。將本文的方法與兩種無配對 GAN 模型 - CycleGAN和CUT進行比較。使用默認超參數在所有數據集上訓練這些基線模型 100,000 步,并選擇最佳checkpoint。下表 1 和表 2 展示了八個無配對轉換任務的定量比較。


CycleGAN 和 CUT 在簡單的以對象為中心的數據集,例如馬 → 斑馬(下圖 13),上表現出有效的性能,達到了較低的 FID 和 DINO-Structure 分數。

我們的方法在 FID 和 DINO 結構距離指標方面略優于這些方法。然而,對于更復雜的場景,例如夜晚 → 白天,CycleGAN 和 CUT 的 FID 分數明顯高于我們的方法,通常會產生不良的視覺效果(下圖 15)。

與基于擴散的編輯方法的比較。接下來,將我們的方法與幾種基于擴散的方法進行比較。首先,考慮最近的zero-shot圖像轉換方法,包括 SDEdit、Plug-and-Play、pix2pix-zero、CycleDiffusion和 DDIB,它們使用預訓練的文本到圖像擴散模型,并通過不同的文本提示轉換圖像。請注意,原始的 DDIB 實現涉及從頭訓練兩個單獨的領域特定的擴散模型。為了提高其性能并進行公平比較,我們用預訓練的文本到圖像模型替換了領域特定的模型。還將 Instruct-pix2pix,一個用于基于文本的圖像編輯的條件擴散模型進行比較。
如表1和圖14所示,在以物體為中心的數據集上,例如馬 → 斑馬,這些方法可以生成逼真的斑馬,但難以精確匹配物體的姿態,這一點可以通過一致較大的DINO結構分數得到說明。

在駕駛數據集上,這些編輯方法表現明顯更差,原因有三:(1)模型難以生成包含多個對象的復雜場景,(2)這些方法(除了Instruct-pix2pix外)需要首先將圖像反轉為噪聲圖,從而引入潛在的偽影,以及(3)預訓練模型無法合成與駕駛數據集捕獲的街景圖像相似的圖像。下表2和圖16顯示,在所有四個駕駛轉換任務中,這些方法輸出質量較差的圖像,反映在較高的FID分數和不符合輸入圖像結構的較高的DINO結構距離值中。


人類偏好研究 接下來,在Amazon Mechanical Turk(AMT)上進行人類偏好研究,以評估不同方法產生的圖像質量。使用相關數據集的完整驗證集,每個比較由三個獨立的用戶進行獨立評估。將兩個模型的輸出并排呈現,并要求用戶選擇哪個更準確地符合目標提示,時間不限。例如,我們對白天到夜晚的轉換任務收集了 1,500 個比較,其中包含 500 個驗證圖像。向用戶呈現的提示是:“哪張圖像更像是在夜晚拍攝的駕駛場景的真實照片?”
下表 3 將本文的方法與 CycleGAN(最佳性能的基于 GAN 的方法)和 Instruct-Pix2Pix(最佳性能的基于擴散的方法)進行了比較。

本文的方法在所有數據集上均優于這兩個基線,除了從晴朗到多霧的轉換任務。在這種情況下,用戶偏好 Instruct-Pix2Pix 的結果,因為它輸出了更具藝術性的霧圖像。然而,正如上面表 2 中所示,Instruct-Pix2Pix 未能保留輸入結構,其高 DINO-Struct 分數(7.6)與我們的(1.4)相比。此外,其結果與目標霧數據集的差異顯著,反映在高 FID 分數(170.8)與我們的(137.0)之間的差異上。
消融研究
通過一個廣泛的消融研究,在前面表 4 和圖 7 中展示了我們算法設計的有效性。
使用預訓練權重。首先,評估使用預訓練網絡的影響。在前面表 4 的 Config A 中,我們在馬 ? 斑馬數據集上訓練一個無配對模型,但使用的是隨機初始化的權重,而不是預訓練的權重。沒有利用預訓練文本到圖像模型的先驗知識,輸出圖像看起來不自然,如前面圖 7 的 Config A 所示。這一觀察結果在表 4 的兩個任務中都得到了證實,FID 明顯增加。
不同添加結構輸入的方法。接下來,比較了三種向模型添加結構輸入的方法。Config B 使用了 ControlNet 編碼器,Config C 使用了 T2I-Adapter,最后,Config D 直接將輸入圖像饋送到基礎網絡,而不需要任何額外的分支。Config B 的 FID 與 Config D 相當。然而,它的 DINO-Structure 距離顯著更高,表明 ControlNet 編碼器難以匹配輸入的結構。這也可以從圖 7 中觀察到;Config B(第三行)一直在改變場景結構,并產生新的物體幻覺,例如駕駛場景中的部分建筑以及馬到斑馬轉換中的不自然斑馬圖案。Config C 使用了輕量級的 T2I-Adapter 來學習結構,并取得了較差的 FID 和 DINO-Struct 分數,輸出圖像中有幾個偽影和結構保留較差。
跳躍連接和可訓練的編碼器和解碼器。最后,通過將 Config D 與我們的最終方法 CycleGAN-Turbo 進行比較,來看到跳躍連接的效果,在表 4 和圖 7 中。在所有任務中,添加跳躍連接并聯合訓練編碼器和解碼器可以顯著提高結構保持,盡管 FID 稍微增加了一點。
其他結果。請參閱附錄 A 和 C,了解其他數據集的額外消融研究、在不同數量的訓練圖像下模型訓練的影響以及編碼器-解碼器微調的作用。具體如下圖:



擴展
配對轉換。在一個包含 300K 藝術圖片的社區收集的數據集上訓練了 Edge2Photo 和 Sketch2Photo 模型。提取了 Canny 邊緣和 HED 輪廓。由于我們的方法和基線使用不同的數據集,我們展示了視覺比較,而不是進行 FID 評估。關于訓練數據和預處理的更多細節請參見附錄 D。
下圖 8 中將我們的配對方法 pix2pix-Turbo 與現有的one-step和多步轉換方法進行了比較,包括兩個使用潛變一致性模型 和帶有 ControlNet 適配器的 Stable Diffusion - Turbo的one-step基線。雖然這些方法可以one-step生成結果,但其圖像質量會下降。接下來,我們將其與基于 100 步Stable Diffusion的普通 ControlNet 進行比較。還使用無分類器指導和一個描述性較長的負提示來進行 100 步 ControlNet 的基線。與one-step基線相比,這種方法可以生成更令人滿意的輸出,如圖 8 所示。我們的方法只需一次前向傳遞就能生成引人注目的輸出,無需負提示或無分類器指導。

生成多樣化的輸出。最后,在下圖 9 中,展示了我們的方法可以生成多樣化的輸出。給定相同的輸入草圖和用戶提示,我們可以采樣不同的噪聲圖并生成多樣化的多模態輸出,例如不同風格的貓、背景的變化和具有不同殼圖案的海龜。

討論與局限性
我們的工作表明,one-step預訓練模型可以作為許多下游圖像合成任務的強大且多才多藝的骨干模型。通過各種 GAN 目標,可以將這些模型適應到新的任務和領域,而無需進行多步擴散訓練。我們的模型訓練只需要少量額外的可訓練參數。
局限性。雖然我們的模型可以通過one-step生成產生視覺上令人滿意的結果,但它確實存在一些局限性。首先,我們無法指定指導的強度,因為我們的骨干模型 SD-Turbo 不使用無分類器指導。引導蒸餾可能是一個有前途的解決方案,可以實現指導的控制。其次,我們的方法不支持負提示,這是一種減少偽影的便捷方式。第三,使用循環一致性損失和高容量生成器的模型訓練會消耗大量內存。下一步,探索用于更高分辨率圖像合成的單邊方法是一個有意義的。
本文轉自 AI生成未來 ,作者:Jun-Yan Zhu等

















