kohya_ss Docker部署完整教程:如何快速搭建跨平台Stable Diffusion训练环境
2026/9/13 21:54:31 网站建设 项目流程

kohya_ss Docker部署完整教程:如何快速搭建跨平台Stable Diffusion训练环境

【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss

配置Stable Diffusion训练环境,通常要折腾Python版本、CUDA依赖和一堆版本冲突。kohya_ss是支持LoRA、DreamBooth、微调的GUI训练工具,本文用Docker把整套环境打包成镜像:在有NVIDIA显卡的机器上,3条命令就能打开可用的训练界面,全程不碰Python环境。

🐳 为什么值得这样部署

传统本地安装要做的事是:装Python 3.11、下载数GB的torch和CUDA依赖、克隆sd-scripts训练核心,再逐个解决版本冲突。Docker把这些全部装进一个镜像里,差别体现在这几点:

  • 跨平台一致:Windows、Linux、macOS(经WSL2)上拿到同一套运行环境,不再有"我电脑上是好的"
  • 环境隔离:Python、CUDA、依赖全在镜像里,不碰系统包,删容器即可彻底清理
  • 更新成本低docker compose up -d --pull always拉新镜像重启即可
  • 数据不落容器:训练数据和模型都在宿主机目录,容器可随时销毁重建
  • TensorBoard自带:独立容器在6006端口看训练曲线,不用另装

官方Docker安装细节可在 docs/installation_docker.md 交叉核对。

📋 准备工作清单

Windows

  1. 安装Docker Desktop,确认启用WSL2后端——容器运行时的基础
  2. 安装最新NVIDIA Windows驱动——宿主机GPU加速的入口
  3. 安装CUDA Toolkit——WSL2 + Docker的GPU链路需要它在宿主机一侧

Linux / macOS

  1. 安装Docker Enginedocker compose插件——容器运行时
  2. 安装NVIDIA GPU驱动(已装可跳过)
  3. 安装NVIDIA Container Toolkit——让容器能看见GPU,缺了它 compose 里的--gpus配置不会生效

装完后在宿主机跑一次nvidia-smi,能输出显卡型号和驱动版本即说明宿主机就绪。

🚀 部署执行:3条命令启动

推荐最短路径:使用预构建镜像

# 克隆仓库(必须加 --recursive,否则缺少训练核心sd-scripts子模块,构建会失败) git clone --recursive https://gitcode.com/GitHub_Trending/ko/kohya_ss # 进入项目目录 cd kohya_ss # 后台启动容器(首次会下载预构建镜像ghcr.io/bmaltais/kohya-ss-gui:latest,体积数GB,等待时间取决于带宽) docker compose up -d

docker-compose.yaml 会同时拉起两个服务:kohya-ss-gui(训练界面,7860端口)和tensorboard(训练曲线,6006端口)。

替代方案:本地构建镜像

需要自定义依赖或离线部署时,从本地代码构建:

# 克隆仓库(同样必须 --recursive) git clone --recursive https://gitcode.com/GitHub_Trending/ko/kohya_ss # 进入项目目录 cd kohya_ss # 本地构建镜像并启动(需下载PyTorch等依赖并逐层编译,预期最长约20分钟) docker compose up -d --build

目录结构:数据放哪里

容器被刻意设计成"可丢弃"的,数据全部留在宿主机:

kohya_ss/ ├── dataset/ # 训练数据(容器内挂载为 /dataset,图片和文本标注都放这里) ├── models/ # 预训练模型与训练产出的模型文件 └── .cache/ # 配置与缓存目录(保证设置持久化)

kohya_ss 训练产出的Stable Diffusion图像示例:

