Stable-Diffusion的WebUI部署

守听  金牌会员 | 2024-6-10 20:05:10 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 552|帖子 552|积分 1656

1、环境预备及安装

1.1、linux环境

  1. # 首先,已经预先安装好了anaconda,在这里新建一个环境
  2. conda create -n sdwebui python=3.10
  3. # 安装完毕后,激活该环境
  4. conda activate sdwebui
  5. # 安装
  6. # 下载stable-diffusion-webui代码
  7. git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
  8. cd stable-diffusion-webui
  9. bash webui.sh -f
复制代码
实行完之后,脚本会主动创建python环境、安装各种包、模型等。
2、利用

2.1、运行

安装完成前期的环境预备之后,之后每次运行只必要:
  1. conda activate sdwebui
  2. cd stable-diffusion-webui
  3. bash webui.sh -f
  4. # 或者按照如下方式,将sd放在后台执行
  5. nohup bash webui.sh -f >> nohup.log 2>&1 &
复制代码
该种方式会将进程运行在本地,可以通过ip+port的方式直接在网页上访问。 也可以通过如下方式举行简单的改造:
  1. # 编辑webui-user.sh脚本
  2. vim webui-user.sh
  3. # 在终端中输入“i”进入编辑模式,移动到 COMMANDLINE_ARGS,并将其修改为:
  4. export COMMANDLINE_ARGS="--listen --share --enable-insecure-extension-access"
复制代码
上述命令寄义如下:
--listen:将本地毗连从127.0.0.1修改为0.0.0.0,即可通过服务器 IP:7861举行访问
--share:生成可供外网访问 Gradio 网址。
--enable-insecure-extension-access:利用–listen时,webui出于安全思量会克制用户在UI页面添加插件,添加该参数可允许用户添加插件。
--mdevram或 --lowvarm:低沉显存消耗
PS:windows下的同理,在webui-user.bat中修改即可
终极效果如下:

2.2、添加模型

2.2.1、各种常用模型

初步安装完成后,打开webui,可以看到左上角自带的模型。如下图示:

模型的分类大概有如下几种:

  • CheckPoint
    Checkpoint 是 Stable Diffusion 中最紧张的模型,也是主模型,几乎所有的操作都要依托于主模型举行。所有的主模型都是基于 Stable Diffusion 模型训练而来.
    主模型后缀一般为 .ckpt 或者 .safetensors,并且体积比较庞大,一般在 2G - 7G 之间。放置在 webUI 目次下的 `models/Stable-diffusion` 目次下。
  • LoRA/LyCORIS
    LoRA 是除了主模型外最常用的模型。LoRA 和 LyCORIS 都属于微调模型,一般用于控制画风、控制生成的脚色、控制脚色的姿势等等。
    LoRA 和 LyCORIS 的后缀均为 .safetensors,体积较主模型要小得多,一般在 4M - 300M 之间。一般利用 LoRA 模型较多,而 LyCORIS 与 LoRA 相比可调治范围更大,但是必要额外的扩展才可利用。放置在 `models/LoRA` 目次下。
  • Textual Inversion
    Textual Inversion 是文本编码器模型,用于改变文字向量。可以将其理解为一组 Prompt。
    Textual Inversion 后缀为 .pt 或者 .safetensors,体积非常小,一般只有几 kb。放置在 `embeddings` 目次下。
  • Hypernetworks
    Hypernetworks 模型用于调解模型神经网络权重,举行风格的微调。
    Hypernetworks 的后缀为 .pt 或者 .safetensors,体积一般在 20M - 200M 之间。放置在 `models/hypernetworks` 目次下。
  • ControlNet
    ControlNet 是一个及其强大的控制模型,它可以做到画面控制、动作控制、色深控制、色彩控制等等。利用时必要安装相应的扩展才可。
    ControlNet 类模型的后缀为 .safetensors。放置在 `models/ControlNet` 目次下。
    利用时我们必要先去 Extensions 页面搜刮 ControlNet 扩展,然后 Install 并 Reload UI。然后便可以在 txt2img 和 img2img 菜单下找到。
  • VAE
    VAE全称是变分主动编码器 (Variational Auto-Encoder),是呆板学习中的一种人工神经网络结构。VAE在sd模型中负责微调,类似我们熟知的滤镜,调解生成图片的饱和度。
    默认的sd-webui页面并没有VAE的设置,必要进入:Settings->User interface->Quick settings list,在输入框中添加sd_vae。然后依次点击Apply settings和Reload UI。随后就会在webui中看到对应地区。
