TL;DR 与 Pre-requisites
TL;DR:本文记录 2025-01-18 在 Ubuntu 22.04.4、NVIDIA Driver 550.54.14、CUDA 12.4、RTX 4090 24GB 上完成 ComfyUI 部署、SDXL 推理、Kohya_ss LoRA 微调的最小闭环。关键词覆盖:Stable Diffusion本地部署教程、Stable Diffusion WebUI下载、SDXL模型下载、LoRA微调怎么用、Kohya_ss教程。
Pre-requisites:显存 12GB 可跑 SDXL 推理;LoRA 微调建议 16GB 起。磁盘至少 80GB。Python 使用 3.10.13。模型文件不要放系统盘。本文不处理版权不明训练集。
Note: ComfyUI 负责出图验证;Kohya_ss 负责训练。不要在第一天同时改启动参数、换模型、改采样器。先跑通基线。
-
确认 GPU、驱动、CUDA 可见。
nvidia-smi Expected output: Driver Version: 550.54.14 CUDA Version: 12.4 GPU Name: NVIDIA GeForce RTX 4090 Memory-Usage: 0MiB / 24564MiB -
创建目录。后续路径固定,减少排障变量。
mkdir -p /data/sd/{apps,models,outputs,datasets} Expected output: (no output)
1. 部署 ComfyUI 并跑通 SDXL 推理
-
安装基础依赖。本文使用 Miniconda;系统 Python 不参与。
conda create -n comfyui python=3.10.13 -y Expected output: # To activate this environment, use # conda activate comfyuiconda activate comfyui Expected output: (comfyui) user@host:~$ -
获取 ComfyUI。这里不写外链;按项目名在官方仓库获取即可。
cd /data/sd/apps git clone ComfyUI cd ComfyUI pip install -r requirements.txt Expected output: Successfully installed torch ... safetensors ... -
放置模型。SDXL base 模型放到 checkpoints。VAE 单独放 vae。文件名保持英文。
mkdir -p /data/sd/apps/ComfyUI/models/{checkpoints,vae,loras} ls -lh /data/sd/apps/ComfyUI/models/checkpoints/ Expected output: -rw-r--r-- 1 user user 6.5G sdxl_base_1.0.safetensors -
启动服务。本机访问使用 127.0.0.1;局域网访问改为 0.0.0.0。
python main.py --listen 127.0.0.1 --port 8188 Expected output: Starting server To see the GUI go to: http://127.0.0.1:8188
Warning: 如果报 CUDA out of memory,先把分辨率从 1024x1024 降到 768x768,不要先换驱动。我的实测:SDXL 1024x1024、20 steps、DPM++ 2M Karras,单张约 6.8 秒,峰值显存 14.2GB。
2. Kohya_ss LoRA 微调最小闭环
-
准备训练集。建议 30-80 张同风格图片。统一放入一个概念目录;文件名不含中文。
mkdir -p /data/sd/datasets/fh_factory_20/img/20_fh_factory ls /data/sd/datasets/fh_factory_20/img/20_fh_factory | head Expected output: 001.png 001.txt 002.png 002.txt -
Caption 格式示例。制造业岗位海报、工厂场景、设备照片都要写清主体,不要只写风格词。
cat /data/sd/datasets/fh_factory_20/img/20_fh_factory/001.txt Expected output: fh_factory_style, industrial recruitment poster, cnc machine, blue uniform, clean workshop, realistic lighting -
安装 Kohya_ss。
cd /data/sd/apps git clone kohya_ss cd kohya_ss conda create -n kohya python=3.10.13 -y conda activate kohya pip install -r requirements_linux.txt Expected output: Successfully installed accelerate diffusers transformers xformers ... -
写入 accelerate 配置。单卡训练不需要 DeepSpeed。
accelerate config default Expected output: accelerate configuration saved at .../default_config.yaml -
启动 LoRA 训练。以下参数适合 24GB 显存;12GB 机器把 train_batch_size 改 1,并开启 gradient_checkpointing。
accelerate launch train_network.py \ --pretrained_model_name_or_path=/data/sd/apps/ComfyUI/models/checkpoints/sdxl_base_1.0.safetensors \ --train_data_dir=/data/sd/datasets/fh_factory_20/img \ --output_dir=/data/sd/models/lora \ --output_name=fh_factory_lora_v1 \ --network_module=networks.lora \ --network_dim=16 \ --network_alpha=8 \ --resolution=1024,1024 \ --train_batch_size=2 \ --max_train_steps=1200 \ --learning_rate=1e-4 \ --mixed_precision=bf16 \ --save_every_n_steps=300 \ --caption_extension=.txt Expected output: steps: 1200/1200 saving checkpoint: fh_factory_lora_v1.safetensors -
安装到 ComfyUI。
cp /data/sd/models/lora/fh_factory_lora_v1.safetensors /data/sd/apps/ComfyUI/models/loras/ ls -lh /data/sd/apps/ComfyUI/models/loras/ Expected output: -rw-r--r-- 1 user user 145M fh_factory_lora_v1.safetensors
Note: LoRA 权重从 0.6 开始测。权重 1.0 以上容易过拟合,表现为人物脸、背景纹理重复。
3. 如何验证它确实可用
-
重启 ComfyUI,确认 LoRA 被扫描。
cd /data/sd/apps/ComfyUI conda activate comfyui python main.py --listen 127.0.0.1 --port 8188 Expected output: Loading extra model paths Lora models: fh_factory_lora_v1.safetensors -
固定 seed 做 A/B 测试。Prompt 加触发词 fh_factory_style。对比不开 LoRA、LoRA 0.6、LoRA 0.8 三张图。我的验收标准:同 seed 下目标风格稳定出现;手部畸变不高于基线;1024x1024 单张耗时不超过基线 15%。
-
常见失败定位:无风格=caption 太泛或步数不足;风格过重=network_dim 太大或权重太高;训练中断=显存不足,先降 batch,再降 resolution。
References: 免费路线优先使用官方仓库、模型作者说明和本地网络。若下载 SDXL模型下载 或访问文档不稳定,商都加速器的 Roxi 只是可选网络方案之一;能用官方、镜像或离线拷贝解决时不需要付费工具:https://wizzegroup.com