如何用 AMD 显卡训练 AI 绘画模型:kohya_ss 与 ROCm 完整实战指南
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
很多人以为 AMD 显卡只能打游戏,跑 AI 训练是 NVIDIA 的专属领地。其实这套组合拳已经打通了:kohya_ss是一个开源的 Stable Diffusion 训练工具(带图形界面),而ROCm是 AMD 为自家 GPU 打造的计算软件栈(可以理解为 AMD 版的 CUDA)。两者配合,你就能用自己的 RX 系列显卡,低成本地训练 LoRA、微调模型,让 Stable Diffusion 学会你想要的画风或角色。
快速上手:从装驱动到打开界面
走完这一节,你就能在自己机器上打开一个可训练 Stable Diffusion 的图形界面,离跑通第一次训练只差一张数据集。
先确认你的硬件底子:一块 RX 6000/7000 系列的显卡(16GB 显存更从容)、Ubuntu 22.04、32GB 内存。
第一步:装好 ROCm 驱动只需三步。装好驱动后,你的显卡才对 Python 生态"可见":
sudo apt update sudo apt install rocm-hip-sdk sudo usermod -a -G video $USER # 把当前用户加入 video 组,改完注销重登生效装完后运行rocminfo,能打印出你的 GPU 型号,就说明驱动 OK 了。
第二步:拉取代码。kohya_ss 提供了 ROCm 专用的依赖清单 requirements_linux_rocm.txt,里面锁定的是torch==2.7.1+rocm6.3这类 AMD 专属编译包,普通pip install torch装到的 CUDA 版在 AMD 卡上是跑不起来的。
git clone --recursive https://gitcode.com/GitHub_Trending/ko/kohya_ss cd kohya_ss--recursive别漏,它负责拉取训练脚本等子模块。
第三步:一条命令装环境 + 启动界面。setup.sh脚本会自动检测 ROCm,如果装过驱动(能发现rocminfo)就直接走 ROCm 依赖,你也可以显式指定:
./setup.sh --use-rocm # 按 AMD GPU 安装依赖 ./gui.sh # 启动训练图形界面界面起来后,浏览器里就是一个填参数、点按钮的训练控制台,后面所有调优都在里面完成。
原理拆解: kohya_ss 是怎么帮你省事的
读完这一节,你会明白这个工具里那些"看不见的旋钮"各自在管什么,调参时不再靠猜。
一句话理解 LoRA:它不是重训整个大模型,而是给模型"贴一层薄薄的补丁",用 1% 左右的参数量教会模型一个新概念,省卡又省时。这也是为什么它成了 AMD 卡上的主力玩法。
GUI 只是翻译官,真正的活儿是 kohya_gui/ 里一堆模块生成的命令行指令。比如 kohya_gui/lora_gui.py 把你点选的维度、学习率翻译成底层训练脚本能懂的参数——所以你不用背命令,填表就行。
显存的两个生活化旋钮(对应 config example.toml 里的设置):
- 缓存潜变量(
cache_latents = true):就像提前把菜洗好切好放冰箱,训练时不用每次重新读图,显存换时间。 - 梯度检查点(
gradient_checkpointing):好比记账时不抄全账本、需要时重算一遍——多用一点计算,换回一大块显存,是 AMD 卡上防爆显存的常客。
精度与优化器:mixed_precision = "fp16"让模型用半精度跑,显存直接砍半;optimizer = "AdamW8bit"再把优化器状态压到 8 位,进一步给显存减负。AMD 卡上不推荐 xformers,开启mem_eff_attn = true(内存高效注意力)即可。

上面这张来自仓库自带的测试数据集 test/img/,配套的 .txt 标注文件就是训练时的"教材注释"
实战调优:跑通第一个 LoRA 再逐步提速
这一节是一条完整路径:先跑通,再提速。跟着走,你能得到一个风格化的 LoRA 权重文件。
准备数据:按"图片 + 同名 .txt 标注"组织成文件夹,比如dataset/concept1/下放 20-50 张图。懒得手写标注?仓库提供了 BLIP 自动标注入口(见 kohya_gui/blip_caption_gui.py),批量生成描述文件,省掉手工活。
填参数并开训:在 LoRA 选项卡里,新手记住这几个默认值就够起步——network_dim=32、network_alpha=16、学习率1e-4、batch size 按显存定(16GB 卡建议 2-4 起步)。点开始,界面会把参数存进配置文件并自动执行训练。
这是 test/masked_loss/ 里的掩码示例:白色区域告诉模型"重点学这里",属于进阶玩法
跑起来之后按这个顺序提速:
- 爆显存→ 先开梯度检查点,再开潜变量缓存,还不够就把 batch size 降到 1,同时把
gradient_accumulation_steps调到 2-4 模拟大批量; - 训练偏慢→ 确认 fp16 已开(AMD 卡首选 fp16,部分 7000 系卡可试 bf16),优化器换成 AdamW8bit;
- 效果不稳→ 用分阶段学习率:前 10% 步数用小学习率(如
lr_warmup预热),主体按 1e-4 跑,末段靠 cosine 调度自然衰减。
所有训练过程都能通过 TensorBoard 观察(配置里log_with填tensorboard),loss 曲线平稳下降、采样图风格渐显,就说明方向对了。
避坑与进阶:多卡、容器化和后续方向
最后一节帮你绕开常见坑,并指好进阶路线。
高频问题速查:
| 现象 | 大概率原因 | 处理办法 |
|---|---|---|
torch.cuda.is_available()返回 False | ROCm 驱动没装好或没注销重登 | 跑rocminfo检查,确认用户已在 video 组 |
| 训练中爆显存 | 单次计算量超过容量 | 按"检查点 → 缓存 → 降 batch → 降分辨率"顺序降级 |
| 训练特别慢 | 精度/优化器没调 | 开 fp16 + AdamW8bit,别期待 xformers |
| 界面起不来 | 没先跑 setup 或 venv 没激活 | 先./setup.sh --use-rocm,再看 docs/Installation/ 各平台说明 |
双卡及以上用户:AMD 上指定显卡用HIP_VISIBLE_DEVICES=0,1环境变量;kohya_ss 支持通过 accelerate 启动多进程,在 kohya_gui/class_accelerate_launch.py 对应的 Accelerate 选项卡里填num_processes和 GPU ID 即可。单卡用户请忽略此节,别提前给自己加戏。
服务器或团队环境:直接看 Docker 方案(docs/installation_docker.md),在容器里预装 ROCm 镜像 +requirements_linux_rocm.txt,一条命令复现环境,省去本机折腾。
往后看:ROCm 生态仍在快速迭代,FP8 低精度训练、多节点扩展都是值得跟进的方向;仓库的 docs/ 与 presets/ 里沉淀了大量社区调优配方,卡住时先翻这两个目录,大概率有人踩过同样的坑。
到这里,你的 AMD 显卡已经从"只能打游戏"升级成"能训模型的算力"了。下一步建议:拿仓库里的 examples/ 脚本对照一遍命令行参数,把 GUI 里每个按钮背后的真实命令看个明白——到那时,调参就不再是玄学。
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考