该存储库主要为 Kohya 的稳定扩散训练器提供 Gradio GUI。不过,对 Linux 操作系统的支持也是通过社区贡献提供的。目前 macOS 支持并不是最佳的,但如果条件有利的话可能会起作用。
GUI 允许您设置训练参数并生成和运行所需的 CLI 命令来训练模型。
Kohya 的 GUI
页面文件限制
没有名为 tkinter 的模块
TESLA V100 上的 LORA 训练 - GPU 利用率问题
问题摘要
潜在的解决方案
在 Windows 上启动 GUI
在 Linux 和 macOS 上启动 GUI
Windows升级
Linux 和 macOS 升级
视窗
Linux 和 macOS
运行波德
码头工人
Windows 先决条件
设置窗口
可选:CUDNN 8.9.6.50
Linux 先决条件
设置Linux
安装位置
手动安装
预构建的 Runpod 模板
视窗
Linux、操作系统
让您的 Docker 为 GPU 支持做好准备
Dockerfile 的设计
使用预先构建的 Docker 镜像
本地 docker 构建
ashleykleynhans runpod docker 构建
目录
?科拉布
安装
升级中
启动图形用户界面服务
自定义路径默认值
洛拉
训练期间生成样本图像
故障排除
SDXL 培训
掩蔽损失
变更历史记录
这个 Colab 笔记本不是由我创建或维护的;然而,它似乎发挥了有效作用。来源可以在:https://github.com/camenduru/kohya_ss-colab 找到。
我谨对 Camendutu 的宝贵贡献表示感谢。如果您在使用 Colab 笔记本时遇到任何问题,请在其存储库中报告。
科拉布 | 信息 |
---|---|
kohya_ss_gui_colab |
要在 Windows 系统上安装必要的依赖项,请按照下列步骤操作:
安装Python 3.10.11。
在安装过程中,确保选择将 Python 添加到“PATH”环境变量的选项。
安装 CUDA 11.8 工具包。
安装 Git。
安装 Visual Studio 2015、2017、2019 和 2022 可再发行组件。
要设置项目,请按照下列步骤操作:
打开终端并导航到所需的安装目录。
通过运行以下命令克隆存储库:
git clone --recursive https://github.com/bmaltais/kohya_ss.git
切换到kohya_ss
目录:
cd kohya_ss
通过执行以下命令来运行以下安装脚本之一:
对于仅安装了 python 3.10.11 的系统:
.setup.bat
对于仅安装了多个 python 版本的系统:
.setup-3.10.bat
在加速配置步骤中,请使用配置期间建议的默认值,除非您知道您的硬件需求。 GPU 上的 VRAM 量不会影响所使用的值。
以下步骤是可选的,但可以提高 NVIDIA 30X0/40X0 GPU 用户的学习速度。这些步骤可以实现更大的训练批量大小和更快的训练速度。
运行.setup.bat
并选择2. (Optional) Install cudnn files (if you want to use the latest supported cudnn version)
。
要在 Linux 系统上安装必要的依赖项,请确保满足以下要求:
确保预安装venv
支持。您可以使用以下命令在 Ubuntu 22.04 上安装它:
apt安装python3.10-venv
按照此链接中提供的说明安装 CUDA 11.8 工具包。
确保您的系统上安装了 Python 版本 3.10.9 或更高版本(但低于 3.11.0)。
要在 Linux 或 macOS 上设置项目,请执行以下步骤:
打开终端并导航到所需的安装目录。
通过运行以下命令克隆存储库:
git clone --recursive https://github.com/bmaltais/kohya_ss.git
切换到kohya_ss
目录:
cd kohya_ss
如果遇到权限问题,请通过运行以下命令使setup.sh
脚本可执行:
chmod +x ./setup.sh
通过执行以下命令来运行安装脚本:
./setup.sh
注意:如果您需要有关 runpod 环境的其他选项或信息,可以使用setup.sh -h
或setup.sh --help
显示帮助消息。
Linux 上的默认安装位置是脚本所在的目录。如果在该位置检测到以前的安装,安装程序将在那里继续。否则,安装将回退到/opt/kohya_ss
。如果/opt
不可写,则后备位置将为$HOME/kohya_ss
。最后,如果前面的选项均不可行,则安装将在当前目录中执行。
对于 macOS 和其他非 Linux 系统,安装过程将尝试根据脚本的运行位置来检测以前的安装目录。如果未找到以前的安装,则默认位置将为$HOME/kohya_ss
。您可以通过在运行安装脚本时使用-d
或--dir
选项指定自定义安装目录来覆盖此行为。
如果您选择使用交互模式,则加速配置屏幕的默认值将为“本机”、“无”和其余问题的“否”。这些默认答案与 Windows 安装相同。
要安装 Runpod 所需的组件并运行 kohya_ss,请按照以下步骤操作:
选择 Runpod pytorch 2.0.1 模板。这很重要。其他模板可能不起作用。
通过 SSH 登录到 Runpod。
通过运行以下命令克隆存储库:
cd /工作区 git clone --recursive https://github.com/bmaltais/kohya_ss.git
运行安装脚本:
cd kohya_ss ./setup-runpod.sh
使用以下命令运行 GUI:
./gui.sh --share --headless
或者如果您直接通过 runpod 配置公开 7860:
./gui.sh --listen=0.0.0.0 --无头
连接到安装过程完成后显示的公共 URL。
要从预构建的 Runpod 模板运行,您可以:
单击 https://runpod.io/gsc?template=ya6013lj5a&ref=w18gds2n 打开 Runpod 模板。
将模板部署到所需的主机上。
部署后,通过 HTTP 3010 连接到 Runpod 以访问 kohya_ss GUI。您还可以通过 HTTP 3000 连接到 auto1111。
安装完Docker Desktop 、 CUDA Toolkit 、 NVIDIA Windows Driver并确保 Docker 与WSL2一起运行后,您就可以开始使用了。
这是官方文档,供进一步参考。
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#nvidia-compute-software-support-on-wsl-2 https://docs.docker.com/desktop/wsl/use -wsl/#gpu-支持
如果您尚未安装 NVIDIA GPU 驱动程序,请安装该驱动程序。
https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html
使用本指南安装 NVIDIA Container Toolkit。
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
要求所有训练数据都存储在dataset
子目录中,该子目录安装在/dataset
容器中。
请注意,文件选择器功能不可用。相反,您需要手动输入文件夹路径和配置文件路径。
TensorBoard 已从该项目中分离出来。
TensorBoard 不包含在 Docker 镜像中。
“启动 TensorBoard”按钮已被隐藏。
TensorBoard 是从一个不同的容器启动的,如下所示。
浏览器不会自动启动。您需要手动打开浏览器并导航到 http://localhost:7860/ 和 http://localhost:6006/
该 Dockerfile 被设计为易于一次性使用。您可以随时丢弃容器并使用新的代码版本重新启动它。
git clone --recursive https://github.com/bmaltais/kohya_ss.gitcd kohya_ss docker 组成-d
要更新系统,请执行docker compose down && docker compose up -d --pull always
重要的
递归克隆 Git 存储库以包含子模块:
git clone --recursive https://github.com/bmaltais/kohya_ss.git
git clone --recursive https://github.com/bmaltais/kohya_ss.gitcd kohya_ss docker compose up -d --build
笔记
构建映像最多可能需要 20 分钟才能完成。
要更新系统,请签出新的代码版本并使用docker compose down && docker compose up -d --build --pull always
进行重建
如果您在 Linux 上运行,这里提供了限制较少的替代 Docker 容器端口。
在 runpod 上运行时,您可能需要使用以下存储库:
独立 Kohya_ss 模板:https://github.com/ashleykleynhans/kohya-docker
Auto1111 + Kohya_ss GUI 模板:https://github.com/ashleykleynhans/stable-diffusion-docker
要将您的安装升级到新版本,请按照以下说明操作。
如果有新版本可用,您可以通过从项目的根目录运行以下命令来升级存储库:
从存储库中提取最新更改:
git拉
运行安装脚本:
.setup.bat
要升级 Linux 或 macOS 上的安装,请按照以下步骤操作:
打开终端并导航到项目的根目录。
从存储库中提取最新更改:
git拉
刷新并更新所有内容:
./setup.sh
要启动 GUI 服务,您可以使用提供的脚本或直接运行kohya_gui.py
脚本。使用下面列出的命令行参数来配置底层服务。
--listen: Specify the IP address to listen on for connections to Gradio.
--username: Set a username for authentication.
--password: Set a password for authentication.
--server_port: Define the port to run the server listener on.
--inbrowser: Open the Gradio UI in a web browser.
--share: Share the Gradio UI.
--language: Set custom language
在 Windows 上,您可以使用位于根目录中的gui.ps1
或gui.bat
脚本。选择适合您偏好的脚本并在终端中运行它,并提供所需的命令行参数。这是一个例子:
gui.ps1 --listen 127.0.0.1 --server_port 7860 --inbrowser --share
或者
gui.bat --listen 127.0.0.1 --server_port 7860 --inbrowser --share
要在 Linux 或 macOS 上启动 GUI,请运行根目录中的gui.sh
脚本。提供所需的命令行参数,如下所示:
gui.sh --listen 127.0.0.1 --server_port 7860 --inbrowser --share
存储库现在提供了一个名为config.toml
的默认配置文件。该文件是一个模板,您可以根据需要进行自定义。
要使用默认配置文件,请按照下列步骤操作:
将config example.toml
文件从存储库的根目录复制到config.toml
。
在文本编辑器中打开config.toml
文件。
根据您的要求修改路径和设置。
这种方法允许您轻松调整配置以满足您的特定需求,为 GUI 中支持的每种类型的文件夹/文件输入打开所需的默认文件夹。
运行 GUI 时,您可以指定 config.toml 的路径(或您喜欢的任何其他名称)。例如:./gui.bat --config c:my_config.toml
要训练 LoRA,您当前可以使用train_network.py
代码。您可以使用一体化 GUI 创建 LoRA 网络。
创建 LoRA 网络后,您可以通过安装此扩展使用 auto1111 生成图像。
提示文件可能如下所示,例如:
# 提示 1masterpiece,最佳质量,(1girl),穿着白衬衫,上半身,看着观众,简单背景 --n 低质量,最差质量,不良解剖结构,不良构图,差,低努力 --w 768 --h 768 --d 1 --l 7.5 --s 28#提示2杰作,最佳质量,1男孩,穿着西装,站在街上,回头看--n(低质量,最差质量),糟糕的解剖结构,糟糕构图,差,低努力 --w 576 --h 832 --d 2 --l 5.5 --s 40
以#
开头的行是注释。您可以在提示后使用--n
等选项为生成的图像指定选项。可以使用以下选项:
--n
:否定提示直到下一个选项。
--w
:指定生成图像的宽度。
--h
:指定生成图像的高度。
--d
:指定生成图像的种子。
--l
:指定生成图像的CFG比例。
--s
:指定生成的步骤数。
( )
和[ ]
等提示权重正在起作用。
如果您遇到任何问题,请参阅以下故障排除步骤。
如果遇到与页面文件相关的 X 错误,则可能需要增加 Windows 中的页面文件大小限制。
如果您遇到指示未找到模块tkinter
错误,请尝试在系统上重新安装 Python 3.10。
在 TESLA V100 上训练 LORA 时,用户报告 GPU 利用率较低。此外,除了默认的训练 GPU 之外,指定 GPU 也很困难。
GPU 选择:用户可以在设置配置中指定 GPU ID,以选择所需的 GPU 进行训练。
提高 GPU 负载:利用adamW8bit
优化器并增加批处理大小可以帮助实现 70-80% 的 GPU 利用率,而不会超出 GPU 内存限制。
本节中的文档稍后将移至单独的文档中。
每个训练脚本都支持屏蔽损失。要启用屏蔽损失,请指定--masked_loss
选项。
该功能尚未经过全面测试,因此可能存在错误。如果您发现任何问题,请打开问题。
ControlNet 数据集用于指定掩码。遮罩图像应该是 RGB 图像。 R通道中的像素值255被视为掩模(仅对具有掩模的像素计算损失),0被视为非掩模。将像素值0-255转换为0-1(即像素值128被视为损失的一半权重)。请参阅 LLLite 文档中数据集规范的详细信息。
查看发布信息。