下载好上述模型之后,可以在页面上直接通过标签进入选中,可以直接prompt利用:

2.3、问题

2.3.1、stable diffusion 安装tagger之后报错Attempt to free invalid pointer

报错信息:
  1. 20xx-xx-xx 10:35:12.003960: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
  2. 20xx-xx-xx 10:35:12.143798: I external/local_tsl/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.
  3. 20xx-xx-xx 10:35:12.762893: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
  4. 20xx-xx-xx 10:35:12.762960: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
  5. 20xx-xx-xx 10:35:12.888382: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
  6. src/tcmalloc.cc:283] Attempt to free invalid pointer 0x59c2527199d0
复制代码
办理:
参考:github.com/AUTOMATIC11…
①在centos7环境下,安装jemalloc
  1. yum install epel-release
  2. yum install jemalloc
复制代码
②添加到webui-user.sh
  1. export LD_PRELOAD="/usr/lib64/libjemalloc.so.1"
复制代码
3、关键词(提示词)誊写

3.1、利用示例

示例1: 提前下载Checkpoint模型:‘CheckpointLigneClair_120’
可以到p站上下载:civitai.com/
  1. masterpiece,1girl,solo,incredibly absurdres,hoodie,headphones, street,outdoors,rain,neon lights,  light smile, hood up, hands in pockets, looking away, from side,asymmetrical bangs, beautiful detailed eyes, eye shadow, huge clocks, glass strips, floating glass fragments, colorful refraction, beautiful detailed sky, dark intense shadows, cinematic lighting, overexposure, expressionless, blank stare, big top sleeves, frills, hair ornament, ribbon, bowtie, buttons, small breasts, pleated skirt, sharp focus, masterpiece, best quality, extremely detailed, colorful, hdr
  2. Sampler: DPM++ 2M Karras
  3. Negative prompt: EasyNegative
  4. CFG scale: 7
  5. Steps: 20
复制代码
效果如下:

3.2、Controlnet

3.2.1、Controlnet部署利用

1、插件安装:Extension->Install from URL->输入:jihulab.com/hanamizuki/… ->点击Install->安装完毕后,重启ui,可以看到controlnet:

2、controlnet模型安装
进入如下网址:huggingface.co/lllyasviel/… 下载所有pth文件,然后放置到:~/stable-diffusion-webui/extensions/sd-webui-controlnet/models 路径下(yaml文件已有,假如没有可以在url中重新下载)
3.2.2、Controlnet常见模型

汇总如下:
类别ControlNet模型功能边缘轮廓canny边缘检测,根据线稿生图边缘轮廓mlsd直线检测,适用于建筑设计边缘轮廓softedge软边缘检测,保存更多边缘细节边缘轮廓scribble涂鸦生图边缘轮廓lineart提取风雅线稿生图边缘轮廓lineart_anime提取动漫线稿深度结构depth深度检测,根据深度信息生图深度结构normalbae法线贴图,提取法线信息图片元素seg语义分割,差别颜色语义代表差别对象范例图片元素normalbae人物姿势检测,根据姿势生图图像处理inpaint图像扩展和修复图像处理shuffle风格迁移融合图像处理ip2p对图片举行指令式变更图像处理tile细节增强 3.2.3、Canny

