Project Icon

kohya_ss

Stable Diffusion模型训练图形界面工具

kohya_ss是一个开源的Stable Diffusion模型训练工具,提供图形用户界面。用户可以通过界面设置训练参数,生成所需的命令行指令。支持多个操作系统,具备LoRA训练和样本图像生成等功能。该工具简化了Stable Diffusion模型的自定义训练流程,有助于AI图像生成。

Kohya的图形用户界面

这个仓库主要提供了一个用于Kohya的Stable Diffusion训练器的Gradio图形用户界面。通过社区贡献,它还支持Linux操作系统。目前macOS的支持还不够理想,但在条件允许的情况下可能可以使用。

该图形界面允许你设置训练参数,并生成和运行所需的命令行指令来训练模型。

目录

🦒 Colab

这个Colab笔记本不是由我创建或维护的,但看起来运行良好。源代码可以在这里找到:https://github.com/camenduru/kohya_ss-colab

我要感谢camendutu的宝贵贡献。如果你在使用Colab笔记本时遇到任何问题,请在他们的仓库中报告。

Colab信息
在Colab中打开kohya_ss_gui_colab

安装

Windows

Windows 前置要求

要在Windows系统上安装必要的依赖项,请按照以下步骤操作:

  1. 安装Python 3.10.11

    • 在安装过程中,请确保选择将Python添加到'PATH'环境变量的选项。
  2. 安装CUDA 11.8 toolkit

  3. 安装Git

  4. 安装Visual Studio 2015, 2017, 2019, 和 2022 redistributable

Windows 安装步骤

要设置项目,请按照以下步骤操作:

  1. 打开终端并导航到所需的安装目录。

  2. 通过运行以下命令克隆仓库:

    git clone --recursive https://github.com/bmaltais/kohya_ss.git
    
  3. 进入kohya_ss目录:

    cd kohya_ss
    
  4. 运行以下其中一个安装脚本:

    对于只安装了python 3.10.11的系统:

    .\setup.bat
    

    对于安装了多个Python版本的系统:

    .\setup-3.10.bat
    

    在accelerate配置步骤中,除非你知道你的硬件需要其他设置,否则请使用配置过程中建议的默认值。GPU的VRAM大小不会影响使用的值。

可选:CUDNN 8.9.6.50

以下步骤是可选的,但会提高NVIDIA 30X0/40X0 GPU用户的学习速度。这些步骤可以实现更大的训练批量大小和更快的训练速度。

  1. 运行.\setup.bat并选择2. (可选)安装cudnn文件(如果你想使用最新支持的cudnn版本)

Linux 和 macOS

Linux 前置要求

要在Linux系统上安装必要的依赖项,请确保满足以下要求:

  • 确保预先安装了venv支持。你可以在Ubuntu 22.04上使用以下命令安装:

    apt install python3.10-venv
    
  • 按照此链接中提供的说明安装CUDA 11.8 Toolkit。

  • 确保你的系统上安装了Python 3.10.9或更高版本(但低于3.11.0)。

Linux 安装步骤

要在Linux或macOS上设置项目,请执行以下步骤:

  1. 打开终端并导航到所需的安装目录。

  2. 通过运行以下命令克隆仓库:

git clone --recursive https://github.com/bmaltais/kohya_ss.git
  1. 进入kohya_ss目录:
cd kohya_ss
  1. 如果遇到权限问题,通过运行以下命令使setup.sh脚本可执行:
chmod +x ./setup.sh
  1. 执行以下命令运行安装脚本:
./setup.sh

注意:如果需要额外选项或关于runpod环境的信息,可以使用setup.sh -hsetup.sh --help显示帮助信息。

安装位置

Linux上的默认安装位置是脚本所在的目录。如果在该位置检测到之前的安装,安装将在那里继续。否则,安装将回退到/opt/kohya_ss。如果/opt不可写,回退位置将是$HOME/kohya_ss。最后,如果前面的选项都不可行,安装将在当前目录进行。

