stable diffusion的从安装到使用

news2024/11/25 10:34:55

stable-diffusion,一个免费开源的文生图软件,文章主要讲怎么从源码开始安装,以及使用的方式

git地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui

本人电脑环境win10,软件pycharm,需要提前安装好python环境,推荐使用Anaconda3。公共号发送 “ 软件安装包 ”可以获得相关文件下载

安装

可以直接去github上下载压缩包,或者使用pycharm直接打开,这里我用的是pycharm

在这里插入图片描述

进入后pycharm后会自动创建环境,建议在当前项目下创建,然后等待依赖下载完成即可

除了下载源码外,也可以直接下载官网上搞好的安装包,

https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre

解压后首先双击执行update.bat,然后执行run.bat,等待下载完成即可

在这里插入图片描述

运行

所有依赖完成后,在terminal面板下执行webui-user.bat即可运行,当然后面不进入pycharm,直接在黑窗口执行命令也是可以的,执行完成后进入网页http://127.0.0.1:7860/就可以看到软件界面了

图画的生成需要对应模型,相关模型可以去https://www.liblib.art/网站上下载,下载下来后放入models/Stable-diffusion文件夹即可

在这里插入图片描述

然后页面点击刷新按钮,就可以选择相关模型

如果遇到异常可以根据下面异常内容进行解决

常见异常

1、AssertionError: Torch not compiled with CUDA enabled

CUDA和Torch版本不兼容,可以选择修改CUDA的或者Torch的版本

使用命令nvcc -V,查看CUDA版本

进入Terminal板块,卸载PyTorch

pip uninstall torch

进入https://pytorch.org/get-started/locally/官网,下载所需要的版本,这里注意需要先查询下当前电脑CUDA所对应的版本

在这里插入图片描述

如果是没有CUDA,则安装CUDA。

2、AssertionError: Couldn’t find Stable Diffusion in any of: [‘E:\pythonWordspace\open\stable-diffusion-webui\repositories/stable-diffusion-stability-ai’, ‘.’, ‘E:\pythonWordspace\open’]

没有repositories/stable-diffusion-stability-ai文件夹,启动webui-user.bat命令自动就会创建,这个错一般是在第一次直接启动webui.py时报的错

3、Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

这个错误信息是由于Torch无法使用GPU而导致的,修改webui-user.bat文件中参数即可

set COMMANDLINE_ARGS=--lowvram --precision full --no-half --skip-torch-cuda-test

4、torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB. GPU 0 has a total capacity of 6.00 GiB of which 0 bytes is free. Of the allocated memory 5.16 GiB is allocated by PyTorch, and 148.39 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)

这里主要是CUDA 超内存,我并没有解决到该BUG,可能因为本身电脑GPU比较小,这里只提供几种解决方案

1、控制台执行set PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True 【我当前环境win所以用set命令,Linux下用export】

2、修改batch_size大小

3、修改高级系统设置,性能中的虚拟内存大小

4、增加清除代码

import torch, gc

gc.collect()
torch.cuda.empty_cache()

5、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 correc

运行时它需要访问huggingface.co去下载一些模型需要的文件

界面以及字段说明

在这里插入图片描述

**Prompt,**正向提示词,用于描述图像中应该包含的元素或内容的指令

**Negative prompt,**用于描述在生成图像时应该避免或排除的元素、内容或特征

**Sampling method,**用于生成图像时所采用的抽样方法,决定了模型如何根据输入的文本描述来逐步生成图像

**Sampling steps, **采样步数,指模型从初始的随机噪声状态逐渐优化到最终生成清晰图像所需的迭代次数,每次迭代进行细微的调整和优化,生成更加清晰和逼真的图像,耗时也会增长

Hires.fix,用于提高成图质量。原理是以较低分辨率呈现图像,然后将其放大,最后在高分辨率下添加细节。这样,即使是在底模通常使用512512或768768的图片进行训练的情况下,也能显著提高成图质量。在显存足够的情况下,推荐尽可能开启此功能。

需要注意的是,Hires.fix会消耗大量的时间。需要根据情况选择。同时,Denoising strength(重绘强度)也需要合理设置,通常在0.30.5的范围内比较安全,如果想要赋予AI更多的发挥空间,可以设置为0.50.7。

关于Upscaler(放大算法)一般照片生成使用推荐:ESRGAN_4x, R-ESRGAN 4x+, SwinIR_4x 算法。
针对二次元相关图片推荐: R-ESRGAN 4x+ Anime6B