Canny用于识别输入图像的边缘信息。分成两个部分,canny预处理器和canny模型:
起首canny预处理器从上传的图片中生成线稿;然后canny模型根据关键词来生成与上传图片雷同构图的画面。
(1)线稿生图
步骤如下:
起首将controlnet插件的enable打开
->假如显存不足(小于4G),还可以将Low VRAM打开
->假如是白底黑线的线稿,Preprocessor选择invert,假如是黑底白线的线稿,Preprocessor选择none
->Model选择canny
->Resize Mode选择Resize and Fill(不然比例会不对) 然后选择符合的sd model,输入prompt,我这里是: (masterpiece:1.2), (best quality), (ultra detailed), (8k, 4k, intricate), oil painting texture, 1girl, solo, black eyes, pink hair, lightly smile, upper body, blue shirts, simple background, lips, long hair, black hair 末了效果如下:
图上红框中选择的controlnet模型为control_v11p_sd15_canny,其寄义如下:
(2)以图生图
一般用来给图换色,和第一步差别的是,将Preprocessor选择canny,其他可以保持不变:

3.2.4、Reference

Reference 是官方最新推出的预处理器,共有三种:Reference_only、Reference_adain和Reference_adain+atten。它只有yaml设置文件,没有pth模型文件,可以根据上传的图像生成类似的变体。
利用reference_only的预处理器和0.5的Style Fidelity:
(相比之前,添加了angry标签)

3.2.5、Tile

Tile 模型的作用是可以忽略原图的细节,根据现有像素和提示词生成新的细节,如今主要作用是将严重模糊的图片放大并变得高清.
选择tile_resample的预处理器和control_v11f1e_sd15_tile的模型,结果如下:

3.2.6、T2I- Adapter

将一张图片的风格迁移到另一张图片上
3.3、Tag反推

根据图片,一键反推提示词,反推的关键词更精准,生成的图片效果也更靠近于原图
3.3.1、安装

两种安装方法:
1、extension->available->搜刮wd 4,点击install,安装完毕后,利用install页面的’Apply and restart UI’
实测利用之后会报错:
  1. 2024-01-03 14:59:08.369709: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
  2. 2024-01-03 14:59:08.369772: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
  3. 2024-01-03 14:59:08.370929: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
  4. src/tcmalloc.cc:284] Attempt to free invalid pointer 0xaa705c0
  5. webui.sh: line 256:  7687 Aborted                 (core dumped) "${python_cmd}" -u "${LAUNCH_SCRIPT}" "$@"
复制代码
两种办理方法:
① 解释掉这行代码(在Requirements文件中)
  1. %env LD_PRELOAD=libtcmalloc.so
复制代码
②利用jemalloc优化内存分配
  1. 1、在centos7.x中实行yum install epel-release
  2. yum install jemalloc
  3. 2、在webui-user.sh中添加export LD_PRELOAD="/usr/lib64/libjemalloc.so.1"
复制代码
2、第二种方法是直接下载
下载地址: github.com/toriato/sta… 之后重启ui,重启成功后即可在stable-diffusion中看到“Tag反推(Tagger)”
3.3.2、利用

选中Tagger标签,上传一张图片,点击interrogate image,即可生成图片的对应标签

写在末了

感兴趣的小同伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展远景广阔,随着人工智能技术的不停发展,AIGC技术也将不停提高。未来,AIGC技术将在游戏和盘算范畴得到更广泛的应用,使游戏和盘算系统具有更高效、更智能、更机动的特性。同时,AIGC技术也将与人工智能技术紧密联合,在更多的范畴得到广泛应用,对程序员来说影响至关紧张。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密联合,在更多的范畴得到广泛应用。


一、AIGC所有方向的学习路线
AIGC所有方向的技术点做的整理,形成各个范畴的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,包管本身学得较为全面。


二、AIGC必备工具
工具都帮大家整理好了,安装就可直接上手!

三、最新AIGC学习笔记
当我学到肯定基础,有本身的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。


四、AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有用果的方式,跟着视频中老师的思路,从基础到深入,照旧很容易入门的。

五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将本身的所学运用到现实当中去,这时候可以搞点实战案例来学习。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表