首页 > 其他分享 >万字长文,带你从0-1入门Stable Diffusion

万字长文,带你从0-1入门Stable Diffusion

时间:2024-07-27 14:28:15浏览次数:16  
标签:Diffusion ControlNet 模型 Stable 使用 生成 图像 字长 SD

一、本地部署 Stable Diffusion

前言

目前市面上比较权威,并能用于工作中的AI绘画软件其实就两款。一个叫Midjourney(简称MJ),另一个叫Stable-Diffusion(简称SD)。MJ需要付费使用,而SD开源免费,但是上手难度和学习成本略大,并且非常吃电脑配置(显卡、内存)。

和Midjourney相比,Stable Diffusion 最大的优势是开源,这意味着Stable Diffusion的潜力巨大、发展飞快。由于开源免费属性,SD 已经收获了大量活跃用户,开发者社群已经为此提供了大量免费高质量的外接预训练模型(fine-tune)和插件,并且在持续维护更新。在第三方插件和模型的加持下,SD拥有比Midjourney更加丰富的个性化功能,在经过使用者调教后可以生成更贴近需求的图片,甚至在 AI 视频特效、AI音乐生成等领域,Stable Diffusion 也占据了一席之地。

Stable Diffusion是一种潜在扩散模型(Latent Diffusion Model),能够从文本描述中生成详细的图像。它还可以用于图像修复、图像绘制、文本到图像和图像到图像等任务。简单地说,我们只要给出想要的图片的文字描述在提Stable Diffusion就能生成符合你要求的逼真的图像!

电脑配置

电脑配置最核心的关键点:看显卡、看内存、看硬盘、看CPU。其中最重要的是看显卡。N卡(英伟达Nvida独立显卡)首选,效率远超集显/AMD/Intel显卡和CPU渲染,最低10系起步,体验感佳用40系,显存最低4G,6G及格,上不封顶;内存最低8G,16G及格,上不封顶;硬盘可用空间最好有个500G朝上,固态最佳。

系统要求:支持 Win10/Win11/macOS(仅限Apple Silicon,Intel 版本的 Mac 无法调用 Radeon 显卡)和 Linux 系统,苹果版 SD 兼容的插件数量较少,功能性不及 Windows 与 Linux 电脑。

如果身边没有合适的电脑可以考虑购买云主机,比如腾讯GPU云服务器。若无法使用独立显卡和云服务,亦可修改启动配置,使用CPU渲染(兼容性强,出图速度慢,需要16G以上内存)。

从图中可看出,与AMD或英特尔的任何产品相比,Nvidia的GPU提供了卓越的性能–有时是以巨大的优势。随着Torch的DLL修复到位,RTX 4090的性能比带有xformers的RTX 3090 Ti高出50%,而没有xformers的性能则高出43%。生成每张图片只需要三秒多。

安装方法

SD开源地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki

目前大家普遍采用的Stable Diffusion Web UI是发布于开源程序分享网站 Github 的 Python 项目,和平常软件安装方法有所不同,不是下载安装即可用的软件,需要准备执行环境、编译源码,针对不同操作系统(操作系统依赖)、不同电脑(硬件依赖)还有做些手工调整,这需要使用者拥有一定的程序开发经验(可以现学),已经有很多大佬们写了详细的安装教程。(如https://www.tonyisstark.com/846.html @托尼不是塔克)

如果像我一样是小白不会装,现在可以直接使用大佬们做的一键启动程序包,比如国内@秋葉aaaki大大开发的整合包,极大的降低了安装门槛(强烈推荐!)

(详见https://www.bilibili.com/video/BV1ne4y1V7QU)一键启动包只是封装了可视化的一键界面,不影响出图效果,只是降低了本地部署的门槛。

Nvidia 显卡用户须知:在使用SD前,请登录 Nvidia 官网https://www.nvidia.cn/geforce/drivers/下载安装对应显卡最新版驱动程序,与https://blog.csdn.net/weixin_44177494/article/details/120444922显卡支持的最新版 CUDA 驱动。

启动SD

进入SD安装文件夹,双击 webui-user.bat,待其加载完成方可使用浏览器(Chrome/Edge)登录默认的加载IP http://127.0.0.1:7860/

界面汉化

如果需要中文语言包,可以下载如下中文语言包扩展,下载界面网址为:https://github.com/VinsonLaro/stable-diffusion-webui-chinese

方法1:通过WebUI拓展进行安装
1.打开stable diffusion webui,进入"Extensions"选项卡
2.点击"Install from URL",注意"URL for extension’s git repository"下方的输入框
3.粘贴或输入本Git仓库地址https://github.com/VinsonLaro/stable-diffusion-webui-chinese
4.点击下方的黄色按钮"Install"即可完成安装,然后重启WebUI(点击"Install from URL"左方的"Installed",然后点击黄色按钮"Apply and restart UI"网页下方的"Reload UI"完成重启)
5.点击"Settings",左侧点击"User interface"界面,在界面里最下方的"Localization (requires restart)“,选择"Chinese-All"或者"Chinese-English”
6.点击界面最上方的黄色按钮"Apply settings",再点击右侧的"Reload UI"即可完成汉化

二、界面基础

了解界面

接下来是具体的使用方法简介。目前SD并不存在通行可靠的使用规范,每个人的电脑配置、需求都不尽相同,cpkd/Safetensors大模型、VAE、embeding、lora等AI模型、各类插件、提示词、输出参数的组合牵一发则动全身,需要大家有足够的耐心查阅插件开发者的说明文档和来自https://civitai.com/等分享网站的使用心得,大家可以先到civitai上搜索中意的图例,复用原作者的出图提示词、参数和模型,再以此修改,这样学习的效果最为直观。

文生图:根据文本提示生成图像
图生图:根据提供的图像作为范本、结合文本提示生成图像
更多:优化(清晰、扩展)图像
图片信息:显示图像基本信息,包含提示词和模型信息(除非信息被隐藏)
模型合并:把已有的模型按不同比例进行合并生成新模型
训练:根据提供的图片训练具有某种图像风格的模型

描述语分为正向/负向描述,它们也叫tag(标签)或prompt(提示词)
正面提示词:相比Midjourney需要写得更精准和细致,描述少就给AI更多自由发挥空间。
负面提示词:不想让SD生成的内容。
正向:masterpiece, best quality, 更多画质词,画面描述
反向:nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers,extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry,根据画面产出加不想出现的画面。

生成下面的5个小图标(从左到右依次分别是)

  • 复原上次生成图片的提示词(自动记录)

  • 清空当前所有提示词

  • 打开模型选择界面

  • 应用选择的风格模板到当前的提示词

  • 存档当前的正反向提示词

采样方法
1.建议根据自己使用的checkpoint使用脚本跑网格图(用自己关心的参数)然后选择自己想要的结果。
2.懒得对比:请使用DPM++ 2M或DPM++ 2M Karras(二次元图)或UniPC,想要点惊喜和变化,Euler a、DPM++ SDE、DPM++ SDE Karras(写实图)、DPM2 a Karras(注意调整对应eta值)
3.eta和sigma都是多样性相关的,但是它们的多样性来自步数的变化,追求更大多样性的话应该关注seed的变化,这两项参数应该是在图片框架被选定后,再在此基础上做微调时使用的参数。

采样步数
稳定扩散通过从充满噪音的画布开始创建图像,并逐渐去噪以达到最终输出。此参数控制这些去噪步骤的数量。通常越高越好,但在一定程度上,我们使用的默认值是25个步骤。以下是不同情况下使用哪个步骤编号的一般指南:

  • 如果您正在测试新的提示,并希望获得快速结果来调整您的输入,请使用10-15个步骤

  • 当您找到您喜欢的提示时,请将步骤增加到25

  • 如果是有毛皮的动物或有纹理的主题,生成的图像缺少一些细节,尝试将其提高到40

面部修复:修复人物的面部,但是非写实风格的人物开启面部修复可能导致面部崩坏。
平铺:生成一张可以平铺的图像
高分辨率重绘:使用两个步骤的过程进行生成,以较小的分辨率创建图像,然后在不改变构图的情况下改进其中的细节,选中该选项会有一系列新的参数,
其中重要的是:
放大算法:Latent 在许多情况下效果不错,但重绘幅度小于 0.5 后就不甚理想。ESRGAN_4x、SwinR 4x 对 0.5 以下的重绘幅度有较好支持。
放大倍数: 通常2倍即可
重绘幅度:决定算法对图像内容的保留程度。该值越高,放大后图像就比放大前图像差别越大。低 denoising 意味着修正原图,高 denoising 就和原图就没有大的相关性了。一般来讲阈值是 0.7 左右,超过 0.7 和原图基本上无关,0.3 以下就是稍微改一些,0什么都不会改变,1会得到一个完全不同的图像。具体的执行步骤为 重绘强度 * 重绘步数。

长宽尺寸(分辨率)
长宽尺寸并非数值越大越好,最佳的范围应在512至768像素之间,比如正方形图多是512*512和768*768,人像肖像 512x768,风景画 768×512,可按比例加大或减小,这个值必须是 8 的倍数。如果不希望主题对象出现重复,应在此范围内选择适当的尺寸。如果需要更高分辨率的图片,建议先使用SD模型生成图片,然后再使用合适的模型进行upscale。

生成批次:每次生成图像的组数。一次运行生成图像的数量为生成批次 * 每批数量。
每批数量:同时生成多少个图像。增加这个值可以提高性能,但你也需要更多的 VRAM。图像总数是这个值乘以批次数。除 4090 等高级显卡以外通常保持为 1。

提示词相关性CFG:较高的数值将提高生成结果与提示的匹配度。
OpenArt上使用的默认CFG是7,这在创造力和生成你想要的东西之间提供了最佳平衡。通常不建议低于5。
CFG量表可以分为不同的范围,每个范围都适合不同的提示类型和目标
CFG 2 – 6:有创意,但可能太扭曲,没有遵循提示。对于简短的提示来说,可以很有趣和有用
CFG 710:推荐用于大多数提示。创造力和引导一代之间的良好平衡
CFG 10-15:当您确定您的提示是详细且非常清晰的,您希望图像是什么样子时
CFG 16-20:除非提示非常详细,否则通常不推荐。可能影响一致性和质量
CFG >20:几乎无法使用

随机种子(Seed):生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。不懂的话,用随机的即可。

提示词生成

开始不知道怎么写提示词,可以先参考优秀的风格模板作为起手式,还可以借助描述语工具和网站,多出图多研究,掌握了出图规律,慢慢就可以自己写提示词啦,写提示词要尽可能写的详细。跑AI的过程就像抽卡,抽出一堆卡,选出你审美范畴里觉得好看的。

找tag关键词网站:
可参考Civitai | Stable Diffusion models, embeddings, hypernetworks and more中优秀作品的提示词作为模板。
其他网站还有:
ChatGPT:https://chat.openai.com/
AI Creator:https://ai-creator.net/arts
NovelAI:https://spell.novelai.dev
魔咒百科词典:https://aitag.top
AI咒术生成器:https://tag.redsex.cc/
AI词汇加速器 AcceleratorI Prompt:
词图 PromptTool:https://www.prompttool.com/NovelAI
鳖哲法典:http://tomxlysplay.com.cn/#/
Danbooru tag:Tag Groups Wiki | Danbooru (donmai.us)

Prompt格式优化

第一段:画质tag,画风tag
第二段:画面主体,主体强调,主体细节概括(主体可以是人、事、物、景)画面核心内容
第三段:画面场景细节,或人物细节,embedding tag。画面细节内容
第二段一般提供人数,人物主要特征,主要动作(一般置于人物之前),物体主要特征,主景或景色框架等

举个例子

标签:Diffusion,ControlNet,模型,Stable,使用,生成,图像,字长,SD
From: https://blog.csdn.net/m0_58477260/article/details/140732804

相关文章

  • Diffusion|DDPM 理解、数学、代码
    Diffusion论文:DenoisingDiffusionProbabilisticModels参考博客openinnewwindow;参考paddle版本代码:aistudio实践链接openinnewwindow该文章主要对DDPM论文中的公式进行小白推导,并根据ppdiffuser进行DDPM探索。读者能够对论文中的大部分公式如何得来,用在了什么......
  • Diffusion|DDIM 理解、数学、代码
    DIFFUSION系列笔记|DDIM数学、思考与ppdiffuser代码探索论文:DENOISINGDIFFUSIONIMPLICITMODELS参考博客openinnewwindow;参考aistudionotebook链接,其中包含详细的公式与代码探索:linkopeninnewwindow该文章主要对DDIM论文中的公式进行小白推导,同时笔者将使用......
  • Stable Diffusion整合包安装教程你值得拥有!!!(附安装包)
    Stabledifusion是一个开源的模型,开源=公开=免费,意味着你可以把这个模型下载到你自己的电脑上或者服务器上面畅玩没有审核人员卡你图片是否有问题,随意出图。01、电脑配置相关知识我们先来看看安装StableDiffusion整合包的需要的电脑配置:电脑配置需求:操作系统:windows......
  • Stable Diffusion(AI绘画)软件安装包下载及安装教程!
    软件介绍StableDiffusion简称(SD)是一款开源的AI绘画软件,基于LatentDiffusionModel(文转图合成技术),能够根据文本描述或图像提示生成生成高质量、高分辨率、高逼真的图像。StableDiffusion由于开源属性,有很多免费高质量的外接预训练模型(fine-tune)和插件。软件:StableDiffu......
  • 昇思25天学习打卡营第22天|Diffusion扩散模型
    ☀️第22天学习应用实践/生成式/Diffusion扩散模型1.DiffusionModel简介如果将Diffusion与其他生成模型(如NormalizingFlows、GAN或VAE)进行比较,它并没有那么复杂,它们都将噪声从一些简单分布转换为数据样本,Diffusion也是从纯噪声开始通过一个神经网络学习逐步去噪,最......
  • 刚刚!Stable diffusion 4.8+ComfyUI升级版终于来了!(一键安装包,感谢大佬)
    如果这个世界有上帝,那么祂一定是程序员。国内SD绘画启动器第一人是我认为是B站的秋葉aaaki因为制作了这款StableDiffusion启动器,降低了国内使用SD的门槛且分文不收,秋叶被粉丝戏称赛博菩萨。1背景信息▍****StableDiffusion是什么?StableDiffusion(简称SD)是一种生......
  • stable diffusion文生图代码解读
    使用diffusers运行stablediffusion,文生图过程代码解读。只按照下面这种最简单的运行代码,省略了一些参数的处理步骤。fromdiffusersimportDiffusionPipelinepipeline=DiffusionPipeline.from_pretrained(MODEL_PATH,torch_dtype=torch.float16)pipeline.to("cuda......
  • Enhancing Diffusion Models with Reinforcement Learning
    EnhancingDiffusionModelswithReinforcementLearningSep27,2023 | UncategorizedTL;DRTodaywe'regoingtotellyouallabout DRLX -ourlibraryforDiffusionReinforcementLearning!Releasedafewweeksago,DRLXisalibraryforscalabledist......
  • 《昇思 25 天学习打卡营第 18 天 | 扩散模型(Diffusion Models) 》
    《昇思25天学习打卡营第18天|扩散模型(DiffusionModels)》活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp签名:Sam9029扩散模型(DiffusionModels)扩散模型概述扩散模型(DiffusionModels),特别是去噪扩散概率模型(DDPM),在图像、音频、视频生成领......
  • 构建坚不可摧的数字长城:从“微软蓝屏”事件看网络安全与系统稳定性的重塑
    “微软蓝屏”事件暴露了网络安全哪些问题?近日,一次由微软视窗系统软件更新引发的全球性“微软蓝屏”事件,不仅成为科技领域的热点新闻,更是一次对全球IT基础设施韧性与安全性的深刻检验。这次事件,源于美国电脑安全技术公司“众击”提供的一个带有“缺陷”的软件更新,它如同一颗......