吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

適配Diffusers框架的全套教程來了!

OpenCV學堂 ? 來源:機器之心 ? 2023-03-17 11:30 ? 次閱讀

本文從實際存在的問題出發,對代碼框架不兼容、模型加載受限等問題率先提出了自研解決方案,快速幫助開發者更容易地開發。

在 ChatGPT 出圈不久,ControlNet 的橫空出世很快在英文和中文互聯網收獲了眾多開發者和普通用戶,甚至有用戶宣傳 ControlNet 的出現將 AI 創作帶入了直立行走的時代。不夸張地說,包括 ControlNet 在內,同期的 T2I-Adapter、Composer, 以及 LoRA 訓練技巧,可控生成作為 AI 創作最后一道高墻,極有可能在可預見的時間內有進一步突破,從而極大地降低用戶的創作成本,提高創作的可玩性。距離 ControlNet 開源僅僅過去兩周,其官方 Star 就已經超過 1 萬,這種熱度無疑是空前的。 與此同時,開源社區也極大地降低了用戶的使用門檻,如 Hugging Face 平臺提供了基礎模型權重以及通用的模型訓練框架 diffusers,stable-diffusion-webui 開發了完善的一套 Demo 平臺,Civitai 貢獻了海量風格化 LoRA 權重。

edefcd2c-c424-11ed-bfe3-dac502259ad0.png

ef7f6332-c424-11ed-bfe3-dac502259ad0.png

