在 ChatGPT 出圈不久,ControlNet 的横空出世很快在英文和中文互联网收获了众多开发者和普通用户,甚至有用户宣传 ControlNet 的出现将 AI 创作带入了直立行走的时代。不夸张地说,包括 ControlNet 在内,同期的 T2I-Adapter、Composer, 以及 LoRA 训练技巧,可控生成作为 AI 创作最后一道高墙,极有可能在可预见的时间内有进一步突破,从而极大地降低用户的创作成本,提高创作的可玩性。距离 ControlNet 开源仅仅过去两周,其官方 Star 就已经超过 1 万,这种热度无疑是空前的。 与此同时,开源社区也极大地降低了用户的使用门槛,如 Hugging Face 平台提供了基础模型权重以及通用的模型训练框架 diffusers,stable-diffusion-webui 开发了完善的一套 Demo 平台,Civitai 贡献了海量风格化 LoRA 权重。本文从实际存在的问题出发,对代码框架不兼容、模型加载受限等问题率先提出了自研解决方案,快速帮助开发者更容易地开发。


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





审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
框架
+关注
关注
0文章
404浏览量
18317 -
AI
+关注
关注
89文章
38090浏览量
296542 -
ChatGPT
+关注
关注
31文章
1596浏览量
10072
原文标题:适配Diffusers框架的全套教程来了!从T2I-Adapter到大热ControlNet
文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
python开发框架介绍
一、Web框架 1.Django: 开源web开发框架,它鼓励快速开发,并遵循MVC设计,比较庞大,开发周期短。Django的文档最完善、市场占有率最高、招聘职位最多。全套的解决方案,Django象
发表于 11-15 20:26
•2298次阅读
OpenHarmony HDF平台驱动框架及驱动适配介绍
是OpenHarmony系统驱动框架的重要组成部分,它基于HDF驱动框架、操作系统适配层(OSAL, operating system abstraction layer)以及驱动配置管理机制,为各类平台设备驱动的实现提供标准
OpenHarmony多芯片适配框架产生的背景
办公、HMS Core 等热门话题,与华为专家、行业大咖、全球开发者一起探讨全场景智慧体验的未来。 OpenHarmony多芯片适配框架产生的背景: 设备驱动软件解决的是:操作系统和硬件设备间的交互 直播间:http://t.elecfans.com/live/170
基于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次下载

适配Diffusers框架的全套教程来了!
评论