在 AMD(ROCm)上跑通 kohya_ss:完成你的第一次 LoRA 训练
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
ROCm 驱动装好了,kohya_ss 界面也启动了,一点"开始训练"却报错或只跑 CPU——这是 AMD GPU 用户最常见的卡点。这篇文章面向会用终端、但没训练过模型的人,在 Linux 上把 kohya_ss 完整跑一遍:先逐项自查环境,装 ROCm 依赖,再启动图形界面,最后完成一次最小 LoRA 训练。
环境自查:开训前逐项核对
kohya_ss 是一个基于 Gradio 的模型训练图形界面,LoRA、DreamBooth、文本反转都靠它操作。ROCm 是 AMD 的 GPU 计算栈,作用类似 NVIDIA 的 CUDA。下表是硬性条件,装驱动之前先核一遍。
| 项目 | 要求 | 怎么核对 |
|---|---|---|
| 显卡 | 支持 ROCm 的 AMD 卡,RX 6000/7000 系列(RDNA 2/3)成熟度最高 | 终端运行rocm-smi,能看到卡名与显存即通过 |
| 系统 | Linux,Ubuntu 22.04 及以上最省心 | cat /etc/os-release查看发行版 |
| Python | 3.10 或 3.11(项目要求>=3.10,<3.12,见 pyproject.toml) | python3 --version |
| ROCm 驱动 | 6.x 版本;仓库锁定的 PyTorch 是 rocm6.3 轮子,见 ROCm 依赖 | rocm-smi无报错,且rocminfo能列出设备 |
验证命令只有一条:
rocm-smi预期结果是列出你的显卡、显存容量和占用率。如果提示找不到设备,说明 ROCm 驱动没装好,先解决这一项再往下走。
完整流程:从空环境到第一次训练
环境准备
把仓库克隆下来,--recursive不能省,kohya_ss 的训练逻辑在 sd-scripts 子模块里:
git clone --recursive https://gitcode.com/GitHub_Trending/ko/kohya_ss cd kohya_ss安装 ROCm 依赖
在仓库目录里运行安装脚本,--use-rocm让脚本走 AMD 分支:
./setup.sh --use-rocm脚本会创建 venv 虚拟环境,检测到 ROCm 环境(它检查rocminfo命令)后,先升级 pip 再按 ROCm 依赖 安装——该文件锁定了torch==2.7.1+rocm6.3和tensorflow-rocm,比 CUDA 版体积大,所以老版本 pip 装不动。怎么算成功:结尾打印Setup finished! Run ./gui.sh to start.。装 Python 依赖前注意选对版本,细节可查 pip 安装文档 和 uv 安装文档。
启动验证
./gui.sh --use-rocm --listen 127.0.0.1 --server_port 7860 --inbrowser浏览器会打开 kohya_ss 界面,左上角显示项目名和版本。远程 SSH 环境下要加--headless,否则文件选择框会卡住进程。也可以用 uv 方式启动:./gui-uv.sh。
第一次训练
数据集就是"图片 + 同名 txt"。每张图旁放一个同名的.txt,写一句画面描述,作用像给照片贴标签,告诉模型图里有什么。支持.png、.jpg、.jpeg、.webp、.bmp。目录结构参考 test/img/ 和数据集目录结构说明。
图里的.txt内容是a painting of a steam punk skull with a gas mask, by darius kawasaki,这就是配套标注。
数据准备好后进界面 LoRA 页签:选源模型,数据集路径指向图片目录,训练参数可以先用 LoRA 预设 里的一份起步。怎么算成功:输出目录里出现.safetensors文件,且训练过程中生成的示例图越来越像你给的照片,而不是越来越糊。
LoRA 和 DreamBooth 怎么选
中文训练文档 里列了四种训练方式,对应不同脚本,差异见下表。显存一栏是相对关系,具体数值随模型和分辨率变化。
| 训练方式 | 对应脚本 | 适用场景 | 显存消耗(相对) |
|---|---|---|---|
| LoRA | train_network.py | 学一个角色、画风,产物是小插件文件,可挂到任何兼容模型上 | 最低 |
| DreamBooth | train_db.py | 把目标学进底模本身,不产出插件 | 较高,训练整个网络 |
| 全模型微调 | fine_tune.py | 数据量大、想整体改变模型风格 | 最高 |
| SDXL 底模 | 以上均可换 SDXL 模型 | 出图分辨率和细节更高 | 比 SD1.5 对应方式高一档 |
第一次训练建议直接选 LoRA:数据集小、跑得动、失败成本最低。想省参数调优的时间,LoRA 预设 和微调预设 里都有现成 JSON。
排障速查:按现象查表
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
| pip 装依赖时报冲突或中断 | Python 不在 3.10/3.11 范围,或 pip 过老装不动大轮子 | 核对python3 --version;删除 venv 重跑./setup.sh --use-rocm,脚本会自动升级 pip |
onnxruntime-rocm安装失败 | 该包没有 Python 3.11 的构建(依赖文件里有注释) | 换到 Python 3.10 再装 |
| 训练跑在 CPU 上,GPU 无占用 | ROCm 驱动未装好,或启动时没加--use-rocm | 先跑rocm-smi确认识别到卡,再用--use-rocm参数启动 GUI |
| AMD 显存不足,报 OOM 或 HSA 错误 | 分辨率、batch 开太大 | 打开梯度检查点(GUI 高级选项默认开启),调低训练分辨率和 batch size,用 fp16/bf16 混合精度;Accelerate 配置里还有 fp8 选项可进一步压显存 |
| 启动 GUI 提示"Please run setup.sh first" | venv 不存在,说明没跑过安装脚本 | 先执行./setup.sh --use-rocm |
资源索引
- 中文训练说明(数据准备、各方式选项):docs/train_README-zh.md
- 数据集目录结构:docs/image_folder_structure.md
- 安装文档:pip 方式、uv 方式
- ROCm 依赖清单:requirements_linux_rocm.txt
- 预设配置:LoRA 预设、微调预设
- 训练脚本示例:examples/
- 示例数据集:test/img/
- 界面源码(想改默认参数时看这里):kohya_gui/
一个低门槛的起步
先用仓库自带的 test/img/ 数据(8 张图加标注)配一份 SD1.5 的 LoRA 预设跑通全流程,确认界面、GPU、显存都正常,再换自己的数据集。跑通这一次,剩下的都是参数调整。
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考