最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

使用 LCM LoRA 4 步完成 SDXL 推理

2023-11-20 21:38 作者:HuggingFace  | 我要投稿

LCM 模型 (Latent Consistency Model) 通過將原始模型蒸餾為另一個(gè)需要更少步數(shù) (4 到 8 步,而不是原來的 25 到 50 步) 的版本以減少用 Stable Diffusion (或 SDXL) 生成圖像所需的步數(shù)。蒸餾是一種訓(xùn)練過程,其主要思想是嘗試用一個(gè)新模型來復(fù)制源模型的輸出。蒸餾后的模型要么尺寸更小 (如 DistilBERT 或最近發(fā)布的 Distil-Whisper),要么需要運(yùn)行的步數(shù)更少 (本文即是這種情況)。一般來講,蒸餾是一個(gè)漫長且成本高昂的過程,需要大量數(shù)據(jù)、耐心以及一些 GPU 運(yùn)算。

但以上所述皆為過往,今天我們翻新篇了!

今天,我們很高興地公開一種新方法,其可以從本質(zhì)上加速 Stable Diffusion 和 SDXL,效果跟用 LCM 蒸餾過一樣!有了它,我們在 3090 上運(yùn)行?任何?SDXL 模型,不需要 70 秒,也不需要 7 秒,僅需要約 1 秒就行了!在 Mac 上,我們也有 10 倍的加速!聽起來是不是很帶勁?那繼續(xù)往下讀吧!

目錄

  • 方法概述

  • 快有啥用?

  • 快速推理 SDXL LCM LoRA 模型

    • 生成質(zhì)量

    • 引導(dǎo)比例及反向提示

    • 與標(biāo)準(zhǔn) SDXL 模型的生成質(zhì)量對比

    • 其他模型的 LCM LoRA

    • Diffusers 全集成

  • 測試基準(zhǔn)

  • 已公開發(fā)布的 LCM LoRA 及 LCM 模型

  • 加分項(xiàng):將 LCM LoRA 與常規(guī) SDXL LoRA 結(jié)合起來

  • 如何訓(xùn)練 LCM 模型及 LCM LoRA

  • 資源

  • 致謝

方法概述

到底用了啥技巧?

在使用原始 LCM 蒸餾時(shí),每個(gè)模型都需要單獨(dú)蒸餾。而 LCM LoRA 的核心思想是只對少量適配器 (即 LoRA 層) 進(jìn)行訓(xùn)練,而不用對完整模型進(jìn)行訓(xùn)練。推理時(shí),可將生成的 LoRA 用于同一模型的任何微調(diào)版本,而無需對每個(gè)版本都進(jìn)行蒸餾。如果你已經(jīng)迫不及待地想試試這種方法的實(shí)際效果了,可以直接跳到下一節(jié)試一下推理代碼。如果你想訓(xùn)練自己的 LoRA,流程如下:

  1. 從 Hub 中選擇一個(gè)教師模型。如: 你可以使用 SDXL (base),或其任何微調(diào)版或 dreambooth 微調(diào)版,隨你喜歡。

  2. 在該模型上 訓(xùn)練 LCM LoRA 模型。LoRA 是一種參數(shù)高效的微調(diào) (PEFT),其實(shí)現(xiàn)成本比全模型微調(diào)要便宜得多。有關(guān) PEFT 的更詳細(xì)信息,請參閱 此博文 或 diffusers 庫的 LoRA 文檔。

  3. 將 LoRA 與任何 SDXL 模型和 LCM 調(diào)度器一起組成一個(gè)流水線,進(jìn)行推理。就這樣!用這個(gè)流水線,你只需幾步推理即可生成高質(zhì)量的圖像。

欲知更多詳情,請 下載我們的論文。

快有啥用?

Stable Diffusion 和 SDXL 的快速推理為新應(yīng)用和新工作流打開了大門,僅舉幾例:

  • 更易得: 變快后,生成工具可以被更多人使用,即使他們沒有最新的硬件。

  • 迭代更快: 無論從個(gè)人還是商業(yè)角度來看,在短時(shí)間內(nèi)生成更多圖像或進(jìn)行更多嘗試對于藝術(shù)家和研究人員來說都非常有用。

  • 可以在各種不同的加速器上進(jìn)行生產(chǎn)化部署,包括 CPU。

  • 圖像生成服務(wù)會更便宜。

為了衡量我們所說的速度差異,在 M1 Mac 上用 SDXL (base) 生成一張 1024x1024 圖像大約需要一分鐘。而用 LCM LoRA,我們只需約 6 秒 (4 步) 即可獲得出色的結(jié)果。速度快了一個(gè)數(shù)量級,我們再也無需等待結(jié)果,這帶來了顛覆性的體驗(yàn)。如果使用 4090,我們幾乎可以得到實(shí)時(shí)響應(yīng) (不到 1 秒)。有了它,SDXL 可以用于需要實(shí)時(shí)響應(yīng)的場合。

快速推理 SDXL LCM LoRA 模型

在最新版的?diffusers?中,大家可以非常容易地用上 LCM LoRA:?

