成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

在 ChatGPT 出圈不久,ControlNet 的橫空出世很快在英文和中文互聯網收獲了眾多開發者和普通用戶,甚至有用戶宣傳 ControlNet 的出現將 AI 創作帶入了直立行走的時代。不夸張地說,包括 ControlNet 在內,同期的 T2I-Adapter、Composer, 以及 LoRA 訓練技巧,可控生成作為 AI 創作最后一道高墻,極有可能在可預見的時間內有進一步突破,從而極大地降低用戶的創作成本,提高創作的可玩性。距離 ControlNet 開源僅僅過去兩周,其官方 Star 就已經超過 1 萬,這種熱度無疑是空前的。

與此同時,開源社區也極大地降低了用戶的使用門檻,如 Hugging Face 平臺提供了基礎模型權重以及通用的模型訓練框架 diffusers,stable-diffusion-webui 開發了完善的一套 Demo 平臺,Civitai 貢獻了海量風格化 LoRA 權重。

圖片

圖片

盡管 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

圖片

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

此外,我們也支持 ControlNet+Inpainting,并提供了適配 diffusers 的 pipeline,

圖片

圖片

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

圖片

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

T2I-Adapter for diffusers

圖片

與 ControlNet 相似,我們也同時支持了同期開源的 T2I-Adapter 到 diffusers 的適配。

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

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

責任編輯:張燕妮 來源: 機器之心
相關推薦

2023-10-05 12:28:41

AI論文

2024-01-15 06:40:00

研究視頻

2024-01-29 13:56:55

AI數據

2009-05-26 10:02:30

2020-04-16 15:10:56

COBOLGitHub編程語言

2017-03-06 15:25:47

PyTorchMxnet深度學習

2017-07-05 14:21:30

框架TensorFlowTheano

2020-02-25 15:04:48

深度學習編程人工智能

2017-03-01 13:36:41

TensorFlowTheano框架

2025-03-24 10:55:18

2012-08-02 10:46:34

JavaAdapter模式

2014-12-17 09:57:01

AndroidAdapteViewHolder

2024-10-17 16:47:05

磁盤I/O計算機

2019-08-15 10:56:10

WebServletSpring mvc

2013-01-28 17:33:42

2023-05-08 16:36:22

以太網綜合布線智能家居

2015-10-22 10:08:17

iOSATS適配

2024-12-23 00:27:40

2025-02-20 09:27:46

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线观看av网址 | 九色视频网 | av大片在线观看 | 国产激情一区二区三区 | 日本久久精品视频 | 一区二区不卡高清 | 久久精品播放 | 91传媒在线观看 | 超碰免费在线 | 久久成人人人人精品欧 | 中文字幕第二区 | 一级片网址 | 天天操天天射综合 | 久久精品这里精品 | 国产三级精品三级在线观看四季网 | 日韩三区在线观看 | 国产日韩精品在线 | 艹逼网 | 日韩精品免费视频 | 欧美综合一区二区三区 | 国产农村妇女毛片精品久久麻豆 | 天天插天天狠天天透 | 欧美在线国产精品 | 青青久久久 | 亚洲最大的成人网 | 国产精品美女久久久 | 久久av综合 | 国产日韩免费观看 | 精品麻豆剧传媒av国产九九九 | 国产精品久久久久久久久久免费看 | 三级av免费 | 久久99精品国产麻豆婷婷 | 国产日韩久久久久69影院 | 综合二区 | 欧美午夜视频 | av国产精品毛片一区二区小说 | 国产精品久久久久久久久久99 | 午夜视频在线 | 免费视频99| 亚洲经典一区 | 美国av片在线观看 |