**CFG Scale,**用于控制文本提示对生成图像的影响程度,它决定了生成的图像与给定的文本提示之间的相关性。值可以从0到30进行调整。数值越大,生成的图像与文本提示的相关性越高,但可能会失真。相反,数值越小,相关性则越低,图像可能越偏离提示或输入图像,但质量可能更好。在实际应用中,将CFG Scale设置在7到11之间通常可以获得最佳的低噪效果。

然而,当CFG Scale的数值过高(例如高于20)时,生成效果可能会出现反向变化,导致图像质量变差,可能出现粗犷的线条或过度锐化的图像。因此,在使用CFG Scale时,需要根据实际需求进行适当调整,以获得满意的图像生成效果。

**Seed,**用于控制生成图片随机性的重要工具。具体来说,Seed参数决定了生成图片的外观,不同的Seed值会产生不同的随机性,从而导致生成的图片呈现出不同的特征和风格。通过调整Seed的数值,我们可以获得各种不同的效果和样式。

同时,Seed参数还确保了结果的可重现性。当使用相同的Seed来运行程序时,生成的图片将是完全一样的。这对于实验、复现和比较不同模型的性能非常重要。

Prompt提示词如何写

Prompt提示词简单点讲就是模型的指令,stable-diffusion根据指令生成图片

正向提示词和反向提示词,提示词要用英文书写,词之间用逗号隔开

提示词分多种不同类型【主要是一些例子,用的时候最好翻译成英文,可以用百度翻译或者有道词典】

内容提示词

人物及主体特征:例如服饰穿搭,发型发色,面部表情
场景特征:例如室内、室外
环境光照:例如白天黑夜,时段
画幅视角:例如距离,人物比例

画质提示词

画质以及具体分辨率:例如8k,unreal engine rendered
画风:例如插画风,二次元,写实

权重与负面提示词

括号加数字:(提示词:1.5)表示该提示词权重增强1.5倍
套括号:((提示词))每个圆括号*1.1倍,{{提示词}}大括号权重*1.4,[[]]方括号*0.9
混合:描述提示词1 / 描述提示词2 表示混合两种描述的词
迁移:[ 描述提示词1 / 描述提示词2 ] 先执行1,然后再执行2

常用参数

采样迭代步数默认20
采样方法:Euler a,Euler(适合插画风格),DPM 2M,2M Karras(速度快),SDE Karras(细节丰富)

编写提示词方式

1、用翻译软件翻译

2、使用些在线提示词工具,http://www.atoolbox.net/Tool.php?Id=1101

3、复制别人写好的提示词,然后修改

行2


常用参数

采样迭代步数默认20
采样方法:Euler a,Euler(适合插画风格),DPM 2M,2M Karras(速度快),SDE Karras(细节丰富)


编写提示词方式

1、用翻译软件翻译

2、使用些在线提示词工具,http://www.atoolbox.net/Tool.php?Id=1101

3、复制别人写好的提示词,然后修改

例如https://www.liblib.art/中作品灵感模块可以用于选择

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1580511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【话题:工作生活】2022年工作总结--疫情下的上海,疫情中的我。

现在是阳历2023年11月27日星期一,我再次开始撰写自己的年终工作总结。希望再过1、2个月,这份年终总结能够出炉,与大家相遇。 给自己定个小目标,年终的工作生活总结坚持写10年。我2017年毕业,之后就开始写每年的年终总结…

密码应用方案测评要点及测评过程

(1)背景 《GBT39786-2021 信息系统密码应用基本要求》中第1-4级密码应用基本要求均包括“应依据相关标准和密码应用需求,制定密码应用方案”。第1-4级密码应用基本要求对于“投入运行前进行密码应用安全性评估”的具体如下。 第一级&#xff…

微信小程序Skyline模式下瀑布长列表优化成虚拟列表,解决内存问题

微信小程序长列表,渲染的越多就会导致内存吃的越多。特别是长列表的图片组件和广告组件。 为了解决内存问题,所以看了很多人的资料,都不太符合通用的解决方式,很多需要固定子组件高度,但是瀑布流是无法固定的&#xf…

SpringBoot常用注解及其使用示例

Spring Boot是一个用于快速构建Java应用程序的框架,它简化了Spring应用程序的创建和部署过程。 Spring Boot提供了很多注解,用于简化开发过程,提高开发效率。本文将介绍几个Spring Boot常用注解的使用案例,包括Controller、Reques…

【Xilinx】FPGA中的HPI/O和HRI/O的说明 (hpio hrio)

Xilinx 一些系列FPGA IO Bank分为HP Bank和HR Bank,HP IO接口电压范围为1.2V~1.8V,可以实现高性能,HR IO接口电压范围为1.2V~3.3V。当HR Bank与2.5V或者3.3V外设互联时,需要考虑接口电平的兼容性。 含义 电平 HP接口为高速接口 …