对于macOS和其他非Linux系统,安装过程将尝试根据脚本运行的位置检测之前的安装目录。如果没有找到之前的安装,默认位置将是$HOME/kohya_ss。你可以在运行安装脚本时使用-d--dir选项指定自定义安装目录来覆盖此行为。

如果选择使用交互模式,accelerate配置屏幕的默认值将是"This machine"、"None"和剩余问题的"No"。这些默认答案与Windows安装相同。

Runpod

手动安装

要安装Runpod所需的组件并运行kohya_ss,请按以下步骤操作:

  1. 选择Runpod pytorch 2.0.1模板。这很重要。其他模板可能无法工作。

  2. SSH进入Runpod。

  3. 运行以下命令克隆仓库:

cd /workspace
git clone --recursive https://github.com/bmaltais/kohya_ss.git
  1. 运行安装脚本:
cd kohya_ss
./setup-runpod.sh
  1. 运行GUI:
./gui.sh --share --headless

或者如果你通过runpod配置直接暴露7860端口,则使用:

./gui.sh --listen=0.0.0.0 --headless
  1. 连接到安装过程完成后显示的公共URL。

预构建的Runpod模板

要从预构建的Runpod模板运行,你可以:

  1. 点击https://runpod.io/gsc?template=ya6013lj5a&ref=w18gds2n打开Runpod模板。

  2. 在所需主机上部署模板。

  3. 部署后,通过HTTP 3010连接到Runpod以访问kohya_ss GUI。你还可以通过HTTP 3000连接到auto1111。

Docker

为GPU支持准备Docker

Windows

安装Docker DesktopCUDA ToolkitNVIDIA 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-support

Linux, OSX

如果尚未安装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

我们的Dockerfile设计

  • 要求所有训练数据存储在dataset子目录中,该目录挂载到容器的/dataset
  • 请注意,文件选择器功能不可用。相反,你需要手动输入文件夹路径和配置文件路径。
  • TensorBoard已从项目中分离。
    • Docker镜像中不包含TensorBoard。
    • "启动TensorBoard"按钮已隐藏。
    • TensorBoard从一个独立的容器启动如此处所示
  • 浏览器不会自动启动。你需要手动打开浏览器并导航到http://localhost:7860/http://localhost:6006/
  • 此Dockerfile设计为易于丢弃。你可以随时丢弃容器并使用新的代码版本重新启动。

使用预构建的Docker镜像

git clone --recursive https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
docker compose up -d

要更新系统,执行docker compose down && docker compose up -d --pull always

本地Docker构建

[!重要]
递归克隆Git仓库以包含子模块:
git clone --recursive https://github.com/bmaltais/kohya_ss.git

git clone --recursive https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
docker compose up -d --build

[!注意]
构建镜像可能需要长达20分钟才能完成。

要更新系统,切换到新的代码版本并使用docker compose down && docker compose up -d --build --pull always重新构建

如果你在Linux上运行,这里有一个限制较少的替代Docker容器端口可用

ashleykleynhans runpod docker构建

在runpod上运行时,你可能想使用以下仓库:

升级

要将你的安装升级到新版本,请按照以下说明操作。

Windows升级

如果有新版本可用,你可以通过从项目的根目录运行以下命令来升级你的仓库:

  1. 从仓库拉取最新更改:
git pull
  1. 运行安装脚本:
.\setup.bat

Linux和macOS升级

要在 Linux 或 macOS 上升级安装,请按照以下步骤操作:

  1. 打开终端并导航到项目的根目录。

  2. 从存储库拉取最新更改:

    git pull
    
  3. 刷新并更新所有内容:

    ./setup.sh
    

启动 GUI 服务

要启动 GUI 服务,您可以使用提供的脚本或直接运行 kohya_gui.py 脚本。使用下列命令行参数来配置底层服务。

