赞
踩
Linux部署StableDiffusion(Ubuntu18.04)
需要科学上网。。。
StableDiffusion最低支持的python版本是3.10.6,所以虚拟环境下的python版本应大于等于3.10.6。这里我使用的是3.11.2版本的python。
conda create -n SD python=3.11.2
进入虚拟环境
conda activate SD
切换进虚拟环境下的目录
cd xxxxxxxxxx
2张RTX 2070,NVIDIA驱动版本为525.60.13,CUDA版本为12.2(CUDA版本>=12.1 不然报错 难顶)。
nvidia-smi
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd进StableDiffusion目录
cd xxxx
运行项目
python launch.py
or
./webui.sh
自动下载安装torch,torchvision,clip,requirements等依赖文件,如果没有科学上网,很大概率由于网络原因出现报错,可以多试几次,随缘成功。
报错一
上述依赖安装成功后,会自动启动StableDiffusion,但是由于没有手动部署模型,会报错,这里需要自己下载模型。
报错二
NansException: A tensor with all NaNs was produced in Unet. This could be either because there’s not enough precision to represent the picture, or because your video card does not support half type. Try setting the “Upcast cross attention layer to float32” option in Settings > Stable Diffusion or using the --no-half commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check
这个错误提示意味着在 Unet 中生成了全为 NaN(Not a Number,非数值)的张量。这可能是因为图像表示精度不足,或者你的显卡不支持 half 类型。要解决这个问题,你可以尝试在设置中将 “Upcast cross attention layer to float32” 选项设置为 float32,或者在命令行中使用 --no-half 参数。另外,你也可以通过使用 --disable-nan-check 参数来禁用这个检查。
解决办法:打开stable-diffusion-webui的根目录,然后打开launch.py,修改如下: 来源 stable-diffusion-webui出现NansException: A tensor with all NaNs was produced in Unet
添加 import sys,sys.argv.append(“–no-half”)如下两行代码
def main(): import sys #添加这行 sys.argv.append("--no-half") # 添加这行 if args.dump_sysinfo: filename = launch_utils.dump_sysinfo() print(f"Sysinfo saved as {filename}. Exiting...") exit(0) launch_utils.startup_timer.record("initial startup") with launch_utils.startup_timer.subcategory("prepare environment"): if not args.skip_prepare_environment: prepare_environment() if args.test_server: configure_for_tests() start() if __name__ == "__main__": main()
百分之90的问题都是版本太老(cuda,python,pytorch),网络不好原因和缺相关库导致的
这里我推荐ChilloutMix模型,可以生成出高质量且真实的亚洲人物图片,审美非常符合亚洲印象。
首先cd进stable-diffusion-webui/models/Stable-diffusion目录
cd stable-diffusion-webui/models/Stable-diffusion
下载模型
wget -O chilloutmix_NiPrunedFp32Fix.safetensors https://civitai.com/api/download/models/11745
本人这里因网络报错死活下载不了,直接科学上网去网站下了。 模型下载链接
报错
在使用ChilloutMix模型or其他模型(maybe)生成图片时这里会有一个报错
OSError: Can’t load tokenizer for ‘openai/clip-vit-large-patch14’. If you were trying to load it from ‘https://huggingface.co/models’, make sure you don’t have a local directory with the same name. Otherwise, make sure ‘openai/clip-vit-large-patch14’ is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.
Stable diffusion model failed to load
解决方法:(stable-diffusion-webui报OSError: Can‘t load tokenizer for ‘openai/clip-vit-large-patch14‘的正确解决方法)
在 stable-diffusion-webui根目录下的stable-diffusion-webui文件夹下创建openai文件夹,然后在openai文件夹下再创一个clip-vit-large-patch14文件夹(注意目录级别)。
在huggingface网站上下载以下13个文件。
将下载的文件全部拖进/stable-diffusion-webui/openai/clip-vit-large-patch14/目录下,如下图所示。
来源(Stable Diffusion XL LoRA 训练webui Linux服务器部署(保姆级教程))
在/anaconda3/venv/lib/python3.10/site-packages/gradio/文件夹下,找到networking.py,在28行左右,把默认IP改成服务器的IP
LOCALHOST_NAME = os.getenv("GRADIO_SERVER_NAME", "127.0.0.1")
改成
LOCALHOST_NAME = os.getenv("GRADIO_SERVER_NAME", "YOUR IP")
在121行左右也是同样的修改:
server_name = server_name or LOCALHOST_NAME
改成
server_name = "YOUR IP"
插件安装地址(https://gitcode.net/ranting8323/sd-webui-controlnet.git)
点击install后,重启StableDiffusion即可
下载模型 地址【科学上网】
总共有 14 个基础模型,依次下载模型名为「.pth」的文件
下载好后,放进models\ControlNet目录下。
[训练好之后上传到Ubuntu](参考来源B站秋葉aaaki)
建议在windows端使用B站秋葉aaaki大神的Lora训练器来训练Lora模型。
下载地址
我下的是lora-scripts-v1.7.3版本的。
根据自己需要选择对应的训练设置,默认参数如下:
pretrained_model_name_or_path = "./sd-models/model.safetensors"//底模文件路径 train_data_dir = "./train/aki" //训练数据集路径,必须是64的倍数 resolution = "512,512" //分辨率大小 enable_bucket = true //启用 arb 桶以允许非固定宽高比的图片 min_bucket_reso = 256 //arb 桶最小分辨率 max_bucket_reso = 1_024 //arb 桶最大分辨率 output_name = "aki" //默认输出模型名称 output_dir = "./output" //默认输出目录,在安装Lora训练器的子目录下 save_model_as = "safetensors"//safetensors(推荐),ckpt,pt save_every_n_epochs = 2 //每n轮保存一次模型 max_train_epochs = 10 //10-20个训练周期 train_batch_size = 1 //显存8G及以下填1 network_train_unet_only = false //默认false network_train_text_encoder_only = false //默认false learning_rate = 0.0001 //总学习率,低点也可以 unet_lr = 0.0001 text_encoder_lr = 0.00001 lr_scheduler = "cosine_with_restarts" optimizer_type = "AdamW8bit" //优化器设置 lr_scheduler_num_cycles = 1 network_module = "networks.lora" //训练网络模块 network_dim = 32 //32or64 太大会增加训练难度 太小效果不好 network_alpha = 32 logging_dir = "./logs" caption_extension = ".txt" shuffle_caption = true keep_tokens = 0 max_token_length = 255 seed = 1_337 prior_loss_weight = 1 clip_skip = 2 // 玄学一般用2 mixed_precision = "fp16" save_precision = "fp16" xformers = true cache_latents = true persistent_data_loader_workers = true lr_warmup_steps = 0
点击开始训练即可
训练ing
训练结束后在输出目录下可以看到训练出来的Lora模型。将训练好的Lora模型拖入Ubuntu Stable Diffusion 对应目录下的Lora文件夹。
启动Stable Diffusion,就可以看见训练好的Lora模型了。
鉴于显卡大多存储于Linux服务器上,如果本地显卡显存小于<=8G,建议在Linux服务器上训练(比较麻烦,需要手动部署)
训练器来源
为了避免冲突,建议再用conda创建一个虚拟环境
python:3.10.9(官方推荐) 不能高于3.11.0,所以就用3.10.9吧。
conda create -n HOKYA python=3.10.9
conda activate HOKYA
在新建目录下通过运行以下命令克隆存储库,如果不加–recursive 后续会报错。
git clone --recursive https://github.com/bmaltais/kohya_ss.git
cd进子目录
cd kohya_ss
如果遇到权限问题,请setup.sh运行以下命令使脚本可执行
chmod +x ./setup.sh
通过执行以下命令来运行安装脚本
./setup.sh
如果出现下图这个提示
执行
sudo apt update -y && sudo apt install -y python3-tk
执行
./setup.sh
创建虚拟环境中
出现报错
因为没有1.17.1版本的onnxruntime-gp,所以就安装1.18.1版本的了。
pip install --upgrade onnxruntime-gpu==1.18.1
执行
./setup.sh
环境创建成功
执行
./gui.sh
报错
ERROR Could not load torch: cuDNN version incompatibility: PyTorch was compiled against (8, 7, 0) but found runtime version (8, 2, 0). PyTorch
already comes bundled with cuDNN. One option to resolving this error is to ensure PyTorch can find the bundled cuDNN.Looks like your
LD_LIBRARY_PATH contains incompatible version of cudnnPlease either remove it from the path or install cudnn (8, 7, 0)
这个错误提示意味着你安装的 PyTorch 版本与当前系统中的 cuDNN 版本不兼容。具体来说,PyTorch 编译时使用的 cuDNN 版本是 (8, 7, 0),但在你的系统中发现的 cuDNN 运行时版本是 (8, 2, 0)。这种不匹配会导致运行时错误。
解决方法
不多赘述
参考 (保姆级图文详解)ubuntu下深度学习cuda+cudnn+anaconda3环境配置(看这一篇就够了)
下载地址
点击Filters,勾选LoRA即可。
./webui.sh --api --no-half-vae --no-gradio-queue
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。