代碼所做的事情如下:

  • 使用 SDXL 1.0 base 模型去實(shí)例化一個(gè)標(biāo)準(zhǔn)的 diffusion 流水線。

  • 應(yīng)用 LCM LoRA。

  • 將調(diào)度器改為 LCMScheduler,這是 LCM 模型使用的調(diào)度器。

  • 結(jié)束!

生成的全分辨率圖像如下所示:


? ?LCM LORA 微調(diào)后的 SDXL 模型用 4 步生成的圖像

生成質(zhì)量

我們看下步數(shù)對生成質(zhì)量的影響。以下代碼將分別用 1 步到 8 步生成圖像:?

生成的 8 張圖像如下所示:


? ?LCM LoRA 1 至 8 步生成的圖像

不出所料,僅使用?1?步即可生成細(xì)節(jié)和紋理欠缺的粗略圖像。然而,隨著步數(shù)的增加,效果改善迅速,通常只需 4 到 6 步就可以達(dá)到滿意的效果。個(gè)人經(jīng)驗(yàn)是,8 步生成的圖像對于我來說有點(diǎn)過飽和及“卡通化”,所以本例中我個(gè)人傾向于選擇 5 步和 6 步生成的圖像。生成速度非??欤阒恍?4 步即可生成一堆圖像,并從中選擇你喜歡的,然后根據(jù)需要對步數(shù)和提示詞進(jìn)行調(diào)整和迭代。

引導(dǎo)比例及反向提示

請注意,在前面的示例中,我們將引導(dǎo)比例?guidance_scale?設(shè)為?1?,實(shí)際上就是禁用它。對大多數(shù)提示而言,這樣設(shè)置就可以了,此時(shí)速度最快,但會忽略反向提示。你還可以將其值設(shè)為?1?到?2?之間,用于探索反向提示的影響——但我們發(fā)現(xiàn)再大就不起作用了。

與標(biāo)準(zhǔn) SDXL 模型的生成質(zhì)量對比

就生成質(zhì)量而言,本文的方法與標(biāo)準(zhǔn) SDXL 流水線相比如何?我們看一個(gè)例子!

我們可以通過卸掉 LoRA 權(quán)重并切換回默認(rèn)調(diào)度器來將流水線快速恢復(fù)為標(biāo)準(zhǔn) SDXL 流水線:?

然后,我們可以像往常一樣對 SDXL 進(jìn)行推理。我們使用不同的步數(shù)并觀察其結(jié)果:?


? ?SDXL 流水線結(jié)果 (相同的提示和隨機(jī)種子),步數(shù)分別為 1、4、8、15、20、25、30 和 50

如你所見,此示例中的生成的圖像在大約 20 步 (第二行) 之前幾乎毫無用處,且隨著步數(shù)的增加,質(zhì)量仍會不斷明顯提高。最終圖像中的細(xì)節(jié)很不錯(cuò),但獲得這樣的效果需要 50 步。

其他模型的 LCM LoRA

該技術(shù)也適用于任何其他微調(diào)后的 SDXL 或 Stable Diffusion 模型。僅舉一例,我們看看如何在?collage-diffusion?上運(yùn)行推理,該模型是用 Dreambooth 算法對 Stable Diffusion v1.5 微調(diào)而得。

代碼與我們在前面示例中看到的代碼類似。我們先加載微調(diào)后的模型,然后加載適合 Stable Diffusion v1.5 的 LCM LoRA 權(quán)重。


? ?基于 Dreambooth Stable Diffusion v1.5 模型使用 LCM LoRA,4 步推理

Diffusers 全集成

LCM 在?diffusers?中的全面集成使得其可以利用?diffusers?工具箱中的許多特性和工作流,如:

  • 對采用 Apple 芯片的 Mac 提供開箱即用的?mps?支持。

  • 內(nèi)存和性能優(yōu)化,例如 flash 注意力或?torch.compile()?。

  • 針對低 RAM 場景的其他內(nèi)存節(jié)省策略,包括模型卸載。

  • ControlNet 或圖生圖等工作流。

  • 訓(xùn)練和微調(diào)腳本。

測試基準(zhǔn)

本節(jié)列出了 SDXL LCM LoRA 在各種硬件上的生成速度,給大家一個(gè)印象。忍不住再提一句,能如此輕松地探索圖像生成真是太爽了!

上述所有測試的 batch size 均為 1,使用是 Sayak Paul 開發(fā)的 這個(gè)腳本。

對于顯存容量比較大的卡 (例如 A100),一次生成多張圖像,性能會有顯著提高,一般來講生產(chǎn)部署時(shí)會采取增加 batch size 的方法來增加吞吐。

