V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Sunbread
V2EX  ›  分享创造

Ckpt2Diff:适用于 NovelAI 等 ckpt 的傻瓜式 ckpt 转 diffusers 脚本

  •  
  •   Sunbread · 2022-12-14 13:28:27 +08:00 · 1985 次点击
    这是一个创建于 719 天前的主题,其中的信息可能已经有所发展或是发生改变。

    引子

    最近在尝试用 Dreambooth 对 NovelAI 进行微调。奈何 webui 提供的扩展实在太不稳定,训练不到 10 个 step loss 就发散了。
    之后我尝试使用 diffusers 训练,但 diffusers 使用的模型格式并不是 ckpt ,和 NovelAI 不兼容。尝试使用网上提供的第三方转换脚本进行转换,结果无一例外模型都坏掉了,生成一堆五颜六色的雪花图。HuggingFace 倒是的确提供了转换脚本,但不支持 NovelAI 的 ckpt 。

    功能介绍

    我给官方提供的其中一个转换脚本打了 patch ,成功转换出正确的模型,之后又花了半个通宵魔改用例做出了这个脚本。
    如题,这个小工具主要功能就是把 ckpt 格式转换成 diffusers 格式,特点如下:

    • 适用于 NovelAI 等 ckpt
    • 傻瓜式(不需要命令行参数,直接运行遵照指示操作)
    • 只能把 ckpt 转成 diffusers (转回来应该问题不大,用官方脚本就行)

    源码

    https://github.com/Sunbread/Ckpt2Diff

    BTW

    如果要使用 Dreambooth 以人像为样本进行微调,建议遵循如下指南:
    https://huggingface.co/blog/dreambooth
    其中有一条是使用 DDIM Scheduler ,这个你得在转换时就设好。

    第 1 条附言  ·  2022-12-14 15:52:57 +08:00
    转出来的 diffusers 模型默认会带一个河蟹器,这个只需要在 model_index.json 里把 requires_safety_checker 关掉,feature_extractor 和 safety_checker 项删掉(同名文件夹也可以删了节省空间)就行
    2 条回复    2022-12-14 17:53:20 +08:00
    codecool
        1
    codecool  
       2022-12-14 16:37:35 +08:00
    赞,有什么方法把 deambooth 的训练出来的模型集成到 invokeai ?
    Sunbread
        2
    Sunbread  
    OP
       2022-12-14 17:53:20 +08:00
    @codecool 不清楚,最近实在没精力搞了,连修三天的仙搞这个我要昏厥了,顶多修修 issue 合合 pr 的样子
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3666 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:23 · PVG 12:23 · LAX 20:23 · JFK 23:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.