Stable Diffusion是AIGC图像生成领域应用最广的开源框架。通过本地部署WebUI并训练LoRA,可以在不受在线工具配额限制的情况下稳定产出图像,模型权重、提示词与数据集全部掌握在自己手里。本文按环境准备、模型加载、LoRA训练、批量出图的顺序给出可执行命令,命令基于Ubuntu 22.04与Python 3.10。
Stable Diffusion运行环境与显存要求
Stable Diffusion的主要硬件约束是显存。RTX 3060 12GB可以流畅运行SD 1.5出图,RTX 4090 24GB可支撑SDXL与高分辨率放大。无独立显卡的机器用CPU推理一张512×512图需要数分钟,只适合功能验证。部署前先确认显卡驱动与PyTorch的CUDA可用性:
nvidia-smi
python -c "import torch; print(torch.cuda.is_available())"
WebUI安装与启动参数选择
社区主流的AUTOMATIC1111项目一条命令即可拉起完整界面,显存偏小时配合–medvram或–lowvram启动。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
./webui.sh --no-check --skip-version-check --update-deps
启动成功后访问 http://127.0.0.1:7860 进入控制台,界面支持文生图、图生图与多模型切换。
模型文件与VAE的正确放置
模型以safetensors格式放入 models/Stable-diffusion/ 目录,VAE文件放入 models/VAE/。SD 1.5适合通用素材,SDXL在细节与文字生成上更强,但推理显存需求更高。模型下载后可手动放入对应目录,无需依赖在线模型商店。
mkdir -p models/Stable-diffusion
wget -P models/Stable-diffusion/ \
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors
LoRA训练数据集准备与标注规范
LoRA属于低秩适配,训练固定角色或画风通常20到30张高质量图片即可,数据集务必使用有授权或自有的素材。图片统一缩放到512×512或512×768,避免横竖混排导致画面畸变;每张图配同名txt文件作为标签。
dataset/char/
├── 001.png
├── 001.txt
├── 002.png
└── 002.txt
标注先写触发词再写特征,例如:
sdf character, brown hair, white shirt, standing, front view
kohya脚本训练LoRA
社区常用kohya_ss对应的sd-scripts进行训练,核心参数包含学习率、网络维数与轮数:
accelerate launch sd-scripts/train_network.py \
--network_module networks.lora \
--pretrained_model_name_or_path v1-5-pruned-emaonly.safetensors \
--train_data_dir dataset/char \
--output_dir output \
--output_name char_lora \
--learning_rate 1e-4 --network_dim 32 \
--max_train_epochs 10 --save_every_n_epochs 2
训练产出的safetensors权重文件放入WebUI的 models/Lora/ 目录,出图时通过提示词引用。
提示词工程与出图参数配置
调用LoRA的提示词写法为 <lora:char_lora:0.8>,0.8为影响权重,数值过大会出现画面失真。常规出图参数参考:
正向提示词: char_lora, masterpiece, best quality
负面提示词: lowres, bad anatomy, extra text, watermark
采样器: Euler a 步数: 25 CFG: 7 尺寸: 512x768
批量出图与API集成
WebUI内置HTTP接口,可直接用Python脚本批量生成,适合商品图、宣发素材等生产场景。
import requests, base64
payload = {
"prompt": "char_lora, masterpiece",
"negative_prompt": "lowres, watermark",
"steps": 25, "cfg_scale": 7,
"width": 512, "height": 768,
"batch_size": 4
}
resp = requests.post("http://127.0.0.1:7860/sdapi/v1/txt2img", json=payload).json()
for i, img in enumerate(resp["images"]):
open(f"gen_{i}.png", "wb").write(base64.b64decode(img))
固定种子号可以复现同一构图,便于批量替换风格。整个链路跑通后,配合参数模板就能作为团队AIGC素材生产的稳定基线。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/stablediffusionwebui-bu-shu-yu-lora-xun-lian-shi-zhan-aigc/