实验模拟gfs 五大逻辑卷

目录 一 实验环境 二 4台服务端准备工作 1,66,77,88,99 四台机器加4块磁盘 2, scan 刷新磁盘供电接口 并查看 3,改主机名,方便后续操作 4,为加快访问速度 写hosts文件 做映射(55客户机也写&…

13-pyspark的共享变量用法总结

目录 前言广播变量广播变量的作用 广播变量的使用方式 累加器累加器的作用累加器的优缺点累加器的使用方式 PySpark实战笔记系列第四篇 10-用PySpark建立第一个Spark RDD(PySpark实战笔记系列第一篇)11-pyspark的RDD的变换与动作算子总结(PySpark实战笔记系列第二篇))12-pysp…

【AcWing】蓝桥杯集训每日一题Day16|哈希|FloodFill算法|字典序最小|映射|1402.星空之夜(C++)

1402.星空之夜 1402. 星空之夜 - AcWing题库难度:中等时/空限制:1s / 64MB总通过数:3415总尝试数:7434来源:usaco training 5.1算法标签Flood Fill哈希DFSBFS 题目内容 夜空深处,闪亮的星星以星群的形式出…

雅特力AT32引脚复用记录

用作USB的话,PA9不能再用作其他功能了 被复用了。这个关联信号是OTG_FS_VBUS。stm32是能这么复用的。

大型央国企“信创化”与数字化转型建设思路

一、央国企信创化与数字化转型时代背景 1、信创概念普及: 信创,即“信息技术应用创新”。是我国自主信息产业聚焦的核心,旨在通过对IT硬件、软件等各个环节的重构,基于我国自有IT底层架构和标准,形成自有开放生态&am…

阿里云OSS使用流程

准备工作 无论怎么样,你需要准备一个阿里云账号,点击:注册阿里云 输入相关信息,然后注册成功以后,点击 然后注册成功了,实名一下阿里云账号。打开实名入口,选择个人实名或者企业实名。 如果你…

Xinstall:专业的App下载量统计工具,让推广效果可衡量

在移动互联网时代,App的下载量是衡量一个应用受欢迎程度的重要指标。然而,很多开发者和广告主在推广App时,都面临着一个共同的问题:如何准确统计App的下载量?这不仅关系到推广效果的评估,还直接影响到广告R…

【Linux 学习】进程优先级和命令行参数!

1. 什么是优先级? 指定进程获取某种资源(CPU)的先后顺序; Linux 中优先级数字越小,优先级越高; 1.1 优先级和权限的区别? 权限 : 能不能做 优先级: 已经能了,但是获…

Linux初学(十七)防火墙

一、防火墙简介 1.1 防火墙的类别 安全产品 杀毒: 针对病毒,特征篡改系统中的文件杀毒软件针对处理病毒程序防火墙: 针对木马,特征系统窃取防火墙针对处理木马 防火墙分为两种 硬件防火墙软件防火墙 硬件防火墙 各个网络安全…

模型量化——NVIDIA——方案选择(PTQ、 partialPTQ、 QAT)

PTQ、 partialPTQ、 QAT 选择流程 PTQ、 partialPTQ、 QAT 咨询NVIDIA 官方后,他们的校正过程一致,支持的量化算子本质是一样的,那么如果你的算子不是如下几类,那么需要自己编写算子。参考TensorRT/tools/pytorch-quantization/py…

淘宝销量API商品详情页原数据APP接口测试㊣

淘宝/天猫获得淘宝app商品详情原数据 API 返回值说明 item_get_app-获得淘宝app商品详情原数据 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地…

码蹄集部分题目(第五弹;OJ赛2024年第10期)

🐋🐋🐋竹鼠通讯(钻石;分治思想;模板题:就算几何平面点对问题) 时间限制:3秒 占用内存:128M 🐟题目描述 在真空中,一块无限平坦光滑…

基于SSM+Jsp+Mysql的高校毕业设计管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

【三十六】【算法分析与设计】综合练习(3),39. 组合总和,784. 字母大小写全排列,526. 优美的排列

目录 39. 组合总和 对每一个位置进行枚举 枚举每一个数出现的次数 784. 字母大小写全排列 526. 优美的排列 结尾 39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不…

【信贷后台管理之(五)】

文章目录 目录结构一、面包屑组件封装二、退出登录接口联调三、申请列表的菜单路由3.1 路由创建,表格编写3.2 列表接口调用3.3 出生日期转变3.4 申请状态3.5 申请列表的操作3.5.1 编辑删除提交操作3.5.2 禁用状态3.5.3 操作接口3.5.4 搜索查询3.5.5 申请列表分页功能…