diffuser格式与ckpt格式说明

两种模型权重的存储格式,即diffusers格式和ckpt格式:

区别
  1. diffusers

diffusers格式其实包含:feature_extractor, scheduler, text_encoder, tokenizer, unet, vae这些文件夹以及model_index.json这个文件。大的二进制文件主要位于text_encoder,unet和vae文件夹下。

  1. ckpt

后缀为.ckpt的文件就是ckpt格式。一般可能会看到safetensors, 它是ckpt转换得到的,防止别有用心之人在ckpt文件中加入恶意代码。

safetensor和ckpt文件都能直接用于AUTOMATIC111这个为T2I模型开发的WebUI上,而diffusers不行。而diffusers提供的一些代码example又非常有借鉴意义,但一旦使用,其存储类型是一系列目录,这就催生了两种各格式相互转化的需求。

相互转化

使用diffusers官方提供的转化脚本完成转化,这些转换脚本在diffuser源代码仓库的scripts文件夹下:
主要涉及两个文件:
convert_original_stable_diffusion_to_diffusers.py
convert_diffusers_to_original_stable_diffusion.py。

  1. diffusers to ckpts

python convert_diffusers_to_original_stable_diffusion.py --model_path model_dir --checkpoint_path path_to_ckpt.ckpt
  还有两个参数:
–half:数值存为fp16
–use_safetensors:ckpt存为safetensors

  1. ckpts to diffusers

使用convert_original_stable_diffusion_to_diffusers.py脚本,一个典型的使用场景是把ckpt文件(自己训练的或者是SD官方发布的)解包成diffusers的目录形式上传hugging face或者是自己使用。需要注意的是diffuser的目录存储形式实际上提供了比ckpt文件更多的(实际上多得多)信息。下面提供一个范例:
python convert_original_stable_diffusion_to_diffusers.py
–checkpoint_path path_to_ckpt.ckpt
–dump_path model_dir
–image_size 512
–prediction_type epsilon

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值