![kohya_ss Stable Diffusion LoRA训练示例图](https://raw.gitcode.com/GitHub_Trending/ko/kohya_ss/raw/f44226cfccca008094f958d829c49c74a7e9289d/test/img/10_darius kawasaki person/Dariusz_Zawadzki.jpg?utm_source=gitcode_repo_files)

注意一个设计点:GUI在容器内以--headless模式运行(见 Dockerfile 的CMD),没有文件选择器,目录路径需要手动输入,所以开始训练前先确认数据放在dataset/下。

✅ 部署后验证

依次做三件事,全部通过就可以开始训练:

# 检查两个容器都是Up状态(应看到 kohya-ss-gui 和 tensorboard) docker compose ps # 确认容器内能看到GPU(输出显卡型号和显存即为正常) docker exec -it kohya-ss-gui nvidia-smi
  1. 浏览器打开http://localhost:7860,能看到 kohya_ss 的 Gradio 界面(Train Network 等标签页)即GUI正常;跑一次训练产生日志后,http://localhost:6006能看到TensorBoard曲线。

🔧 关键配置改法

最常想改的是端口、GPU、TensorBoard端口,改动点都在 docker-compose.yaml。

一行命令改GUI端口

7860被占用时,只改宿主机侧端口:

ports: - "7861:7860" # 宿主机7861映射到容器7860,浏览器访问 http://localhost:7861

只用指定GPU

多卡机器想锁定某一张卡时:

- driver: nvidia capabilities: [gpu] device_ids: ["0"] # 默认 "all",改成卡号即只分配该卡

改TensorBoard端口

在项目目录创建或编辑.env文件:

TENSORBOARD_PORT=6007 # TensorBoard将监听 http://localhost:6007

🛠️ 日常维护:常用命令清单

docker compose ps # 查看容器状态 docker compose logs -f kohya-ss-gui # 实时跟踪训练日志 docker compose stop kohya-ss-gui # 只停GUI,保留TensorBoard docker compose down # 停止并移除容器(宿主机数据保留) docker compose up -d --pull always # 拉取最新预构建镜像并重启(日常更新) docker exec -it kohya-ss-gui bash # 进入容器内部查看文件

🩺 遇到卡点时

  • 容器内nvidia-smi报错或找不到GPU:NVIDIA Container Toolkit 没装或装完没重启Docker。装好Toolkit后执行systemctl restart docker,再用docker run --rm --gpus all nvidia/cuda:12.8.0-base-ubuntu nvidia-smi单独验证;能打印GPU信息说明宿主机链路正常,问题出在容器配置。
  • 本地构建失败,提示找不到 sd-scripts:训练子模块没拉下来。在项目目录执行git submodule update --init --recursive,然后重新docker compose up -d --build
  • 训练启动不了,日志报路径不存在:headless模式没有文件选择器,路径必须手填,且数据必须放在宿主机dataset/下(容器内对应/dataset)。把图片和标注txt放进dataset/,在GUI中手填/dataset/你的文件夹名
  • 7860端口被占用:把 docker-compose.yaml 里的映射改成7861:7860,然后docker compose down && docker compose up -d重启。
  • 容器启动后立即退出或报权限错误:容器以UID 1000运行。宿主机dataset/models/目录若对该用户无读写权限,容器会直接退出。宿主机执行ls -ld dataset models检查属主,把目录属主调整为对应UID,或用--build-arg UID=<你的UID>重建镜像。

📊 与其他方案对比

方案上手难度隔离性更新成本适用场景
Docker部署(本文)低,3条命令高,整套环境在镜像里低,拉镜像或重建本地有GPU、长期训练
本地 pip/uv 安装高,要自己管Python和依赖无,直接使用系统环境中,git pull并重装依赖需要调试、修改代码的开发者
Colab/Runpod 云端极低,浏览器打开即用高,平台托管极低,平台自动处理本地无GPU、只想快速试用

🎯 收尾行动清单

  1. 克隆仓库:git clone --recursive https://gitcode.com/GitHub_Trending/ko/kohya_ss
  2. 启动服务:cd kohya_ss && docker compose up -d
  3. 打开http://localhost:7860确认GUI,docker exec -it kohya-ss-gui nvidia-smi确认GPU
  4. 把训练图片放进dataset/,在 Train Network 标签页发起第一次LoRA训练

训练参数怎么调,照着 docs/LoRA/top_level.md 和 docs/train_README.md 走。环境搭好后,剩下的就是选模型、调参数——去跑你的第一个LoRA吧。

【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询