--listen: 指定要监听连接 Gradio 的 IP 地址。
--username: 设置身份验证的用户名。
--password: 设置身份验证的密码。
--server_port: 定义运行服务器监听器的端口。
--inbrowser: 在网络浏览器中打开 Gradio UI。
--share: 共享 Gradio UI。
--language: 设置自定义语言

在 Windows 上启动 GUI

在 Windows 上,您可以使用位于根目录的 gui.ps1gui.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

要在 Linux 或 macOS 上启动 GUI,运行位于根目录的 gui.sh 脚本。提供所需的命令行参数如下:

gui.sh --listen 127.0.0.1 --server_port 7860 --inbrowser --share

自定义路径默认值

该存储库现在提供了一个名为 config.toml 的默认配置文件。这个文件是一个模板,您可以根据需要进行自定义。

要使用默认配置文件,请按照以下步骤操作:

  1. 从存储库的根目录复制 config example.toml 文件到 config.toml
  2. 用文本编辑器打开 config.toml 文件。
  3. 根据您的需求修改路径和设置。

这种方法允许您轻松调整配置,以适应您的特定需求,打开 GUI 中支持的每种文件夹/文件输入的所需默认文件夹。

运行 GUI 时,您可以指定 config.toml(或您喜欢的任何其他名称)的路径。例如:./gui.bat --config c:\my_config.toml

LoRA

要训练 LoRA,您目前可以使用 train_network.py 代码。您可以使用全能 GUI 创建 LoRA 网络。

创建 LoRA 网络后,您可以通过安装此扩展使用 auto1111 生成图像。

训练期间的样本图像生成

例如,提示文件可能如下所示:

# 提示 1
masterpiece, best quality, (1girl), in white shirts, upper body, looking at viewer, simple background --n low quality, worst quality, bad anatomy, bad composition, poor, low effort --w 768 --h 768 --d 1 --l 7.5 --s 28

# 提示 2
masterpiece, best quality, 1boy, in business suit, standing at street, looking back --n (low quality, worst quality), bad anatomy, bad composition, poor, low effort --w 576 --h 832 --d 2 --l 5.5 --s 40

# 开头的行是注释。您可以在提示后使用 --n 等选项来指定生成图像的选项。可以使用以下选项:

  • --n:直到下一个选项的负面提示。
  • --w:指定生成图像的宽度。
  • --h:指定生成图像的高度。
  • --d:指定生成图像的种子。
  • --l:指定生成图像的 CFG 比例。
  • --s:指定生成的步骤数。

提示权重如 ( )[ ] 是有效的。

故障排除

如果遇到任何问题,请参考以下故障排除步骤。

页面文件限制

如果遇到与页面文件相关的 X 错误,您可能需要增加 Windows 中的页面文件大小限制。

找不到名为 tkinter 的模块

如果遇到指示找不到模块 tkinter 的错误,请尝试在系统上重新安装 Python 3.10。

TESLA V100 上的 LORA 训练 - GPU 利用率问题

问题摘要

在 TESLA V100 上训练 LORA 时,用户报告 GPU 利用率低。此外,难以指定默认以外的 GPU 进行训练。

潜在解决方案

  • GPU 选择: 用户可以在设置配置中指定 GPU ID 以选择所需的 GPU 进行训练。
  • 提高 GPU 负载: 使用 adamW8bit 优化器并增加批量大小可以帮助实现 70-80% 的 GPU 利用率,而不超过 GPU 内存限制。

SDXL 训练

本节的文档稍后将移至单独的文档中。

掩码损失

每个训练脚本都支持掩码损失。要启用掩码损失,请指定 --masked_loss 选项。

该功能尚未完全测试,可能存在错误。如果发现任何问题,请提出问题。

ControlNet 数据集用于指定掩码。掩码图像应为 RGB 图像。R 通道中像素值 255 被视为掩码(仅对具有掩码的像素计算损失),0 被视为非掩码。像素值 0-255 转换为 0-1(即像素值 128 被视为损失的一半权重)。有关数据集规范的详细信息,请参阅 LLLite 文档

更改历史

请查看发布信息。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号