最近换了新电脑,需要把Stable Diffusion从旧电脑迁移到新电脑。
原以为就是复制粘贴的事,结果中间踩了不少坑:模型文件找不到、配置不兼容、插件报错、环境依赖冲突……花了整整一天才搞定。
本文分享完整的迁移实战过程,包括模型文件迁移、配置文件迁移、插件迁移、环境重建、参数调优、以及迁移过程中遇到的各种问题和解决方案。
一、为什么要迁移
先说说迁移的背景。
1. 旧电脑的问题
旧电脑是几年前买的,配置已经跟不上了:
- 显卡是GTX 1060 6GB,跑Stable Diffusion很勉强
- 生成一张512x512的图要1-2分钟
- 大图直接显存溢出,跑不了
- 内存16GB,开了浏览器就卡
- 硬盘也快满了,模型都放不下几个
随着Stable Diffusion的模型越来越大,功能越来越多,旧电脑已经力不从心了。
2. 新电脑的配置
新电脑的配置:
- 显卡:RTX 4090 24GB(终于可以随便跑了)
- CPU:i9-13900K
- 内存:64GB DDR5
- 硬盘:2TB NVMe SSD
- 系统:Windows 11
这样的配置,跑Stable Diffusion应该很流畅了。
3. 迁移的需求
迁移不只是装个新环境那么简单,我需要:
- 所有模型文件迁移过去(几十个G)
- 配置文件迁移(参数设置、UI布局等)
- 插件迁移(ControlNet、LoRA等)
- 历史生成记录迁移
- 自定义脚本和样式迁移
- 确保新环境和旧环境的生成结果一致
二、迁移前的准备
迁移之前,先做好准备工作。
1. 盘点旧环境
先盘点旧电脑上的Stable Diffusion环境:
- WebUI版本:Automatic1111的版本号
- 模型文件:有哪些大模型、LoRA、VAE、Embedding
- 插件:安装了哪些插件
- 配置文件:ui-config.json、config.json、styles.csv等
- 输出文件:生成的图片和历史记录
- 自定义脚本:scripts目录下的自定义脚本
- 启动参数:webui-user.bat中的参数
把这些都列出来,确保迁移时不遗漏。
2. 备份旧环境
迁移前,一定要备份旧环境。
- 把整个stable-diffusion-webui目录复制一份到移动硬盘
- 特别是models目录,一定要备份好
- 配置文件单独备份一份
- 生成的图片也备份一份
备份的好处是,即使迁移失败,旧环境还能用,不会丢东西。
3. 新电脑的准备
新电脑上先装好基础软件:
- Python 3.10(和旧环境版本一致)
- Git
- NVIDIA显卡驱动(最新版)
- 必要的运行库(VC++ Redistributable等)
注意:Python版本一定要和旧环境一致,否则可能会有依赖兼容性问题。我旧环境用的是Python 3.10.6,新环境也装3.10.6。
三、迁移步骤
说说具体的迁移步骤。
第一步:安装新的WebUI
在新电脑上,先安装一个全新的WebUI:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git然后运行一次webui-user.bat,让它自动下载依赖。第一次运行会比较慢,需要下载很多包。
等它运行成功,确认基础环境没问题,再进行下一步。
注意: 不要直接把旧的WebUI整个目录复制过去。因为不同电脑的硬件、驱动、系统可能不一样,直接复制可能会有各种兼容性问题。最好是在新电脑上全新安装,再迁移数据和配置。
第二步:迁移模型文件
模型文件是最大的一块,也是最重要的。
需要迁移的模型文件:
- 大模型(Checkpoint):
models/Stable-diffusion/目录下的.ckpt和.safetensors文件 - LoRA模型:
models/Lora/目录 - VAE模型:
models/VAE/目录 - Embedding(Textual Inversion):
embeddings/目录 - Hypernetwork:
models/hypernetworks/目录 - ControlNet模型:
models/ControlNet/目录 - 其他模型:如Real-ESRGAN、GFPGAN等放大和修复模型
迁移方法:
- 把旧电脑上的这些目录复制到移动硬盘
- 再复制到新电脑对应的目录下
- 注意保持目录结构一致
注意:
- 模型文件很大,复制需要时间,耐心等待
- 复制完成后,校验文件大小,确保没有损坏
- .safetensors格式比.ckpt安全,建议优先用.safetensors
第三步:迁移配置文件
配置文件决定了WebUI的行为和界面,迁移后可以保持和旧环境一致。
需要迁移的配置文件:
- config.json:WebUI的核心配置
- ui-config.json:UI界面的配置(默认参数、滑块范围等)
- styles.csv:保存的样式(预设的提示词组合)
- webui-user.bat:启动参数(如--xformers、--medvram等)
- cache.json:模型缓存(可以不迁移,会自动重建)
迁移方法:
- 把旧电脑上的这些文件复制到新电脑的WebUI根目录
- 覆盖新电脑上的同名文件
- 检查webui-user.bat中的参数,确保适合新电脑
注意:
- 如果新旧WebUI版本差异较大,config.json可能不完全兼容。建议先备份新的config.json,再覆盖,如果启动报错就恢复新的config.json,手动调整参数。
- ui-config.json一般兼容性较好,可以直接覆盖。
第四步:迁移插件
插件是WebUI的重要组成部分,很多功能都靠插件实现。
需要迁移的插件在extensions/目录下。
迁移方法有两种:
方法一:直接复制
- 把旧电脑的
extensions/目录整个复制到新电脑 - 优点:简单快捷,所有插件和配置都过去
- 缺点:可能有兼容性问题,旧版本的插件在新WebUI上可能报错
方法二:重新安装
- 在新电脑的WebUI中,通过Extensions界面重新安装插件
- 优点:确保插件是最新版,兼容性好
- 缺点:麻烦,需要记住装了哪些插件
我的做法是:
- 先列出旧电脑上的所有插件(extensions目录下的文件夹名)
- 在新电脑上逐个重新安装(用Install from URL)
- 安装完成后,把旧插件的配置文件复制过去(如果有的话)
这样既保证了插件是最新版,又保留了配置。
常用插件清单(供参考):
- ControlNet:控制生成的姿势、构图等
- openpose-editor:编辑姿势
- deforum:动画生成
- kohya_ss:训练LoRA
- images-browser:图片浏览器
- tagger:自动打标签
- infinite-zoom:无限缩放动画
第五步:迁移输出文件和历史记录
如果你想保留之前生成的图片和历史记录:
- outputs目录:所有生成的图片都在这里,直接复制过去
- log目录:生成日志,可以不迁移
- txt2img/img2img的历史:WebUI会在输出目录中保存每个生成的图片和对应的参数,复制过去后可以用PNG Info查看
如果你不需要旧的生成图片,可以跳过这一步。
第六步:迁移自定义脚本和样式
- 自定义脚本:
scripts/目录下的.py文件,直接复制 - 样式:styles.csv已经在第三步迁移了
- 提示词模板:如果你有自己的提示词模板文件,也复制过去
四、环境配置和调优
迁移完成后,需要根据新电脑的配置,调整环境参数。
1. 启动参数调优
新电脑配置好,可以调整启动参数,充分利用硬件。
编辑webui-user.bat,设置COMMANDLINE_ARGS:
# 旧电脑(GTX 1060 6GB)
set COMMANDLINE_ARGS=--medvram --xformers
# 新电脑(RTX 4090 24GB)
set COMMANDLINE_ARGS=--xformers --no-half-vae --enable-insecure-extension-access参数说明:
--xformers:启用xformers加速,节省显存,提升速度--medvram:中等显存模式,旧电脑需要,新电脑不需要--lowvram:低显存模式,更慢--no-half-vae:不使用半精度VAE,避免某些模型产生黑图--enable-insecure-extension-access:允许从网页安装插件
2. 显存优化
RTX 4090有24GB显存,基本不用太担心显存问题。但还是可以优化:
- 开启xformers:节省显存,提升速度
- 大图生成用Hires. fix:先生成小图,再放大
- Batch size不要设太大:一般1-4就够了
- 不用的模型及时卸载:在WebUI设置中开启"自动卸载模型"
3. 速度优化
新电脑的速度应该很快,但还可以进一步优化:
- 用.safetensors格式模型:加载更快
- 模型放在SSD上:加载速度快
- 用更快的采样方法:如DPM++ 2M Karras,步数20就够
- 开启xformers:推理速度提升
- 关闭不需要的插件:减少内存占用和启动时间
4. 模型管理
新电脑硬盘大,可以多放一些模型,但也要管理好:
- 按类型分类:写实、二次元、通用等
- 用模型预览图:每个模型配一张预览图,方便选择
- 定期清理不用的模型:节省空间
- 用Civitai Helper插件:自动下载模型预览图和信息
五、迁移中遇到的坑
说说迁移过程中遇到的坑和解决方法。
坑一:启动报错,config.json不兼容
问题: 覆盖config.json后,WebUI启动报错,提示某些配置项不存在。
原因: 旧WebUI版本比较老,config.json的格式和新版不完全兼容。
解决方法:
- 删除覆盖的config.json,让WebUI重新生成默认的config.json
- 对比旧的config.json,把需要的参数手动改到新的config.json中
- 或者在WebUI的Settings界面中,手动调整参数,然后Apply settings
教训: 配置文件不要直接覆盖,特别是版本差异大的时候。先备份,再逐步迁移。
坑二:插件报错,版本不兼容
问题: 直接复制旧的extensions目录后,启动WebUI,某个插件报错,导致整个WebUI无法启动。
原因: 旧版本的插件和新版WebUI不兼容。
解决方法:
- 找到报错的插件目录,先重命名(加个.bak后缀)
- 重启WebUI,确认其他插件正常
- 在WebUI的Extensions界面,重新安装这个插件的最新版
- 如果最新版还有问题,就等插件更新,或者暂时不用
教训: 插件不要直接复制,最好重新安装最新版。
坑三:模型加载失败,文件损坏
问题: 迁移后,某个模型加载失败,提示文件损坏或格式错误。
原因: 复制过程中文件损坏,或者模型文件本身有问题。
解决方法:
- 对比新旧电脑上的文件大小,确认是否一致
- 如果不一致,重新复制这个文件
- 如果文件确实损坏,重新下载模型
- 建议用.safetensors格式,比.ckpt更安全,不容易损坏
教训: 大文件复制后,一定要校验文件大小或MD5。
坑四:生成结果和旧电脑不一样
问题: 同样的提示词、同样的参数、同样的Seed,新电脑生成的图片和旧电脑不一样。
原因: 可能的原因有几个:
- 显卡不同,计算精度有差异
- xformers版本不同
- 模型版本不同
- WebUI版本不同
解决方法:
- 确保模型文件完全一致(校验MD5)
- 确保WebUI版本一致
- 确保xformers版本一致
- 如果还是不一样,可能是硬件差异导致的,这个无法完全避免
教训: 不同硬件之间,生成结果可能有细微差异,这是正常的。如果需要完全一致,只能用相同的硬件和软件环境。
坑五:ControlNet不工作
问题: ControlNet插件安装了,但生成时没有效果。
原因: ControlNet的模型文件没有放对位置,或者模型版本不匹配。
解决方法:
- 确认ControlNet模型放在
models/ControlNet/目录下 - 确认模型版本和ControlNet插件版本匹配
- 在WebUI的Settings中,确认ControlNet的模型路径配置正确
- 重启WebUI,在ControlNet面板中选择正确的模型
教训: 插件的模型文件也要迁移,而且要放对位置。
坑六:显存溢出(OOM)
问题: 新电脑配置高,但生成大图时还是显存溢出。
原因: 图片尺寸太大,或者Batch size太大,或者同时加载了多个模型。
解决方法:
- 减小图片尺寸,用Hires. fix放大
- 减小Batch size
- 开启自动卸载模型
- 用--medvram参数(虽然新电脑一般不需要)
- 关闭其他占用显存的程序
教训: 即使显存大,也不要无限制地增大尺寸和批量。
六、迁移后的验证
迁移完成后,要做全面的验证。
1. 基础功能验证
- 启动WebUI,确认没有报错
- 文生图:用默认参数生成一张图,确认正常
- 图生图:上传一张图,生成新图,确认正常
- 模型切换:切换不同的大模型,确认都能加载
- LoRA加载:在提示词中加LoRA,确认生效
2. 插件验证
逐个测试常用插件:
- ControlNet:上传参考图,生成,确认控制有效
- 图片浏览器:能正常浏览历史图片
- 高清修复:Hires. fix正常工作
- 其他插件:按常用功能测试
3. 性能验证
测试生成速度:
- 512x512,20步,记录生成时间
- 和旧电脑对比,确认速度提升
- 测试大图生成,确认不会显存溢出
我的新电脑(RTX 4090)生成512x512的图,只要2-3秒,比旧电脑快了几十倍。
4. 生成质量验证
用旧电脑上的一组提示词和参数,在新电脑上生成:
- 对比生成质量,确认没有明显下降
- 测试不同的模型,确认都能正常生成
- 测试LoRA和Embedding,确认生效
七、迁移的最佳实践
总结一下迁移的最佳实践:
1. 不要直接复制整个目录
全新安装WebUI,再迁移数据和配置。直接复制整个目录,容易有兼容性问题。
2. 版本尽量一致
新旧电脑的WebUI版本、Python版本、xformers版本尽量一致,减少兼容性问题。
3. 备份再操作
迁移前备份旧环境,迁移时每一步都备份,出问题可以回滚。
4. 逐步迁移,逐步验证
不要一次性把所有东西都搬过去。先基础环境,再模型,再配置,再插件,每一步都验证通过后再进行下一步。
5. 模型文件校验
大文件复制后,校验文件大小或MD5,确保没有损坏。
6. 插件重新安装
插件不要直接复制,在新环境中重新安装最新版,兼容性更好。
7. 记录配置
把旧环境的配置(启动参数、WebUI设置、插件列表)记录下来,迁移时对照着来,不容易遗漏。
八、写在最后
这次Stable Diffusion的迁移,虽然踩了不少坑,但最终还是顺利完成了。
新电脑的体验,和旧电脑完全不是一个量级。生成速度快了几十倍,大图随便跑,模型想装多少装多少。这种流畅的体验,让AI绘画的乐趣大大增加。
迁移的过程,也让我对Stable Diffusion的架构有了更深的理解。模型、配置、插件、环境,每个部分都有它的作用,迁移时要分别处理。
如果你也需要迁移Stable Diffusion环境,希望这篇文章能帮你少踩一些坑。记住:备份、逐步迁移、逐步验证,这三个原则做到了,迁移就不会出大问题。
2022年8月,Stable Diffusion还在快速发展,新的模型、新的插件、新的技术层出不穷。保持环境的整洁和可迁移性,能让你在升级硬件、更换电脑时更加从容。
最后,用一句话总结:"Stable Diffusion迁移,核心是数据和配置的迁移,而不是环境的复制。全新安装+数据迁移+逐步验证,是最稳妥的方式。"
愿你的AI绘画之旅,越跑越顺。
评论(0)
暂无评论,快来抢沙发~
评论功能仅对会员开放,请先登录
登录