盡管 webui 作為目前最受歡迎的可視化工具,已經快速地支持了近期推出的各種生成模型,并且支持眾多選項供用戶設置。由于其重點考慮了前端界面的易用性,背后代碼結構其實十分復雜,對于開發者而言不夠友好。比如 webui 盡管支持了多種類型的加載和推理,但卻無法支持不同框架下的轉換,也無法支持模型的靈活訓練。我們在社區討論中發現了許多現有開源代碼暫未解決的痛點。 首先,代碼框架不兼容,目前熱門的模型,如 ControlNet、T2I-Adapter,與主流的 Stable Diffusion 訓練庫 diffusers 不兼容,ControlNet 預訓練的模型無法直接在 diffusers 框架中被使用。 其次,模型加載受限,目前模型保存格式多樣,如.bin、.ckpt、.pth、.satetensors 等,除了 webui 外,目前 diffusers 框架對于這些模型格式的支持還有限,考慮到 LoRA 大部分模型以 safetensors 保存為主,用戶很難直接將 LoRA 的模型加載到已有的基于 diffusers 框架訓練的模型中。 第三,基礎模型受限,目前 ControlNet、T2I-Adapter 均基于 Stable-Diffusion-1.5 進行訓練,且僅開源了 SD1.5 下的模型權重,考慮到特定場景,已經存在諸如 anything-v4、ChilloutMix 等優質動漫模型,即使引入了可控信息,最終生成結果仍然受限于 SD1.5 中 UNet 的能力。 最后,模型訓練受限,目前 LoRA 已經被廣泛驗證是風格遷移、保持特定形象 IP 最有效的方法之一,但 diffusers 框架目前僅支持 UNet 的 LoRA 嵌入,無法支持 text encoder 的嵌入,會限制 LoRA 的訓練。 我們和開源社區討論后,了解到 diffusers 框架作為通用代碼庫,正計劃同時適配近期不斷推出的生成模型;由于涉及較多底層接口重寫,仍然需要一段時間更新。為此,我們從以上實際存在的問題出發,率先提出了對于每一個問題的自研解決方案,快速幫助開發者更容易地開發。 LoRA、ControlNet、T2I-Adapter 到 diffusers 的全適配方案 LoRA for diffusers 本方案是為了在 diffusers 框架,即基于 diffusers 訓練保存的模型中,靈活嵌入各種格式的 LoRA 權重。由于 LoRA 的訓練通常凍結 base model,因此可以作為可插拔模塊輕松嵌入已有模型,作為風格或 IP 條件約束。LoRA 本身是一種通用的訓練技巧,它的基本原理是,通過低秩分解,可以極大地減少模塊的參數量,目前在圖像生成中,一般用于訓練獨立于 base model 外的可插拔模塊,實際使用是以殘差形式與 base model 的輸出合并。 首先是 LoRA 權重的嵌入,目前 Civitai 平臺上提供的權重主要以 ckpt 或 safetensors 格式存儲,分以下兩種情況。 (1)Full model(base model + LoRA 模塊) 如果 full model 是 safetensors 格式,可以通過以下 diffusers 腳本轉換
python ./scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path xxx.safetensors  --dump_path save_dir --from_safetensors
如果 full model 是 ckpt 格式,可以通過以下 diffusers 腳本轉換
python ./scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path xxx.ckpt  --dump_path save_dir
轉換完成后,可直接利用 diffusers 的 API 進行模型加載
from diffusers import StableDiffusionPipeline  
pipeline = StableDiffusionPipeline.from_pretrained (save_dir,torch_dtype=torch.float32)
(2)LoRA only (僅包含 LoRA 模塊) 目前 diffusers 官方無法支持僅加載 LoRA 權重,而開源平臺上的 LoRA 權重基本以這種形式存儲。本質上是完成 LoRA 權重中 key-value 的重新映射,使其適配到 diffusers 模型中。為此,我們自行支持這個功能,提供了轉換腳本。
pipeline = StableDiffusionPipeline.from_pretrained (model_id,torch_dtype=torch.float32)
model_path = "onePieceWanoSagaStyle_v2Offset.safetensors"
state_dict = load_file (model_path)
只需要指定 diffusers 格式的模型,以及存儲為 safetensors 格式的 LoRA 權重。我們提供了一個轉換示例。
# the default mergering ratio is 0.75, you can manually set it 
python convert_lora_safetensor_to_diffusers.py
此外,LoRA 本身由于其輕量化,可以在小數據情況下快速完成訓練,并能夠嵌入到其他網絡中。為了不局限于已有 LoRA 權重,我們在 diffusers 框架中支持了 LoRA 的多模塊(UNet+text encoder)訓練,并已經在官方代碼庫提交 PR(https://github.com/huggingface/diffusers/pull/2479),并支持了 ColossalAI 中訓練 LoRA。 代碼開源在:https://github.com/haofanwang/Lora-for-Diffusers ControlNet for diffusers

efc32310-c424-11ed-bfe3-dac502259ad0.png

本方案是為了支持在 diffusers 框架中,使用 ControlNet。基于開源社區的部分嘗試,我們提供了完整的 ControlNet+Anything-V3 使用用例,支持將 base model 從原本 SD1.5 的替換到 anything-v3 模型,使 ControlNet 具備較好動漫生成的能力。 此外,我們也支持 ControlNet+Inpainting,并提供了適配 diffusers 的 pipeline,

f00e741e-c424-11ed-bfe3-dac502259ad0.png

f0235ca8-c424-11ed-bfe3-dac502259ad0.png

以及多條件控制的 Multi-ControlNet。

f0d37994-c424-11ed-bfe3-dac502259ad0.png

代碼開源在:https://github.com/haofanwang/ControlNet-for-Diffusers T2I-Adapter for diffusers

f1030eca-c424-11ed-bfe3-dac502259ad0.png

與 ControlNet 相似,我們也同時支持了同期開源的 T2I-Adapter 到 diffusers 的適配。 代碼開源在:https://github.com/haofanwang/T2I-Adapter-for-Diffusers 目前以上三種適配方案均已經向社區開源,并在 ControlNet、T2I-Adapter 中被官方分別致謝,也收到了來自 stable-diffusion-webui-colab 作者的感謝。我們正在與 diffusers 官方保持討論,會在近期完成以上方案向官方代碼庫的集成工作。也歡迎大家提前嘗試我們的工作,有任何問題均可以直接提 issue,我們會盡快回復。


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 框架
    +關注

    關注

    0

    文章

    403

    瀏覽量

    17543
  • AI
    AI
    +關注

    關注

    87

    文章

    31513

    瀏覽量

    270330
  • ChatGPT
    +關注

    關注

    29

    文章

    1568

    瀏覽量

    8058

原文標題:適配Diffusers框架的全套教程來了!從T2I-Adapter到大熱ControlNet

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DIY 12通道遙控器全套資料

    本帖最后由 eehome 于 2013-1-5 10:10 編輯 網上看到一個大牛做的,全套資料都公布出來了
    發表于 08-05 18:35

    開關電源全套測試指南(35項測試項目+變壓器計算方法)

    本文檔的主要內容詳細介紹的是開關電源的全套測試資料與詳細方法資料包括35項測試項目,給正在開發充電器,適配器的朋友一份大禮!
    發表于 10-31 15:54

    堡盟新型框架適配器——通過兩次卡入安裝傳感器

    堡盟新型框架適配器——通過兩次卡入安裝傳感
    發表于 01-08 09:34 ?763次閱讀

    和利時DCS系統全套資料

    和利時DCS系統全套資料
    發表于 12-16 18:30 ?31次下載

    python開發框架介紹

    一、Web框架 1.Django: 開源web開發框架,它鼓勵快速開發,并遵循MVC設計,比較龐大,開發周期短。Django的文檔最完善、市場占有率最高、招聘職位最多。全套的解決方案,Django象
    發表于 11-15 20:26 ?2081次閱讀

    OpenHarmony HDF平臺驅動框架及驅動適配介紹

    是OpenHarmony系統驅動框架的重要組成部分,它基于HDF驅動框架、操作系統適配層(OSAL, operating system abstraction layer)以及驅動配置管理機制,為各類平臺設備驅動的實現提供標準
    的頭像 發表于 09-24 11:16 ?7003次閱讀
    OpenHarmony HDF平臺驅動<b class='flag-5'>框架</b>及驅動<b class='flag-5'>適配</b>介紹

    OpenHarmony多芯片適配框架產生的背景

    辦公、HMS Core 等熱門話題,與華為專家、行業大咖、全球開發者一起探討全場景智慧體驗的未來。 OpenHarmony多芯片適配框架產生的背景: 設備驅動軟件解決的是:操作系統和硬件設備間的交互 ? 直播間:http://t.elecfans.com/live/170
    的頭像 發表于 10-23 13:27 ?1527次閱讀
    OpenHarmony多芯片<b class='flag-5'>適配</b><b class='flag-5'>框架</b>產生的背景

    基于openharmony適配移植的ohos原生UI框架

    項目介紹 項目名稱:XUI 所屬系列:openharmony的第三方組件適配移植 功能:一個簡潔而又優雅的ohos原生UI框架,解放你的雙手! 項目移植狀態:主功能完成 調用差異:無 開發版本
    發表于 04-07 09:04 ?1次下載

    基于openharmony適配移植支持無縫換膚的MultipleTheme框架

    項目介紹 項目名稱:MultipleTheme 所屬系列:openharmony的第三方組件適配移植 功能:支持無縫換膚的框架,配合theme和換膚控件框架可以做到無縫切換換膚 項目移植狀態:主功能
    發表于 04-07 09:14 ?2次下載

    基于openharmony適配移植的全功能Conductor框架

    項目介紹 項目名稱:Conductor 所屬系列:openharmony的第三方組件適配移植 功能:基于component (而非Fraction) 的HAP框架! 項目移植狀態:主功能完成 調用
    發表于 04-07 10:48 ?1次下載

    基于openharmony適配移植的手勢檢測器框架

    項目介紹 項目名稱:手勢檢測器框架 所屬系列:openharmony的第三方組件適配移植 功能:實現各種手勢檢測功能 項目移植狀態:主功能完成 調用差異:無 開發版本:sdk6,DevEco
    發表于 04-08 09:17 ?2次下載

    DMicro框架的應用開發

    drpc 組件是 DMicro 框架的一部分,為了適配 DMicro 框架,在 erpc 的基礎上做了深入的擴展開發。
    的頭像 發表于 08-08 15:18 ?636次閱讀

    發力新興小賽道,快來了解WAY~ON維安便攜式儲能全套方案由代理供

    發力新興小賽道,快來了解WAY~ON維安便攜式儲能全套方案由代理供
    的頭像 發表于 05-10 11:31 ?641次閱讀

    發力新興小賽道,快來了解維安便攜式儲能全套方案

    發力新興小賽道,快來了解維安便攜式儲能全套方案
    的頭像 發表于 05-10 11:40 ?1067次閱讀
    發力新興小賽道,快<b class='flag-5'>來了</b>解維安便攜式儲能<b class='flag-5'>全套</b>方案

    發力新興小賽道,快來了解WAYON維安便攜式儲能全套方案

    發力新興小賽道,快來了解WAYON維安便攜式儲能全套方案
    的頭像 發表于 05-30 13:59 ?868次閱讀
    發力新興小賽道,快<b class='flag-5'>來了</b>解WAYON維安便攜式儲能<b class='flag-5'>全套</b>方案
    百家乐官网投注程式| 百家乐官网剁手| 百家乐官网庄闲路| 太阳城百家乐红利| 利都百家乐国际赌场娱乐网规则 | 百家乐筹码| 真人百家乐官网游戏网址| 百家乐网络游戏平台| 澳门顶级赌场百家乐| 988百家乐官网娱乐| 波音百家乐现金网投注平台排名导航| 大发888娱乐场下载官方| 沙龙百家乐官网怎申请| 百家乐官网技巧开户网址| 三公百家乐在线哪里可以| 曲沃县| 24山向内什么山向最好| 全讯网321| 百家乐官网扑克发牌器| 网络百家乐怎么作弊| 大发888娱乐城rfgjdf888bg| 百家乐官网顶| 百家乐官网筹码防伪套装| 大发888娱乐城开户| 网上百家乐官网庄家有赌场优势吗| 百家乐对冲套红利| 青冈县| 百家乐官网输惨了| 大发888小陆| 百家乐官网赌博大全| 曼哈顿百家乐的玩法技巧和规则 | 御匾会百家乐官网娱乐城 | 酒泉市| 百家乐娱乐城博彩| 六合彩现场| 24鸡是什么命| bet365金融技巧| 太子百家乐官网的玩法技巧和规则 | 百家乐官网看图赢钱| 六合彩天线宝宝| 墓地附近做生意风水|