kohya_ss:Stable Diffusion训练GUI工具

0 阅读5分钟

kohya_ss:Stable Diffusion训练GUI工具

开源项目bmaltais/kohya_ss,目前获得了12,254个Star:

正文顶部截图

README区域截图

kohya_ss是基于Gradio开发的图形界面工具,用于Kohya的Stable Diffusion训练脚本。

Stable Diffusion训练支持用户自定义图像生成模型,可对现有模型进行微调,创建独特艺术风格,训练LoRA等专用模型。

该GUI的主要功能包括:

  • 提供易用界面,可设置多种训练参数
  • 自动生成运行训练脚本所需的CLI命令
  • 支持多种训练方式,包括LoRA、Dreambooth、微调、SDXL训练

工具同时支持Linux和macOS系统。Linux支持由社区贡献维护,macOS兼容性可能存在差异。

安装方式

kohya_ss可在本地机器运行,也可通过Colab、Runpod等云方案使用。 如果你的设备配备GPU,且希望获得完整控制权,可选择使用uv或pip在本地安装。 如果设备不符合要求,或偏好浏览器端操作,可使用Colab或Runpod、Novita等付费GPU服务商的方案。 开发者或DevOps用户也可使用Docker部署。

本地安装

本地安装可选择uv或pip两种方式,根据平台和使用习惯选择:

  • Linux推荐使用uv
  • Linux或Mac可使用pip
  • Windows两种方式均支持

uv安装速度更快,依赖隔离更彻底,适合希望减少配置麻烦的用户。 pip是更传统的安装方式,出现问题时更易调试,与部分IDE或Python工具的兼容性更好。 如果不确定选择哪种方式,可先尝试uv,如运行出现问题再切换为pip。

云安装

Colab

无需本地安装,可直接使用Colab notebook进行浏览器端训练。 Colab免费使用,GPU可用性可能存在波动。该notebook由camenduru维护,非原作者开发。 使用过程中遇到问题,可在camenduru的仓库提交反馈。

Runpod、Novita、Docker

这些方案适用于在托管GPU基础设施或容器中运行训练的用户。 Runpod提供现成GPU模板,支持后台训练。 Novita功能与Runpod类似,集成在Novita UI中。 Docker适用于使用容器化环境的开发者或系统管理员。

自定义配置

GUI支持通过config.toml配置文件设置默认路径,可避免每次启动GUI时重复手动选择目录。 config.toml可预填预训练模型、数据集、输出文件夹、LoRA模型等目录的默认路径,简化工作流程。

配置方法如下:

  1. 在kohya_ss仓库根目录下,找到config example.toml文件,复制并重命名为config.toml。该文件会在GUI启动时自动加载。
  2. 使用文本编辑器打开config.toml,根据本地目录结构修改对应键的路径。 配置文件使用TOML格式,由key = "value"键值对组成。路径需使用正斜杠,即使在Windows系统下也需遵循该规则,且指定目录需存在于系统中。

config.toml通常包含多个分区,对应不同训练模式或通用设置。常用可配置项包括:

  • model_dir:加载基础Stable Diffusion模型的默认目录
  • lora_model_dir:保存和加载LoRA模型的默认目录
  • output_dir:训练输出(图像、日志、模型 checkpoint)的默认根目录
  • dataset_dir:数据集的通用默认目录
  • 不同训练标签(如Dreambooth、微调、LoRA等)的专用输入路径

用户也可在启动GUI时通过--config命令行参数指定自定义配置文件路径。

LoRA训练

训练LoRA可使用train_network.py代码,通过一体化GUI即可创建LoRA网络。 创建完成后,安装sd-webui-additional-networks扩展,即可在auto1111中使用生成的LoRA生成图像。 更多LoRA训练选项和高级配置信息,可参考官方LoRA文档。

训练过程样本图像生成

训练过程中支持生成样本图像,用户可通过prompt文件指定生成参数。 prompt文件中,以#开头的行为注释。prompt后可通过--n、--w、--h等选项指定生成图像的参数,包括负提示、宽度、高度、种子、CFG scale、步数等。

故障排查与其他功能

如果使用过程中遇到问题,可参考官方提供的故障排查指南。 Windows用户遇到页面文件相关错误,可尝试增加系统页面文件大小限制。 出现tkinter模块未找到的错误,可尝试重新安装Python 3.10版本。 TESLA V100 GPU上训练LoRA出现利用率问题,可参考对应的故障排查文档获取解决方案。

SDXL训练的详细指导,可参考官方sd-scripts文档及LoRA训练指南中的相关章节。 训练脚本支持masked loss功能,启用需指定--masked_loss选项。该功能目前尚未完全测试,可能存在bug,发现问题可在GitHub提交Issue。

项目也支持多GPU选择、多实例运行等功能。用户可在Accelerate launch标签中设置GPU ID,Linux用户可在不同端口启动多个GUI实例,实现同时运行多个训练任务。 项目欢迎社区贡献,bug报告或功能需求可在GitHub Issues页面提交,代码修改可提交Pull Request。 项目使用Apache License 2.0开源协议,可在LICENSE.md文件中查看详细条款。

开源地址

github.com/bmaltais/ko…