作者|字節跳動智慧創作團隊
很高興跟大家分享我們最新的文生圖模型 —— SDXL-Lightning,它實作了前所未有的速度和品質,並且已經向社群開放。
模型| https://huggingface.co/ByteDance/SDXL-Lightning
論文| https://arxiv.org/abs/2402.13929
0 1
閃電般的圖片生成
生成式 AI 正憑借其根據文本提示(text prompts)創造出驚艷影像乃至視訊的能力,贏得全球的矚目。當前最先進的生成模型依賴於擴散過程(diffusion),這是一個將雜訊逐步轉化為影像樣本的叠代過程。這個過程需要耗費巨大的計算資源並且速度較慢, 在生成高品質影像樣本的過程中,單張影像的處理時間約為 5 秒,其中通常需要多次(20 到 40 次)呼叫龐大的神經網路 。這樣的速度限制了有快速、即時生成需求的套用場景。 如何在提升生成品質的同時加快速度 ,是當前研究的熱點領域,也是我們工作的核心目標。
SDXL-Lightning 透過一種創新技術—— 漸進式對抗蒸餾(Progressive Adversarial Distillation) ——突破了這一障礙,實作了前所未有的生成速度。該模型能夠在短短 2 步或 4 步內生成極高品質和分辨率的影像,將計算成本和時間降低十倍。我們的方法甚至可以在 1 步內為超時敏感的套用生成影像,雖然可能會稍微犧牲一些品質。
除了速度優勢,SDXL-Lightning 在影像品質上也有顯著表現,並在評估中超越了以往的加速技術。在實作更高分辨率和更佳細節的同時保持良好的多樣性和圖文匹配度。
速度對比示意
原始模型(20 步), SDXL-Lightning 模型(2 步)
02
模型效果
SDXL-Lightning 模型可以透過 1 步、2 步、4 步和 8 步來生成影像。推理步驟越多,影像品質越好。
以下是 4 步生成結果——
A girl smiling
A pickup truck going up a mountain switchback
A fish on a bicycle, colorful art
A close-up of an Asian lady with sunglasses
A beautiful cup
Mona Lisa, sketch
A panda swimming
A pickup truck going up a mountain switchback
House in the desert, surreal landscapes
以下是 2 步生成結果——
Furniture design for a living room
A cinematic shot of a baby raccoon wearing an intricate Italian priest robe
A dog with soft fur and bright eyes jumping after a toy, in a cozy living room
A tea cup containing clouds
A family, medium shot
Baby playing with toys in the snow
An old man and a dog are walking in the park
Dragon driving a car
A monkey making latte art
與以前的方法(Turbo 和 LCM)相比,我們的方法生成的影像在細節上有顯著改進,並且更忠實於原始生成模型的風格和布局。
03
回饋社群,開放模型
開源開放的浪潮已經成為推動人工智慧迅猛發展的關鍵力量,字節跳動也自豪地成為這股浪潮的一部份。我們的模型基於目前最流行的文字生成影像開放模型 SDXL,該模型已經擁有一個繁榮的生態系。現在,我們決定將 SDXL-Lightning 開放給全球的開發者、研究人員和創意從業者,以便他們能存取並運用這一模型,進一步推動整個行業的創新和協作。
在設計 SDXL-Lightning 時,我們就考慮到 與開放模型社群的相容 。社群中已有眾多藝術家和開發者建立了各種各樣的風格化影像生成模型,例如卡通和動漫風格等。為了支持這些模型,我們提供 SDXL-Lightning 作為一個增速外掛程式,它可以無縫地整合到這些多樣風格的 SDXL 模型中,為各種不同模型加快影像生成的速度。
SDXL-Lightning 模型也可以和目前非常流行的控制外掛程式 ControlNet 相結合,實作極速可控的圖片生成。
SDXL-Lightning 模型也支持開源社群裏目前最流行的生成軟體 ComfyUI,模型可以被直接載入來使用:
04
關於技術細節
從理論上來說,影像生成是一個由雜訊到清晰影像的逐步轉化過程。在這一過程中,神經網路學習在這個轉化流(flow)中各個位置上的梯度。
生成影像的具體步驟是這樣的:
首先我們在流的起點,隨 機采樣一個雜訊樣本,接著用神經網路計算出梯度。 根據當前位置上的梯度,我們對樣本進行微小的調整,然後 不斷重復這 一過程。 每一次叠代,樣本都會更接近最終的影像分布,直至獲得一張清晰的影像。
圖:生成流 程 (圖片來自: https://arxiv.org/abs/2011.13456)
由於生成流復雜且非直線,生成過程必須一次只走一小步以減少梯度誤差累積,所以需要神經網路的頻繁計算,這就是計算量大的原因。
圖:曲線流程 (圖片來自: https://arxiv.org/abs/2210.05475)
為了減少生成影像所需的步驟數量,許多研究致力於尋找解決方案。一些研究提出了能減少誤差的采樣方法,而其他研究則試圖使生成流更加直線化。盡管這些方法有所進展,但它們仍然需要超過 10 個推理步驟來生成影像。
另一種方法是模型蒸餾,它能夠在少於 10 個推理步驟的情況下生成高品質影像。不同於計算當前流位置下的梯度,模型蒸餾改變模型預測的目標,直接讓其預測下一個更遠的流位置。具體來說,我們訓練一個學生網路直接預測老師網路完成了多步推理後的結果。這樣的策略可以大幅減少所需的推理步驟數量。透過反復套用這個過程,我們可以進一步降低推理步驟的數量。這種方法被先前的研究稱之為漸進式蒸餾。
圖:漸進式蒸餾,學生網路預測老師網路多步後的結果
在實際操作中,學生網路往往難以精確預測未來的流位置。誤差隨著每一步的累積而放大,導致在少於 8 步推理的情況下,模型產生的影像開始變得模糊不清。
為了解決這個問題,我們的策略是不強求學生網路精確匹配教師網路的預測,而是讓學生網路在機率分布上與教師網路保持一致。換言之,學生網路被訓練來預測一個機率上可能的位置,即使這個位置並不完全準確,我們也不會對它進行懲罰。這個目標是透過對抗訓練來實作的,引入了一個額外的判別網路來幫助實作學生網路和教師網路輸出的分布匹配。
這是我們研究方法的簡要概述。在技術論文( https://arxiv.org/abs/2402.13929 )中,我們提供了更深入的理論分析、訓練策略以及模型的具體公式化細節。
05
SDXL-Lightning 之外
盡管本研究主要探討了如何利用 SDXL-Lightning 技術進行影像生成,但我們所提出的漸進式對抗蒸餾方法的套用潛力不局限於靜態影像的範疇。這一創新技術也可以被運用於快速且高品質生成視訊、音訊以及其他多模態內容。我們誠摯邀請您在 HuggingFace 平台上體驗 SDXL-Lightning,並期待您寶貴的意見和反饋。
模型: https://huggingface.co/ByteDance/SDXL-Lightning
論文: https://arxiv.org/abs/2402.13929