已公開發(fā)布的 LCM LoRA 及 LCM 模型

  • LCM LoRA 集錦

    • latent-consistency/lcm-lora-sdxl。SDXL 1.0 base 的 LCM LoRA 權(quán)重,上文示例即使用了該權(quán)重。

    • latent-consistency/lcm-lora-sdv1-5。Stable Diffusion 1.5 的 LCM LoRA 權(quán)重。

    • latent-consistency/lcm-lora-ssd-1b。segmind/SSD-1B?的 LCM LoRA 權(quán)重,該模型是經(jīng)過蒸餾的 SDXL 模型,它尺寸比原始 SDXL 小 50%,速度快 60%。

  • latent-consistency/lcm-sdxl。對 SDXL 1.0 base 進(jìn)行全模型微調(diào)而得的一致性模型。

  • latent-consistency/lcm-ssd-1b。對?segmind/SSD-1B?進(jìn)行全模型微調(diào)而得的一致性模型。

加分項(xiàng): 將 LCM LoRA 與常規(guī) SDXL LoRA 結(jié)合起來

使用 diffusers + PEFT 集成,你可以將 LCM LoRA 與常規(guī) SDXL LoRA 結(jié)合起來,使其也擁有 4 步推理的超能力。

這里,我們將?CiroN2022/toy_face?LoRA 與 LCM LoRA 結(jié)合起來:


? ?標(biāo)準(zhǔn) LoRA 和 LCM LoRA 相結(jié)合實(shí)現(xiàn) 4 步快速推理

想要探索更多有關(guān) LoRA 的新想法嗎?可以試試我們的實(shí)驗(yàn)性 LoRA the Explorer (LCM 版本) 空間,在這里你可以把玩社區(qū)的驚人創(chuàng)作并從中獲取靈感!

如何訓(xùn)練 LCM 模型及 LCM LoRA

最新的?diffusers?中,我們提供了與 LCM 團(tuán)隊(duì)作者合作開發(fā)的訓(xùn)練和微調(diào)腳本。有了它們,用戶可以:

  • 在 Laion 等大型數(shù)據(jù)集上執(zhí)行 Stable Diffusion 或 SDXL 模型的全模型蒸餾。

  • 訓(xùn)練 LCM LoRA,它比全模型蒸餾更簡單。正如我們在這篇文章中所示,訓(xùn)練后,可以用它對 Stable Diffusion 實(shí)現(xiàn)快速推理,而無需進(jìn)行蒸餾訓(xùn)練。

更多詳細(xì)信息,請查閱代碼庫中的 SDXL 或 Stable Diffusion 說明文檔。

我們希望這些腳本能夠激勵(lì)社區(qū)探索實(shí)現(xiàn)自己的微調(diào)。如果你將它們用于自己的項(xiàng)目,請告訴我們!

資源

  • LCM 項(xiàng)目網(wǎng)頁、論文

  • LCM LoRA 相關(guān)資源

    • SDXL 的 LCM LoRA 權(quán)重

    • Stable Diffusion v1.5 的 LCM LoRA 權(quán)重

    • Segmind SSD-1B 的 LCM LoRA 權(quán)重

    • 技術(shù)報(bào)告

  • 演示應(yīng)用

    • 4 步推理 SDXL LCM LoRA 模型

    • 近實(shí)時(shí)視頻流

  • LoRA the Explorer 空間 (實(shí)驗(yàn)性 LCM 版)

  • PEFT: 簡介、代碼庫

  • 訓(xùn)練腳本

    • Stable Diffusion 1.5 訓(xùn)練腳本

    • SDXL 訓(xùn)練腳本

致謝

LCM 團(tuán)隊(duì)完成了 LCM 模型的出色工作,請務(wù)必查閱他們的代碼、報(bào)告和論文。該項(xiàng)目是 diffusers 團(tuán)隊(duì)、LCM 團(tuán)隊(duì)以及社區(qū)貢獻(xiàn)者 Daniel Gu 合作的結(jié)果。我們相信,這證明了開源人工智能的強(qiáng)大力量,它是研究人員、從業(yè)者和探客 (tinkerer) 們探索新想法和協(xié)作的基石。我們還要感謝?@madebyollin?對社區(qū)的持續(xù)貢獻(xiàn),其中包括我們在訓(xùn)練腳本中使用的?float16?自編碼器。

英文原文:?https://hf.co/blog/lcm_lora

原文作者: Pedro Cuenca, Suraj Patil, Simian Luo, Daniel Gu, Yiqin Tan, Sayak Paul, Apolinário

譯者: Matrix Yao (姚偉峰),英特爾深度學(xué)習(xí)工程師,工作方向?yàn)?transformer-family 模型在各模態(tài)數(shù)據(jù)上的應(yīng)用及大規(guī)模模型的訓(xùn)練推理。

審校/排版: zhongdongy (阿東)


使用 LCM LoRA 4 步完成 SDXL 推理的評論 (共 條)

分享到微博請遵守國家法律
南投县| 黄山市| 武陟县| 望都县| 益阳市| 天峨县| 加查县| 霸州市| 文化| 同心县| 苍山县| 信丰县| 宝应县| 鸡东县| 建湖县| 连山| 女性| 新泰市| 丹江口市| 双峰县| 周至县| 海林市| 清丰县| 南陵县| 禹城市| 浦东新区| 津南区| 鸡东县| 怀远县| 汶川县| 瑞金市| 武山县| 利津县| 县级市| 沧州市| 抚宁县| 广平县| 拜城县| 铁岭市| 容城县| 孝感市|