当前位置:首页|资讯|Stable Diffusion|LoRA

一台电脑装多套Stable Diffusion时共享模型文件的方法

作者:Contra实验编程发布时间:2023-10-22

我电脑里装了三套Stable Diffusion ui:

  • a1111 webui

  • comfyui

  • 秋叶整合包

一堆大模型、LoRA、ControlNet,再加上一些vae、upscale放大模型等,我自己常用的有90G左右,复制三份实在占地,更新版本也麻烦。

可以将所有模型集中放在一个位置,然后给各SD ui指定模型位置即可。


通常有两种方法:

方式一,mklink符号链接

它类似一个文件夹的指针或快捷方式,这样可以把各SD ui的模型文件夹例如models,指向同一个集中存放的模型文件夹。

示例,用mklink创建一个符号链接,将C盘A目录指向D盘B目录:

    mklink /d C:\XXX\A D:\XXX\B

微软mklink文档:

https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/mklink


例如我的模型文件夹是:

    D:\ai\models\sd\webui_using

该文件夹下面分类放了一些常用的模型文件:

以SD webui为例,将其安装目录stable-diffusion-webui下的models文件夹通过mklink映射到上图的webui_using:

打开cmd命令提示符,运行:

    mklink /d H:\stable-diffusion-webui\models D:\ai\models\sd\webui_using

注意,提前将models里的模型全移到webui_using里。如果创建失败,可以删除models空文件夹再试,切记提前备份好模型以防删错。


这样就可以了,简单测试可以用,但webui社群里有人说这种方式有些插件不太兼容。


方式二,命令行启动参数

我现在用的是第二种方法,通过命令行启动参数,为每套SD ui指定对应的模型位置。

Stable Diffusion A1111 webui的GitHub上有各种文件夹对应的参数变量:

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings


以我的为例:

包含了大模型、VAE、textural inversion、LoRA、upscaler、controlnet等。


1. 对Stable Diffusion A1111 webui:

将以上参数添加在webui安装根目录下的webui-user.bat文件的COMMANDLINE_ARGS后面:

提示:

  • COMMANDLINE_ARGS后面各个参数不要空行,连起来写成一行,空格隔开。

  • 最好将原本Windows路径里的 \ ,改为 / 。

即:

    D:\ai\models\sd\webui_using\XXX

改为:

    D:/ai/models/sd/webui_using/XXX

正常运行webui-user.bat启动即可。


2. 对秋叶包:

启动参数复制粘贴在启动器左侧高级选项 -> 最下方的自定义参数:

将需要改的模型文件夹参数粘贴进去即可,这里可以用换行,每行一个。

正常启动SD即可。


3. 对ComfyUI:

ComfyUI的自定义参数是存在其根目录下的extra_model_paths.yaml文件里,默认文件是extra_model_paths.yaml.example,直接改文件名或复制后改名。

然后用文本编辑器打开它。

它默认是在这里直接指定A1111 webui的模型文件位置,然后ComfyUI会去加载它。如果你只用了这两套ui,可以按默认的稍作修改。

如果也和我一样,还有秋叶包,以及其他XXX ui,那么可以在这个文件里专门去指定ComfyUI要读取的目录,把A1111部分注释掉:

提示,同样将原本Windows路径里的 \ ,改为 / 。

正常启动ComfyUI即可。


至此,绝大部分的模型文件都指定好了,如果你只需要指定其中一两个文件夹,也是可以的,例如只指定大模型、LoRA、ControlNet,通常这三大件最占空间。


其中有个特例,是AnimateDiff,它目前在webui里没有启动参数,而是在webui启动后的Settings里设置。

启动webui,在Setting里,左侧下方找到AnimateDiff,然后在最上边填入AnimateDiff的模型文件夹路径即可,这里不需要修改 \ 为 / :

秋叶包同理。


ComfyUI里,在extra_model_paths.yaml配置文件里添加一个custom_nodes,后面填上AnimateDiff模型文件夹路径(暂时未测,应该可以)。

    custom_nodes: path/custom_nodes


Cheers🍻

公知小抖B:实验编程

社群加V:floatbug

群将满,加V烦请注明:来源(哔哩哔哩)、学校单位、专业行业、作品集/B站/小红书/Ins/Tw等,便于高效交流谢谢。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1