AIGC爆款工具StableDiffusion教程详解

晓依AI教程学习会 2024-09-26 10:59:59

Stable Diffusion 乃是一款依托人工智能技术打造的绘画软件。该软件运用生成对抗网络(GAN)这一深度学习模型,通过学习并模仿艺术家的创作风格,进而生成与之类似的艺术作品。以下将为你带来 Stable Diffusion 的教程详解,涵盖软件介绍、配置要求、安装步骤以及基础操作等多方面信息。

一、Stable Diffusion 概述

Stable Diffusion 是一款基于深度学习的开源图像生成工具,自 2022 年 8 月由 Stability AI 公司推出以来,在创意设计、视频特效等多个领域展现出了广泛的应用前景和巨大的优势。

在创意设计领域,Stable Diffusion 为艺术家和设计师提供了强大的创作工具。它可以根据用户输入的文本描述,快速生成具有高分辨率和逼真效果的图像,帮助艺术家们更快速地获得灵感,创作出独特而吸引人的作品。无论是插画、概念艺术还是角色设计,Stable Diffusion 都能发挥重要作用。例如,在游戏开发中,它能够为游戏开发者提供快速创建游戏资产的能力,生成角色、环境和道具等,加速原型设计和游戏内容的迭代,提高开发效率。

在视频特效方面,Stable Diffusion 也有着出色的表现。2023 年 5 月,Stable Diffusion 已经可以生成视频。Stability AI 以输出动画的积分值作为收费的依据,用户生成的动画会被换算成一个积分,每 1000 个积分消耗 1 美元。它能够为电影和动画制作提供背景、特效和角色设计等方面的支持,帮助制作团队更高效地创建出精美的视觉效果,提升作品的质量和吸引力。

Stable Diffusion 的优势主要体现在以下几个方面。首先,它以卓越的生成质量著称,能够生成高分辨率、逼真的图像,具有出色的细节和真实感。其次,与其他深度学习模型相比,Stable Diffusion 表现出更高的稳定性,在训练过程中更不容易出现崩溃或模型崩溃的情况,提高了开发效率。此外,Stable Diffusion 不仅在图像生成领域表现出色,还在语音处理、自然语言处理等多个领域有着广泛的应用,是一个多才多艺的模型。

二、硬件与安装准备

(一)硬件配置需求

Stable Diffusion 对硬件有一定的要求,以确保其能够高效运行。首先,需要一个多核 CPU,如 Intel i7、i9 或 AMD Ryzen 7、9 系列。多核 CPU 可以更好地处理数据预处理和其他辅助任务,提高整体系统性能。

对于 GPU,NVIDIA GPU 是首选。一般来说,显存容量越大,能够处理的图像分辨率和批量大小越大。最低要求通常为 6GB,但为了更好的性能,建议使用 8GB 或更多显存的 GPU。例如,NVIDIA RTX 3060(12GB)、RTX 3070(8GB)等都是不错的选择。如果预算允许,可以考虑更高端的 NVIDIA RTX 4090(24GB)等新一代显卡。

内存方面,推荐 32GB 及以上,最低也要 16GB。足够的内存可以支持处理大型数据集和高分辨率图像,提高性能和稳定性。

存储方面,推荐使用 SSD,读写速度快,至少需要 100GB 空间。Stable Diffusion 的模型文件、生成的图像以及中间结果都需要占用一定的存储空间,因此大容量的 SSD 可以确保系统的顺畅运行。

(二)安装步骤与环境搭建

