赞
踩
大家好,我是猫头虎。今天我要给大家带来一篇关于Stable Diffusion 3 (SD3) 模型的全面评测和使用指南。作为刚刚开源的最新一代模型,SD3在架构、性能和功能上都有了显著的提升。本期内容不仅会详细解析SD3的各项改进,还会教大家如何通过ComfyUI进行高效的批处理操作和提示词测试。无论你是AI绘画的新手还是老手,相信这篇文章都能给你带来实用的指导和灵感。话不多说,我们马上开始吧!
本期我们将探讨刚刚开源的SD第三代模型。此外,我们还会介绍一些config UI的批处理操作,以配合我们的提示词测试该模型。话不多说,我们直接进入SD官网。
首先,我们要介绍的是SD3,它与之前的架构有何不同?SD3的架构基于SDXL进行训练。首先,我们可以看到TVE解码部分得到了大幅增强,现在通道数为16。其次,它对提示的理解及元素融合更为完善。简而言之,我们可以通过提示更精确地控制画面的某些部分。这一新一代模型采用了三种Clip编码。在SDXL中,我们有两个编码器,一个是L,一个是G。而这一代模型在此基础上增加了一个文本编码器,使得训练数据量更大,达到2B,相当于20E的参数,远超之前的SDXL。
现在,我们访问TUGIFACE官网,对于新手来说,可能不清楚应使用哪些模型。通过观察后缀,我们可以分辨出模型的特性。首先,无后缀的模型不包含Clip编码。其次,带有Clip标识的版本包含基础的Clip编码,即I和L,相当于XL模型。再往下,第三代模型T5XXL新增了第三种Clip编码模型。这里有两种精度:FP16和8位。通常,未经采样的模型精度为32位,采样后为FP16。对于大参数模型,仅提供FP16半精度,大小达到15G。此外,还提供8位精度,即半精度的半,更小。官方发布的模型体积较大,要求较高,至少需要12G显存,尽管官方称8G也可运行,但需配置虚拟内存。
在这四个模型中,Text Encoders部分会提供额外的Clip模型。如果加载的模型不包含Clip,则需下载并加载额外的Clip模型。下面两个模型同样如此,只需选择一个精度,如16位或8位,加上G和L,即构成三个Clip模型。对于国内用户,需下载并加载这些模型。
最佳访问的资源网站是LibLib。在之前讲解Stable Diffusion时,我曾提及此网站。目前,LibLibAI是国内较为完善的绘画模型资源网站,不仅提供常用模型,还可在其平台上查看相关内容。
平时都有一些激励活动,所以说有很多原创作者在这个地方玩游戏。
这些模型在CVT网站上不一定能找到,同时一些热门的模型也不一定能找到。
最重要的是,对于不熟悉网络配置的朋友们来说,这个功能非常便捷,可以直接访问,使用起来十分方便。
速度非常顺畅。目前排名第一的是SD3模型,该模型已在其网站上架。这是一个实际版本,包含三个编码器,无需单独加载Clip编码模型。王智能的信息将放在视频简介下方。LibreView网站支持V3模型生成,其在线生成速度与4090相当,推测使用了大算力提供前端实时生成模式。Huggenface提供了一个Config UI样本工作流,包括Basic基础工作流、Prompt强化工作流和传统放大工作流(Upscale)。这些工作流相对简单。
现在直接来到服务器。在服务器这边,我们来直接打开这个工作流。我已经等待半天了。
首先,我们来看一下这个最基础的工作流。在这里,我们简单分析一下。首先,我们可以看到官方提供的这边有一个单独加载的Clip,可以看到三个Clip加载器,模型中没有Clip。这种情况适用于我们所下载的是一个4G的,它没有打包任何的Clip模型。这时,我们需要下载三个Clip模型,如Clip-L、Clip-G和T5的Clip。将这三个模型加载下来,单独将Clip传给正向和负向两个文本编码器。这里只是单独加载模型,这是其一。其二,最有趣的是它的负面处理。我们可以看到负面这里有一堆东西。首先,它在负面这里分了两条线,最后用了一个Combine合并。上面这条是条件归零,即整个负面走了这条,它是没有任何提词的,相当于空的,因为它归零了。之后是一个时间设置。我们对比这两个时间设置,上面这条路线没有强度,相当于空提词,而下面这条路线有强度,有提词。之后在这两个强度上做了一个融合,其实是一个线性过渡,但由于Config UI没有Clip的线性过渡,我们可以看到没有强度的,相当于空提词。没有强度的开始时间从0.1到1结束,即90%的时间没有提词作用。只有前面的10%有提词效果,所以我们可以理解它将负面完全降低了。前面的10%有提词,后面就没有提词了,相当于做了一个缓出的效果。这个权重是一个缓出,特别厉害,即前面10%有作用,后面不想让提词发挥作用。因此,我们可以理解它的负面强度很高,它是要把强度降下来。我猜测因为三个Clip模型的加持,它对提词的理解过于强悍,所以这些操作不想让负面体现得太突出。因此,把负面强度降得很弱,只要有一点点就可以。这是第二点,它的负面处理。第三点,我们还可以看到SD3的模型采样算法。模型管道处理算法,不管我们在之前接触LCM也好,或者是Pelegram也好,都可以在模型管道做一些算法的优化,并不是特别主要。现在我们来看一下在高级里面找到模型。这里我们可以看到之前所有的离散算法、连续算法以及Cascade算法。这个连续就是我们之前Pelegram用的。下面SD3以及CFG缩放。这些都是一些微调,它不是说特别关键的一个组件,没有它就不能运行了。说到这里以后,我们就来用它官方的提示词来生成一下图像。当然要注意我们现在所加载的模型是实际的,里面包括了这3Clip模型。所以说我们Clip模型就不需要单独加载了,就可以直接从模型这里面来出了。给到正向,给到负向。我们来看一下这是它官方给到的采样器的参数,28部。所以说它的部数要求也不是特别高。然后CFG4.5明显可以感觉到它的风格性也特别强,我们CFG不能给特别高。同时也能感觉到它的编码强度也特别高,也就是因为它编码模型。那么再往下,采样器我们常用的2M。要注意的是这个调度器,它用的是SGM的,就和LCM的调度器类似。所以说它融合了一些这种精炼的东西,我感觉。这样的话我们先来直接来生成一下。
这一套题词的效果还是可以的,但是我感觉稍微有些油腻,这个脸上
反光特别高。接下来我们将进行一些调整。首先,我们将CFG值略微降低。之前尝试过DDIM,但发现常用的3M和DDPM效果不佳,均出现崩溃情况。这里我们尝试使用默认的OlerA进行测试。其次,调度器的选择也非常关键。之前尝试过其他调度器,但效果均不如当前使用的这个。接下来,我们将更改模型算法,使用默认模型,虽然变化不大。随后,我们将步数降低至25步,再次进行生成。结果显示,OlerA效果不佳,而DDIM则表现正常。DDIM是一种采样速度较快的算法。为了提高速度,我们可以进一步降低步数进行测试,结果显示变化不大。接下来,我们将尝试不使用原先的负面条件,直接进行测试。
我们可以观察到,当前效果并不理想,细节未能充分展现,这是我们需要注意的第一点。我们必须按照其负面模式进行生成。接下来,我们将探讨第二个工作流程,即提词强化流程。通过比较可以发现,除文本编码外,其他组件均相同。这里特别引入了SD3文本编码,分别对应Clip-L、Clip-G和T5三个独立的Clip模型,它们各自负责不同的Clip信息。从官方演示中可以清晰理解,这一套提词与之前的提词相同,但效果存在显著差异,这是采用SD3方式生成的图像。现在,我们来进行对比分析,首先查看上文内容。
大家可以看到,上面的Clip I和L提供的是氛围,包括背景色彩、整体氛围以及背景形状或风格。而最下面的T5 Clip则描述了主体,即女性的肖像,包括她的神情、人物特点以及艺术品的整体风格。此外,我们还了解到基础案例的提示词。
但是没有什么变化的吧。那么所产出的生成的这个效果呢?
这就是三种完全不同的CLIP模型的应用。
提示后,效果显著增强。接下来,我们探讨第三个工作流程,该流程并无特别之处。加载方式依旧简单,主要涉及后期放大。我们可以看到,流程中仅包含US放大,这便是其放大工作流。我认为此流程无需额外说明,仅涉及SD处理。至此,官方提供了三种不同工作流。随后,我们将进行简单测试。由于SD开源仅一天,部分节点进度尚未同步。我们无法使用独特方式遍历提示词,因此无法体现其特性。我们仅能使用单提示文本编码器进行图像测试。接下来,我们将简述如何遍历图像。首先,提及遍历,此处我们讨论的是差异。
插件即为这样一个插件,我们可在Manager中直接搜索“Dynamic”,它是一款便捷的题词插件。安装此插件后,新建节点处将显示动态提示词,该提示词节点实质上是Program通配符的使用节点。若不使用此插件,亦可选择Inspire中的通配符。接下来,我们将选择一个随机题词,以便随机调用通配符文件。
那么说到文档调用,我们还是要访问LibLib的网站,除了模型,我们还可以下载一些其他资源。
点击右侧,查看全部类型,您会注意到这里有一个Word Cards,即题词卡片。
提斯卡吧是一个包含多种类型的平台,其中包括服装、人物、风格、场景以及视角等各类元素。
这里我下载了一些题词卡,解压后均为TXT文档。打开后,内容包括镜头、服装、各种职业服装、动物、人文景观及风格。我已上传部分至服务器,但未全部上传。
之后,我们进入服务器的硬盘,在configurator目录下,无论是服务器还是本地,文件位置都是固定的。在configurator下,我们找到custom_nodes,即自定义节点插件文件夹,在其中找到之前安装的dynamic_prompt。在此文件夹内,我们可以看到wildcards文件夹,将我们刚才下载的txt文档放入其中。放入后,首先要注意它们的名称:第一个是动物(animals),第二个是配置文件,包含多种不同结构,需要复杂的指令,这是我测试时使用的;如果大家对此感兴趣,我们稍后再详细讨论。第二个是角色的服装,第三个是风格,第四个是场景,关于如何调用这些内容,我们将在后续进行说明。
接下来,我们将调用Config UI。首先,我们将测试一种风格,在此基础上,我们可以提供不同的动物或场景。随后,我们将涉及两个文档:第一个文档包含各种动物。
我们可以直接重命名该文件,复制其名称。在调用时,需切换至英文输入法,使用Shift键和反斜杠键,输入两个下划线,然后粘贴文件名,再次输入两个下划线。这样操作后,系统将随机调用文档中的任意一行提示词。接下来,我们还需指定一种风格。
同样,我们复制风格卡的文件名。返回后,使用相同的调用方式,即两个下划线,将文件名嵌入其中,再接两个下划线。这样,我们便结合了动物与风格。接着,预览提示词,关闭采样器后直接运行。此时,屏幕上显示出动物的描述及风格描述。ART后紧跟风格描述。随后,提升文本变化器的输入,直接应用于文本变化器。至于负面提示,稍作修改即可。
我们只需保留一些通用元素即可。这是我们采用该风格生成的图像。显然,这只犀牛看起来有些异常。我们重新生成一次,第二次生成的图像不再是犀牛,而是随机选择了其他动物,例如豹子。安全系数稍高,我们将其调低至3。光线对于豹子来说仍显过强。接下来是小猫的图像。经过几次尝试后,我们可以感受到在艺术表现上的差异。
并不是特别好,只是中规中矩。接下来我们将进行一些变例测试,即一次性生成多张图像,例如4张、10张或5张。我们尝试将队列大小设置为2,生成两张不同的图像。但结果显示,由于我们只传递了一次提示词,系统重复生成了相同的图像。为了实现批处理,我们需要让系统生成多样化的图像。这涉及到使用批次处理,类似于动画制作中使用的FIZZ节点。按照之前的动画流程,我们可能需要手动输入提示词,但这并不方便。我们能否直接将提示词传递给系统,实现自动填写呢?这需要更精细的设置。
首先,我们需要使用Stream的合并功能。在帧节点中,我们可以看到字符串连锁,通过调整可以实现连锁效果,接收的即为提示词。我们可以设置对应的帧,将不同的组件生成不同的内容,传递给不同的帧。例如,我们将第一个组件设置为A,第二个设置为B,并复制这些自动生成提示词的节点。假设我们复制四张,以实现四张不同的图像。在输出字符串时,我们预览输出,可以看到文本前带有关键帧信息,如第0帧、第12帧和第24帧。这样,每个提示词前都生成了帧的格式。
接下来,我们将每一帧设置为单独的提示词,如0123456。我们只需生成四个提示词。然后,我们使用FIZZ批次调度,找到提示词调度器。这样,我们可以将字符串输出提升为变量,设置最大帧数为4,相当于生成4张图像。通过编码器传递,我们可以批量预览各种提示词。设置结束帧为4,最终生成4张图像。打开采样器进行生成,我们可以看到不同风格的动物图像。
接下来,我们尝试生成人物图像。我们可以简单修改,去掉动物的提示词,只保留风格提示词。在批次中,我们可以设置一个置顶的文本,如“beautiful girl”,这样前置文本即为该女孩,后续文本则带有不同风格。再次生成,我们可以看到各种风格的女孩图像,如水彩风格、写实风格等。尽管对于肖像或近景构图效果尚可,但远景效果仍需改进。我们可以尝试添加肖像风格,以观察效果。
之后,我们可以手动调整其风格。逐一修改,去除通用符,选择水彩、幻想风、写实照片和动漫风格。由于效果需要,我们添加一个正向提示词,简单地设置一个正向提示。将我们的女孩添加到附加文本中,并将正向提示词设置到指定文本中。接下来,我们再次添加一个正向提示词,简单地设置一个正向提示。将我们的女孩添加到附加文本中,并将正向提示词设置到指定文本中。接下来,我们再次添加一个正向提示词,简单地设置一个正向提示。
这里我们来看一下这个风格,第一个水彩的,第二个是写实的。
第三个是幻想,第四个是Anime,但并不特别鲜明。接下来,我们尝试使用这只手,微笑着向观众招手,效果只能说一般。这个手多了一根手指,完全无法接受。而这一只也同样不理想。相比之下,这个稍好一些。我们再试一批,发现它们更为粗糙。由此可见,这个模型仅是一个基础模型,对细节的处理并未进行深入调校。接下来,我们将进行宏观分析,进行多模型的比较。在这里,我特意进行了一些调整。
下午时间创建了一个测试工作流,该工作流规模较大,我们可以观察到。
这里放置了三种不同的模型,第一种是SDXL,我使用的是基础版本1.0的SDXL模型。
那么第三个呢就是Cascade,这三个模型生成了三个模型。
我们来对比一下,同时这里我使用的是一键题词的插件,之前在SD中跟大家讲过的这个一键题词。在配置中,自然也是有的,这里可以看到它分为GL以及提示词,不同的通道,可以选择不同的风格、类型、主体,以及emoji表情等,非常丰富。我们需要生成哪一类的,目前还没有更新出专门针对SD3的题词,所以这里我们统一使用SDXL的,因为它包含了GL。第一个宏观提示词,我们可以给到SD的T5这样一个clip。这个题词很简单,我们可以预览一下,它会同时生成三个不同的clip所需的文本,我们直接预览并生成。我们设置任何东西时,它会直接随机选择,如艺术风格、类型、主体等,选好后直接出题词。可以看到我们这边的题词已经出来了,这个插件还是比较好用的,但不能保证题词的精度能适合SD3,所以我在这里做了一些工作。在题词这个组里,我把它需要的所有组件都单独提升出来了,包括随机强度等。
之后,我进行了字符串处理,因为一键提示词生成的提示词可能包含双引号。
这个双引号实际上是ZIF节点的一种特殊格式。我们在这里扩展一下,这是零帧,这是它的处理方式。随后,在零帧后输入的提示词中,如果出现额外的符号,例如提示词中间夹杂了其他字符,该节点将无法正确识别。因此,在字符串操作中,我将所有包含该符号的提示词替换为空,去除了该符号。接着,对提示词的GLI进行了字符串操作测试,最终结果反馈给我们。
刚才我们提到的字符串连接,共提供了7个,因此我创建了7个连接。连接完成后,生成了字符串,我们将其存入缓存,以便保存。在此,我们可以进行预览。最后,我们从缓存中读取数据,包括G和L,而F则代表全局提示词。随后,我们将此对接至下方的生成工作流。此外,我还设置了一个自动负面提示词,这是我们“one button prompt”插件中的功能之一。我们可以看到,这里生成了一个负面提示词。
也给了他们三个流程。具体的方式,SDXL就不用说了,我输入的是G和L的文本。下面的Cascade只有一个文本输入,所以我给到的是全局提示词,即宏观的提示词。对于SD3,我实验性地做了一个提示词的分离。首先,我给它一个宏观的提示词,使用普通提示词的P次节点。同时,我还给它SDXL的L和G输入。最后,将这两个P次进行Combine。因此,这边是SDXL的P次加1.5的P次,一个接收全局宏观,一个接收SDXL。我只能通过这种方式传给它,但更好的方式是使用T5专门的编码器,即文本编码框。然而,由于它是T5专门的编码器,那样一个文本编码框。
由于文本编码框不支持批处理,因此无法进行此操作。希望未来FIZZ能够开启SD3调度功能,预计后续会进行更新,目前尚未更新,因此我们只能暂时使用现有流程。后续步骤与之前相同,即遵循此流程。
然后我们使用这个提示词,随意生成一些内容,首先打开我们的提示词组。
我们将参数设置为7,以生成7张不同的图像。在此之前,我们已关闭其他所有组,以便只生成一个缓存,避免重复调用。目前未设定任何风格主题,系统将随机选择并生成7张图像。生成过程中,系统将逐一提示关键词。生成完成后,所有相关文本将自动标记关键帧。随后,我们可以关闭提示词功能,并开启XL渲染、SD3渲染和Casket渲染。
然后呢,我们来直接渲染声场。
最左边是Cascade,中间是SD3,右边是SDXL。
这三张我觉得Cascade比较好的,那SDXL也很适合。
对于人物而言,Cascade模型更具有风格性,特别是SD3模型。
该作品风格性不强,画面存在问题,可能是由于合并方式不当所致,但整体观感尚可。
可能由于我提供的提示词不准确,我们直接使用单独的提示词更为保险,再进行一批生成。刚才未作标注,因此我表述有误。第一个是SDXL,第二个是SD3,第三个是Cascade。同样是一组车的风景,SD3显得更为中规中矩,无特定风格。第二个是SD3,增加了一个人物,两侧均为车辆,无异常。第三张为人物特写,展示的是SD4。
SD3的权重仍然偏高,需要适当降低至3.5。对于风景图像,SD3表现尚可。第三张尝试了人脸图像,而最后一张与第一张相比略有变形,表明其基础数据质量不佳。由于此类图像非普通人能轻易生成,因此关键在于基础数据的质量。房间的描述较为模糊,导致生成的三张图像风格各异。最后一张图像中的水珠和水滴效果最佳,推荐使用SDXL模型。接下来,我们将继续查看下一组图像。
首先我们来看一组风景。我们来到设置界面,由于翻译插件的问题,我将这些名称进行了修改。但重新加载工作流后,它们又恢复了原样。这是无法避免的,只能重新查找。我们选择一个风景主题。
我们保持其他设置不变,直接生成。初步观察,SDX的表现更为出色。相比之下,SD3的表现较为平淡,但其色彩处理和想象力较为丰富。这主要涉及到风格训练的问题。我们已降低了相应的权重。
还是有一些过,这一张各有特色。接下来,我认为SDXL表现较好,其次是casekit,第三是SD3。通过这样的对比,大家应该能大致了解它们的水平。如果是单独比较提示词,它们并不显得特别突出。最后,我们将进行进一步的测试。
一组人物吧,测试一组女性。
大家应该都喜欢看这位美女,接下来我们进行调整,选择通用选项,其他设置保持不变,再次生成,可以看到效果仍然不尽人意。
一样最好的还是SDXL。要注意我现在用的这个SDXL
XL是基础模型,最原始的Base 1.0的模型。
能体现出来整体的风格。那Cascade呢,稍微有些一般吧。
对于动漫的可以看到它就不太强,而对于SD3真的就不太强。
我怀疑是否配置错误,因为我们使用的是PF8的精度,并非实际的PF8。
是否因为此原因?还有一个问题,即此处的提示词,我提供的是SDXL风格提示词,若提供1.5版本或Cascade风格,我们尝试一下,观察其效果。若此处需提供Cascade的GHL张量,可能导致SDXL调度编码报错,因其张量不一致。
我们将直接统一设置为默认的 SDXL,不再使用其他选项如 G 或 L,取消这些设置,仅提供一个提示词,然后重新生成一轮。
其实用处不太大。
X4D XL 的质量略有下降,Casket 也未进行调整。
而 OUYSD3 呢,仍然表现不佳。相比之下,其他两个模型在各方面都要优于 OUYSD3。因此,OUYSD3 仍然属于基础模型,其风格训练不足。尽管在数据训练上可能更为充分,但直接使用提示词进行测试时,仍显示出明显的差距。
如果我们在此基础上采用这种方式进行丰富,观察是否能得到改善。这是第四章,我们直接复制第四章的提示词,并进行更为精彩的处理。
可以看到,即使使用了该方法,效果仍不理想,具体原因尚不清楚,可能是模型本身的问题,也可能是需要重新下载PF16版本进行尝试。本期内容到此结束。最后,我们将再次复制提示词,因为之前提到liblib支持在线生成,我们将进一步验证这一点。
我们使用liblibartlib3的在线生图功能,直接复制了提示词。
我们直接来生成。可以看到Liblibartlib3的表现还可以。那为什么本地生成的就不行呢?所以现在看来,它还是基础模型,还需要进一步的优化。如果大家还像我一样不甘心,我们之后会详细讨论它具体在哪一方面出了问题。之后我可能会再摸索一段时间,看一看到底它遵循什么规律。不可能比这两个都差。像之前我还是挺侧重于Cascade,我比较喜欢它的感觉。但是经过今天这么一测,其实SD的效果要更好。那么这就是这一期要跟大家分享的内容了。之后我也会把这个工作流发出来。大家如果想实验一下,想跑一下不同的模型或者跑一下不同的流程,具体是什么效果的话,可以用这个工作流。然后大家如果测出来哪些可行性,怎么优化这个模型出的图,也可以在评论区下方多多交流。如果还不太明白的小伙伴也可以加入我们的交流群。有很多大神们一起探讨,有什么问题也能及时解决。那么最后还要说的就是,这个新手不知道去哪下模型,如果有问题的话,可以在评论区下方多多交流。
现在我们可以看到,它现在分为在线生成的V3以及我们刚才使用的高级版V3。高级版V3应该是调用了官方的API,否则效果为何如此出色?如果有兴趣,之后我们可以再对比一下调用官方API和我们本地调用模型是否效果一致或相似。如果不一致,那就说明官方仅开源了其基础模型,通过API调用的是其优化后的高级模型。
现在尝试在Libu的在线生成平台,可以看到它已全面支持SD3模型的调用,这应该是SD3上线最快的在线生成平台。我们将刚才的提示词复制并粘贴到这里,然后对下面的采样器进行设置。由于WebUI与CAPEI存在差异,我们默认选择2M。迭代步数设为25步,提示强度调整为3.5,图片数量增加至3张,以便于对比。
现在我们来生成。这样的结果与API调用相似,差异可能源于conf UI的Noise生成方式与SD的生成方式不同,这一点我们之前已经讨论过。最后可以尝试将生成方式改为SD,看是否有改善。因此,习惯使用web UI的朋友在此处生成还是比较方便快捷的。这就是本期内容。
本期内容已全部分享完毕。若对您有所启发和参考价值,请不要忘记点击关注。后续还将有更多资讯、新闻及应用与大家分享。本期到此结束,下期再见。
通过本篇文章的详细评测与教程,相信大家对最新的Stable Diffusion 3 (SD3) 模型有了更深入的了解。无论是模型的架构改进、性能提升,还是实际使用中的小技巧,我们都进行了全面的覆盖和解析。希望这些内容能为您的AI绘画创作提供帮助和灵感。
如果您觉得本期内容对您有所启发和参考价值,请不要忘记点击关注我们。关注不仅能让您第一时间获取最新的技术资讯和应用指南,还能帮助我们为您提供更优质的内容。此外,您也可以扫描下方的二维码,加入我们的交流社群。群内有众多AI技术爱好者和专业人士,大家可以在这里分享经验、解决疑问、共同进步。
期待与您在社群中交流,我们下期再见!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。