首先,需要从 GitHub 仓库下载 Stable Diffusion。打开浏览器,访问 GitHub 上的 Stable Diffusion 仓库(https://github.com/AUTOMATIC1111/stable-diffusion-webui.git),然后使用 git clone 命令将其克隆到本地。

接下来,准备 Python 环境。安装 Python 3.10.6 版本,安装时一定要勾选 “Add Python to PATH” 选项,以自动配置环境变量。这样可以确保在命令行中能够顺利运行 Python 命令。

安装好 Python 后,还需要安装一些必要的包。在命令行中进入 Stable Diffusion 的安装目录,执行 “pip install -r requirements.txt” 命令,安装所需的依赖包。

下载 Stable Diffusion 的权重文件,并将其放在 “models/Stable-diffusion” 目录下。权重文件可以从 Hugging Face 等平台下载。

最后,启动 WebUI。在 Stable Diffusion 的安装目录下,输入 “python launch.py --share --xformers” 命令。“--share” 参数会生成一个公开的 URL,方便外部访问;“--xformers” 参数会启用 xformers 加速生成速度。

启动成功后,打开浏览器,输入终端输出的公开 URL,即可使用 WebUI 进行图像生成等操作。

三、界面与功能

(一)界面布局

Stable Diffusion 的用户界面简洁直观,易于操作。提示输入区域位于界面的上方,用户可以在这里输入文本描述,作为生成图像的指引。这个区域支持英文输入,所有符号都需使用英文半角,词语之间用半角逗号隔开。一般来说,越靠前的词汇权重越高。

参数设置区域在界面的一侧,包含了众多可调整的参数。其中,分辨率、尺寸等参数可以在这里进行设置,以优化图像的细节和质量。此外,还有采样步数、采样方法等参数可供选择,不同的参数组合会影响生成图像的效果和速度。

结果展示区位于界面的中央,用于展示生成的图像。用户可以在这里直观地看到图像生成的结果,并根据需要进行调整和优化。

(二)基础功能

文本到图像生成:这是 Stable Diffusion 的核心功能之一。用户只需在提示输入区域输入描述性的文本,如 “a beautiful sunset over the ocean, with seagulls flying in the sky”,然后调整参数设置,点击生成按钮,系统就会根据文本描述生成相应的图像。这个功能可以帮助艺术家快速获得灵感,也可以用于广告设计、书籍插图等领域。

图像到图像转换:用户可以上传一张参考图像,然后在提示输入区域输入描述性的文本,系统会根据参考图像和文本描述生成新的图像。例如,上传一张风景照片,然后输入 “turn this landscape into a winter wonderland”,系统就会生成一张冬季风景的图像。这个功能可以用于图像修复、风格转换等领域。

图像增强:Stable Diffusion 可以对低质量的图像进行增强,提高图像的分辨率和清晰度。用户只需上传需要增强的图像,然后调整参数设置,点击生成按钮,系统就会对图像进行增强处理。这个功能可以用于照片修复、老照片数字化等领域。

(三)高级功能探索

个性化设置:Stable Diffusion 提供了丰富的个性化设置选项,用户可以根据自己的需求进行调整。例如,用户可以选择不同的模型,每个模型都有其独特的风格和特点。此外,用户还可以调整提示词相关性、学习率等参数,以获得更符合预期的生成结果。

调整参数以优化生成效果:采样步数是一个重要的参数,它控制着生成图像的细节度与多样性。高值增加细节,但生成时间也会相应增加;低值提升速度,但可能会牺牲一些细节。提示词相关性也是一个关键参数,它调整文本提示的权重,确保生成结果符合预期。用户可以通过不断尝试不同的参数组合,找到最适合自己需求的设置,从而优化生成效果。

四、参数调整与提示词策略

(一)关键参数调整

学习率:学习率影响模型学习速度。较低的学习率可能导致训练时间较长,但能更稳定地收敛到较好的结果;较高的学习率则可能使模型在训练初期快速更新,但也容易错过最优解甚至导致模型不稳定。一般来说,初始学习率可以设置在较小的值,如 0.0001,然后根据训练情况进行动态调整。例如,在训练过程中,如果发现损失函数下降缓慢,可以适当提高学习率;如果损失函数波动较大,则应降低学习率。

采样步数:采样步数控制生成图像的细节度与多样性。采样步数越多,生成的图像细节越丰富,但同时也会增加生成时间和计算资源消耗。通常情况下,采样步数在 20 到 60 之间可以在图像质量和生成速度之间取得较好的平衡。对于高细节要求的图像,可以适当增加采样步数,但也要考虑计算资源的限制。例如,在生成写实人像或复杂场景时,可能需要较高的采样步数,如 50 步以上;而对于一些简单的图像或对生成速度要求较高的情况,可以选择较低的采样步数,如 20 到 30 步。

提示词相关性:提示词相关性指的是输入提示词对生成图像的影响程度。当提示词相关性较高时,生成的图像将更符合提示信息的样子;相反,如果提示词相关性较低,对应的权重也较小,则生成的图像会更加随机。一般来说,对于人物类的提示词,提示词相关性可以控制在 7 - 15 之间,以突出人物特征和细节;而对于建筑等大场景类的提示词,一般控制在 3 - 7 左右,以在一定程度上突出随机性,同时又不会影响生成图像的可视化效果。

(二)提示词编写技巧

正向提示词:使用清晰、具体的描述可以获得更准确的图像。例如,描述一个人物时,可以包括性别、年龄、发型、衣服颜色、样式、身材等特征,以及人物的表情和动作。同时,还可以设定画面内的其他物品、人物关系、背景等。例如,“a beautiful young woman with long curly hair, wearing a red dress, smiling, standing in a garden with colorful flowers, holding a book”。此外,还可以设定方向和风格,如 “front view” 表示正面视角,“watercolor painting art” 表示水彩画风格。

负向提示词:避免不想要的元素,如特定颜色、元素等。例如,“bad hands, missing fingers, (too many fingers:1.2)” 可以避免生成的图像中出现手指问题;“(unclear eyes:1.2)” 可以避免五官不清晰的问题;“(worst quality:2), (low quality:2), blurry” 可以避免画质问题。通过负向提示词,可以让生成的图像更加符合预期。

权重调整方法:可以通过语法来设置关键词的权重。小括号 “()” 可以增加权重,一个小括号增加 1.1 倍权重,最多套三层小括号也就是 1.331 倍权重;大括号 “{ }” 也增加权重,但相比小括号更轻微,是增加 1.05 倍,三层大括号权重为 1.15 倍;中括号 “[ ]” 是减小权重值的,它会把权重变为原来的 0.9 倍,三层就是 0.729 倍。此外,还可以使用自定义权重,格式为 “(keyword:factor)”,factor 是权重值,权重取值范围 0.4 - 1.6,权重太小容易被忽视,太大容易拟合图像出错。

(三)提示词拆分方法

Stable Diffusion 自带反堆功能:可以通过将想要拆分的图像拖入反堆,点击按钮来获得生成该图像的提示词。第一次使用可能会有些慢,需要稍等片刻。获得的提示词需要进行后期的优化,常用的方法是通过百度翻译后进行增删改,或者输入到 GPT 中进行优化,优化后将提示词放入相应的框内进行图像输出。

三方网站:可以借助三方网站,如 https://replicate.com/ 来进行拆分。拆分好后,同 Stable Diffusion 自带反堆功能一样,进行增删改,然后对两种方法进行比较,通过比较后,可以进行词汇的筛选与合并。

相关工具:利用 GPT 或文心一言等相关工具,将想要描述的长句输入,最后加一句描述,请将这句话拆分为 Stable Diffusion 的提示词。如果不满意可以继续恢复优化提示词,或者换一批相关描述,然后将转换好的提示词同 Stable Diffusion 自带反堆功能一样进行增删改。

五、结果预览与优化

(一)实时预览与导出试验

Stable Diffusion 的实时预览功能为用户提供了极大的便利。在生成图像的过程中,用户可以即时查看生成结果,从而能够根据实际情况对参数进行调整。例如,当用户发现生成的图像细节不够丰富时,可以增加采样步数;如果图像的色彩不符合预期,可以调整提示词中的颜色描述。

导出试验功能允许用户保存不同参数组合生成的图像,以便进行对比优化。据统计,通过尝试不同的参数组合,用户能够提高约 30% 的图像生成质量满意度。比如,用户可以设置不同的学习率、采样步数和提示词相关性,然后分别导出生成的图像。在对比这些图像时,可以清晰地看到不同参数对图像质量、细节度和速度的影响。对于追求高质量图像的用户来说,这个功能是非常实用的,可以帮助他们找到最适合自己需求的参数组合。

(二)队列管理与结果重做

队列管理功能是 Stable Diffusion 的一个重要特性。它可以记录生成过程,方便用户重新处理或调整结果。例如,当用户同时进行多个图像生成任务时,可以将这些任务添加到队列中,系统会依次处理这些任务。如果用户在某个任务的生成过程中发现问题,可以暂停该任务,进行参数调整后重新加入队列进行处理。

结果重做功能则为用户提供了更多的灵活性。如果用户对生成的结果不满意,可以选择重做该任务。在重做过程中,用户可以调整参数、更换提示词或者选择不同的模型,以获得更满意的结果。据实际使用情况反馈,约有 40% 的用户会使用结果重做功能来优化他们的图像生成结果。

通过实时预览、导出试验、队列管理和结果重做等功能,用户可以更加高效地使用 Stable Diffusion 进行图像生成,不断优化生成效果,满足自己的创意需求。

六、实战应用与扩展

(一)图生图应用

图生图是 Stable Diffusion 的一项强大功能。其原理主要基于扩散模型的框架,通过编码源图片和提示词、逆扩散过程以及解码过程来生成新的图像。在这个过程中,模型会接受一张源图片作为额外条件,从而生成与源图相关联且符合提示要求的新图像。

步骤如下:首先,用户需要提供一张源图片和相应的提示词。源图片通过图像编码器生成隐空间特征,同时提示词通过 CLIP Text Encoder 编码为文本特征。然后,在逆扩散过程中,模型使用噪声预测器逐步去除隐空间中的噪声,同时根据提示词的语义信息指导生成过程。最后,经过逆扩散过程后,得到的隐空间特征通过图像解码器转换回像素空间,生成最终的图像。

随机种子在图生图中也起着重要作用。当随机种子固定时,生成的图像具有更高的可重复性。例如,用户对一张源图片进行图生图操作,设置了特定的提示词和随机种子。如果再次使用相同的源图片、提示词和随机种子进行图生图,生成的图像将基本相同。这使得用户可以在不同的参数调整过程中,保持图像的某些特定特征,方便进行对比和优化。

图生图的扩展应用非常广泛,比如物体拟人化。用户可以上传一张物体的图片,如一个苹果,然后输入提示词 “一个可爱的苹果女孩,穿着红色的裙子,有着绿色的叶子头发”。通过图生图功能,Stable Diffusion 可以将苹果转化为一个可爱的拟人化女孩形象,为创意设计提供了更多的可能性。

(二)模型的使用

Stable Diffusion 的模型文件格式主要有两种,分别是 ckpt 和 safetensors。ckpt 是 pytoch 使用 pickle 序列化存储的格式,简单易用,但可能会序列化某些 python 执行代码。safetensors 是 HuggingFace 推出的新的模型存储格式,不会包含执行代码,不需要反序列化,加载更快,目前已经是主流的 Stable Diffusion 模型存储格式。

在一些网站平台上可以下载和使用 Stable Diffusion 模型。例如 C 站(civitai.com)和拥抱脸(huggingface.co),但需要科学上网。如果是用整合包安装的 Stable Diffusion,可以在 SD-WebUI 启动器中的模型管理页面下载。此外,网上也可以搜集整理模型,资源非常丰富。

在类目推荐方面,用户可以根据自己的需求选择不同类型的模型。比如,想要生成逼真的人脸图像,可以选择擅长人物画风的基础模型;如果想要特定的风格,如二次元画风,可以选择相应的 Lora 模型。下载好模型后,需要根据模型类型放置到对应的目录中。例如,基础模型放置到 “models/Stable-diffusion” 目录下,VAE 模型放置到 “models/VAE” 目录下,Lora 模型放置到 “models/Lora” 目录下。

(三)B 端图标生成

利用 Stable Diffusion 生成 B 端图标是其在实际应用中的一个典型案例。首先,需要对电脑配置有一定的了解,因为 Stable Diffusion 对硬件有一定要求。一般来说,需要一个多核 CPU,如 Intel i7、i9 或 AMD Ryzen 7、9 系列;对于 GPU,NVIDIA GPU 是首选,显存容量越大越好,建议使用 8GB 或更多显存的 GPU;内存方面,推荐 32GB 及以上;存储方面,推荐使用 SSD,读写速度快,至少需要 100GB 空间。

下载设置模型文件,包括 SD 模型、外挂 VAE 模型、Refiner 模型、ControlNet 模型等。链接:https://pan.baidu.com/s/1fQh9-fnGXJS8sh8CwO1Wtg?pwd=7605 提取码:7605。将模型文件放置在相应的目录下,并在 SD 中进行设置。采样方法可以选 DPM++ 3M SDE Karras,画面会柔和一些,背景更干净,细节也相对减少,速度和 DPM++ 2M Karras 一样,所以迭代步数推荐在 30 或以上。

准备底图素材,用 ControlNet 控图,需要明确图标的线稿。可以使用已有图标进行优化,使用 PS 进行图标线稿处理,再对其外形等关键特征进行组合或者添加自己的创意。对于特别复杂的图形,建议避免使用过于复杂的模型。只需有基础的轮廓图,就可以快速创建 B 端图标。注意尽可能把闭合形状的轮廓处理的粗细一致且清晰可见;模糊的区域可以用橡皮擦或者蒙版处理干净;立体图形的转折处连接处要明确。

构思关键词,可以使用下方的关键词,并替换自己想要的内容和颜色等。如果无法找到合适的关键词或创意,可以先在网上收集一些相关的设计参考图片,在图生图界面中,将这些参考图片导入并点击 CLIP 反推提示词。选择生成的关键词,然后将其输入到文生图的 Prompt 中。这样可以快速得到理想的设计方案。

正向关键词:(a shield icon:1.1),dark blue frosted glass texture,dark blue gradient,(softedges:1.2),3D,best quality,many details,4k,blender,octane render,C4D,transparentglass texture,DDicon,frosted glass,transparent technology sense,industrialdesign,white background,studio lighting,sunshine,flat,minimal,quasi-object,Datafile。

负正向关键词:lowres,bad anatomy,((bad hands)),(worst quality:2),(low quality:2),(normal quality:2),paintings,sketches,lowres,bad anatomy,bad hands,text,error,missing fingers。

在选择好刚才的模型和参数后,填入关键词,并在 ControlNet 中上传已经处理好的线稿,点击爆炸图标,得到控图线稿,再点击右上角的生成,就可以进行抽卡生图啦。对已生成的图标,可以用 PS 进行处理;也可以将方案放到图生图中局部重绘一下细节,得到更符合预期的效果。

整体的制作思路可以大概拆解为 6 个步骤:找到类似参考 - 线稿处理 - 提炼关键词 - 使用 ControlNet 控制线稿 - 重新优化图标方案 - 实际应用。

七、入门教程与资源

(一)新手入门指南

Stable Diffusion 的安装对于初学者来说可能会有一定的挑战,但只要按照正确的步骤进行操作,也并非难事。如果选择在谷歌服务器上部署 Stable Diffusion,以下是详细的步骤:

准备工作:首先需要一个顺畅的网络环境,因为会用到谷歌的一些相关服务。同时,还需要一个谷歌账号,如果还没有谷歌账号,可以去谷歌注册一个账号,无论是否使用大陆手机号,都是可以注册成功的。

进入谷歌主页:在头像左边,点击谷歌应用的按钮,然后在弹出的小页面中选择云端硬盘。如果是第一次进入云端硬盘,会有一个欢迎说明文件,可直接点下一步或直接关掉。每一个账号谷歌会给到我们 15G 的使用空间,这个空间对于安装 Stable Diffusion 的程序是完全够的。

安装 Stable Diffusion 一键安装包:进入 Stable Diffusion 一键安装包主页,看到程序说明中的表格里有三个链接,先点击第一个,右键单击在新建标签中打开链接。浏览器会新开一个页面,这就是安装程序。为了方便后期使用,可以先备份一下,点击上方的 “复制到云端硬盘”,稍等两三秒,副本创建完成后页面会跳转。返回云端硬盘,可以看到多了一个 “Install 的副本”。回到副本的安装页面,点击左上角的运行按钮。

等待安装:在等待几秒之后,谷歌会跳出一个对话框,向我们请求访问 Google 硬盘的权限。在这个窗口里,选择我们的账号,拖到最底下点击允许。然后可以看到代码已经开始运行了,需要稍微等待一下。大概等 7 到 8 分钟的时间,等待程序自动部署完成。因为这是第一次部署,需要下载很多东西,所以时间相对会比较长。在后期使用过程中,时间会大大缩短。如果出现失败情况,可能是因为当下资源比较紧缺,可以尝试换一个时间重新部署。

汉化步骤:安装汉化语言包、双语翻译。点击 “extensions”——“Available”——“Load from” 加载插件;在搜索框中输入 “hans”,取消勾选;点击 “Install”;搜索 “bilingual”;点击第一个 “Install”,安装;点击 “Installed”,可以看到刚刚安装的插件;在 settings 选项栏下找到 bilingual-localization,在下拉菜单选择刚刚的 zh_CN(找不到的话点击一下旁边的刷新按钮),应用设置并重启 UI。

(二)学习资源推荐

对于初学者来说,丰富的学习资源可以帮助他们更快地掌握 Stable Diffusion。以下是一些推荐的资源:

Stable Diffusion 文档中心:这里提供了详细的软件说明、功能介绍和使用教程,是初学者了解软件的重要途径。文档中心通常会涵盖软件的各个方面,包括安装步骤、界面介绍、参数调整、功能详解等。

使用手册:使用手册通常会以简洁明了的方式介绍软件的操作方法和注意事项。它可以帮助用户快速上手软件,了解如何进行基本的图像生成操作,以及如何调整各种参数以获得更好的效果。

提示词大全:提示词在 Stable Diffusion 的图像生成过程中起着至关重要的作用。提示词大全可以为用户提供丰富的词汇参考,帮助他们更好地描述想要生成的图像内容。提示词大全可以包括各种主题的词汇,如风景、人物、动物、建筑等,以及不同风格的描述词汇,如写实、卡通、水彩画等。

插件手册:Stable Diffusion 拥有丰富的插件生态,这些插件可以为软件增加更多的功能和灵活性。插件手册可以介绍各种插件的安装方法、使用说明和功能特点,帮助用户根据自己的需求选择和使用插件。

(三)社区与交流

加入 Stable Diffusion 的用户社区对于初学者来说是非常重要的。在社区中,用户可以分享自己的作品和学习成果,与其他用户交流经验和技巧,共同推动技术的发展。

分享作品:将自己生成的图像分享到社区中,可以获得其他用户的反馈和建议,从而不断提高自己的创作水平。同时,也可以从其他用户的作品中获得灵感,拓展自己的创作思路。

交流经验:在社区中,用户可以与其他用户交流使用 Stable Diffusion 的经验和技巧,解决遇到的问题。例如,如何调整参数以获得更好的效果、如何使用插件、如何进行图生图等。

共同推动技术发展:用户社区是一个开放的平台,用户可以在这里提出自己的想法和建议,为软件的发展贡献自己的力量。同时,也可以关注软件的更新和发展动态,及时了解新的功能和技术。

0 阅读:0