NAIGC操作手册

七、基础工作流操作教学
1、文生图基础工作流

image.png

工作流名称:文生图 工作流


A、文生图(text2img)使用步骤

在构建text2img网络时,我们分为三个关键阶段:Clip阶段(黄色)、Unet阶段(红色)、以及Vae解码阶段(绿色)。

在这个过程中,节点的创建方式有两种:节点目录方式:通过鼠标右键呼出节点目录,你可以直接从目录中选择所需的节点。

image.png

a)    节点搜索窗口方式:双击鼠标呼出节点搜索窗口,如果你知道节点的名称,可以直接搜索,节省时间。

image.png

b)    一旦节点被创建并连接好,你可以点击面板右侧的工具栏中的 "Queue Prompt",开始生成图片。这个选项位于工具栏的最上方。

c)    要创建连接线,只需使用鼠标点击并拖动节点上的输出输入点即可完成。

通常,节点网络包括以下几个阶段:


B、大模型加载器

首先,右键点击新建节点,选择加载器。你会看到许多加载器选项,它们的名称应该很熟悉。我们将使用的是“Checkpoint加载器(大模型加载器)”。在“Checkpoint名称”位置,选择我们需要的模型。

image.png

C、文本输入节点(CLIP 文本编码器)

a)    接下来,我们需要添加关键词输入节点。CLIP 文本编码器它没有正面和负面关键词的区分,它们都使用一个名为“CLIP 文本编码器”的节点。

b)    我们使用相同的方法,右键点击新建节点,然后选择条件,再选择CLIP文本编码器。我们需要添加两个CLIP文本编码器,一个用于输入正面关键词,另一个用于输入负面关键词。

image.png

c)     由于没有区分正面和负面关键词,我们可以自行修改名称和颜色,以区分它们。在节点上方,右键点击标题,输入名称后确定即可。同样,可以右键点击颜色来修改节点颜色。

image.png

d)    此时你可能会注意到“Checkpoint加载器”和“CLIP文本编码器”上都有一个黄色的连接点,它们都被命名为“CLIP”。我们将它们连接起来,只需将鼠标悬停在其中一个上面,会出现十字标识,然后按住鼠标左键并拖动到另一个节点的相应位置即可连接。

image.png

  注意:我们的Checkpoint加载器只有一个CLIP连接点,而我们需要连接正面和负面提示词。这里需要理解,一个节点可以有多个输出连接点,但作为输入节点,它只能连接一个。

D、采样器

a)    右键点击采样,选择普通采样器。

b)    ksampler节点负责在潜空间生成图片。与Web界面中的生成参数基本相同。

image.png

Ø  随机种子:每张图都有一个随机的编号。

Ø  运行后操作:种子可以是固定、增加(在原来的种子值上+1)、减少、随机。通常我们使用固定和随机。

Ø  步数:设置我们生成这张图需要去除噪音的次数。

Ø  CFG:提示词引导系数,值越大,生成的图像越符合提示词。通常在8左右就足够了。

Ø  采样器:有多个选项可供选择。我们需要在使用Web UI时进行选择。我会在后面的时间里逐一介绍它们的区别。通常我会选择euler_ancestral(Web UI中的Eulera)、dpmpp_2m(DPM++ 2m)、dpmpp_2m_sde_gpu。

Ø  调度器:每一次迭代步数中控制噪声量大小的因素。一般我们选择normal或karras。

Ø  降噪:与步数有关,1表示我们完全按照上方输入的步数进行处理,0.1表示10%。在这里我们填写1。

  此时,左侧会显示四个可连接点:“模型”、“正面提示词”、“负面提示词”和“Latent”。

  分别将“模型”和“Checkpoint加载器的模型”连接,“正面提示词”和“正面提示词的条件”连接,“负面提示词”和“负面提示词的条件”连接。此时还剩下一个“Latent”连接点,我们将其用于连接控制生成图像宽高的节点。


E、宽高(空Latent)

点击“Latent”并拖动到外部,然后选择“空Latent”以添加节点并进行连接。

image.png

SD1.5模型:常用512X768

SDXL模型:使用1024X1024,或者1024X1536


F、VAE解码

a)    在Vae解码阶段,生成的图片从潜空间转换成RGB色彩空间。解码节点可以链接不同的VAE以获得不同的解码结果。

b)    右键点击新建节点,选择Latent,然后选择VAE解码。你也可以直接拖动方式添加。

c)    将“VAE解码的Latent”连接到“采样器的Latent”上,此时左侧会剩下一个VAE。

d)    我们可能注意到,“Checkpoint加载器”还剩下一个“VAE”未连接,我们将它与另一个VAE连接起来。可以选择直接连接大部分大模型中包含的VAE模型。

image.png

G、保存图像

a)    右键点击新建节点,选择图像,然后选择保存图像(或者直接拖动添加)。

b)    这里有两种选择:“保存图像”和“预览图像”。

c)    预览节点用于预览图片,但不会保存它们。

d)    保存图像具有将生成的图像保存到“NAIGC下的output”文件夹的功能。

image.png

H、生成图片

  现在,我们已经连接了所有节点,接下来输入关键词,调整模型、LORA,VAE,步数、宽高等参数。然后,点击右侧设置面板中的“提示词队列”,或者使用快捷键“Ctrl+Enter”来生成图像。

  在生成图像的过程中,你可以看到当前进行到哪一步,哪一个节点会被显示为绿色的框,这非常方便我们熟悉工作流程。

image.png

image.png

2、图生图基础流程

image.png

工作流名称:图生图 工作流

和SD webUI的图生图一样,NAIGC也支持图片输入,即输入形式为图片,再结合图片反推WD14 tagger,可实现输入图片为参考自动转为提示词。

  下面这个图就是典型的1.5模型生成过程,SD的核心来源于Latent Diffusion这个工作。

image.png

SD在UNet中引入text condition来实现基于文本生成图像。它先采用一个autoencoder将图像压缩到latent空间。然后用扩散模型来生成图像的latents,最后送入autoencoder的decoder模块就可以得到生成的图像。

图生图的流程:

image.png


输入:图像 + prompt

输出:图像

这个流程的本身,就是加入了一个图像的参考。流程的本质就是让图像变成一个latent的输出。

图生图工作流示例:

其中Load Checkpoint模块代表对SD模型的主要结构进行初始化(VAE,U-Net),CLIP Text Encode表示文本编码器,可以输入prompt和negative prompt,来控制图像的生成,Load Image表示输入的图像,KSampler表示调度算法以及SD相关生成参数,VAE Encode表示使用VAE的编码器将输入图像转换成低维度的隐空间特征,VAE Decode表示使用VAE的解码器将低维度的隐空间特征转换成像素空间的生成图像。

与文字生成图片的过程相比,图片生成图片的预处理阶段,先把噪声添加到隐空间特征中。我们设置一个去噪强度(Denoising strength)控制加入多少噪音。如果它是0,就不添加噪音。如果它是1,则添加最大数量的噪声,使潜像成为一个完整的随机张量,如果将去噪强度设置为1,就完全相当于文本转图像,因为初始潜像完全是随机的噪声。

image.png

  对比文生图的流程可以就可以发现,文生图的流程里面用到了上图的空latent,也就是潜空间信息是空的,而图生图里面则有很多来自图片的信息。

本质上,文生图的流程是主要把文本作为模型的参考生成;而图生图则是把图像的信息和文本的信息给到了模型去参考生成。


3、FaceDetailer 面部修复工作流

   人脸修复神器ADetailer在NAIGC中无法使用,在NAIGC中比较常用的是FaceDetailer插件来进行人脸修复。

SD的WebUI 中的面部修复神器 ADetailer,无法在NAIGC 中使用。那么如何在NAIGC中进行面部处理呢?NAIGC 中也有几个面部修复功能,比如ComfyUI Impact Pack、FaceDetailer,以及换脸插件Reactor和IPAdapter。对于普通用户来说,FaceDetailer是比较简单的方式。本章介绍在NAIGC中使用FaceDetailer来进行面部修复。

image.png

工作流名称:faceID 工作流

示范样例:

模型:majicMIX-realistic-麦橘写实-v7.safetensors

正面提示词:Low angle shooting, ultra wide angle shooting),absurd   resolution,super high resolution,(masterpiece:1.2),a girl,long hair,messy   hair,off shoulder dress,flowing silk,pleated dress,beautiful   face,smile,lavender garden,sky,clouds,blue and pink flowers,full body,dynamic   motion,best picture quality,look up,ultra wide angle,fisheye,lens focus,ultra   realistic and detailed,high detail texture,Ultra high quality,16k,

低角度拍摄、超广角拍摄、超高清分辨率、超高分辨率、(杰作:1.2)、女孩、长发、凌乱的头发、露肩连衣裙、飘逸的丝绸、褶皱连衣裙、美丽的脸庞、微笑、薰衣草花园、天空、云朵、蓝色和粉色的花朵、全身、动态动作、最佳画质、抬头、超广角、鱼眼镜头、镜头聚焦、超现实且细节丰富、高细节纹理、超高质量、16K,

负面提示词:nsfw,logo,text,badhandv4,EasyNegative,ng_deepnegative_v1_75t,rev2-badprompt,verybadimagenegative_v1.3,negative_hand-neg,mutated   hands and fingers,poorly drawn face,extra limb,missing limb,disconnected   limbs,malformed hands,ugly,

不适合在工作场合观看(NSFW),有标志,有文字,badhandv4,EasyNegative,ng_deepnegative_v1_75t,rev2-badprompt,verybadimagenegative_v1.3,negative_hand-neg,变异的手和手指,画得不好的脸,多余的肢体,缺失的肢体,断开的肢体,畸形的手,丑陋,

image.png

连线:将模型连线到提示词,提示词连接到K采样器

image.png

加载FaceDetailer的工作流,调出面部细化节点:SAM 加载器 和 检测加载器 节点,以及内置在FaceDetailer加载器里了,不需要另外设置.(这些参数我都是用默认值,没有修改)

image.png

  同样的将模型,提示词,采样器,VAE连好线,点击运行:

  原图和修复后的图片对比:

image.png

4、高清修复的工作流

高清放大,是AI绘画和视频处理中最为基础而又关键的特效之一。在NAIGC中,学会如何实现高清放大成为不可或缺的技能。

在实现高清放大的过程中,主要涉及到两种方法:LATENT(潜空间)系的放大和外置模型的放大。而在NAIGC里,这两者的区别十分明显。

让我们简单了解一下工作流程:

A.    输入:prompt/(图像 + prompt)

B.    输入:图像

image.png

工作流名称:Advanced_HiRes_Fix高清修复

 image.png

这其中,Load Checkpoint模块代表对SD模型的主要结构进行初始化(VAE,U-Net)。CLIP Text Encode表示文本编码器,可以输入prompt和negative prompt,来控制图像的生成。Empty Latent Image表示初始化的高斯噪声,Load Upscale Model表示对超分辨率重建模型进行初始化。KSampler表示调度算法以及SD相关生成参数,VAE Decode表示使用VAE的解码器将低维度的隐空间特征转换成像素空间的生成图像,最后,Upscale Image表示将生成的图片进行超分。

示范样例:

模型:majicMIX-realistic-麦橘写实-v7.safetensors

正面提示词:huge   filesize,wallpaper,reality,realistic,photo_(medium),highly detailed,rich in   details,detailed background,Detailed explanation,high details,natural   colors,realistic texture,extremely detailed,photorealistic,intricate   details,high clarity,intricate,masterpiece,best quality,1girl,druid,

负面提示词:sketches, (worst quality:2), (low quality:2),   (normal quality:2), lowres, bad anatomy, ((bad hands)), text, error, missing   fingers, extra digit, fewer digits, cropped,jpeg artifacts, signature,   watermark, username, blurry,

image.png

在ksampler和VAE之间,简单增加upscale latent模块,就可以轻松实现图像的1.5倍放大。这是一种简单而高效的方法。

                        image.png      而如果选择使用外置模型放大,流程则稍显不同。在这个参考工作流程中,我们可以看到,外置模型放大的步骤是放在VAE decoder之后。换言之,首先生成低分辨率的图像,然后再基于这张图再次进行放大。

image.png


在NAIGC中,WEBUI上常见的各种方法,即增加细节的放大,都已经被集成到一个节点里。这些方法在处理图像时起到了至关重要的作用。

  然而,是否还有更复杂的放大方法呢?答案是肯定的。有一种方法是使用两个不同的模型进行放大,然后再通过imageblend的融合算法,将这两张分别放大的图片合成在一起。这样的做法能够最大限度地保留和增加图像的细节。

image.png

image.png

5、LORA接入工作流

节点式工作流生态很有魅力的一个因素是生态中有很多不同类型的lora,供玩家们组合。

image.png

工作流名称:lora工作流

本章节介绍LORA的使用方法:

加载LORA模型:

需要在加载主模型之后加载LORA模型。涉及的节点包括了模型加载器、clip文字编码器,设置好相关的参数。

  从上面的工作流程图中,可以看到LORA加载器被加载了两次,分别对应两个不同的lora模型(可以是一个人物lora+场景风格lora)。有需要的话也可以添加更多LORA模型。

image.png

范例提示词:

正向提示词:

best   quality),((masterpiece)),(highres),1girl,blush,(seductive   smile:0.8),star-shaped pupils,red china hanfu,hanfu,chinese clothes,hair   ornament,necklace,jewelry,Beautiful face,

负面提示词:

ng_deepnegative_v1_75t, badhandv4, (worst   quality:2), (low quality:2), (normal quality:2), lowres, ((monochrome)),   ((grayscale)), watermark, (bad-hands-5:1.1)   (Unspeakable-Horrors-Composition-4v:1.1)

image.png

KSampler采样器:编码后的文本提示将传递到KSampler,这是一个生成模型的组件。在采样器中设置种子、步骤数、配置等参数来影响生成的图像质量和样式。

  图像解码:生成的潜在图像会传递到VAE解码器,将这些向量解码成可视的图像。

image.png

  生成的效果:使用普通工作流生成的图片,没有经过面部修复和高清放大,人像效果都是比较差的,如下图:

image.png

AI绘画离不开lora模型,学会lora工作流节点,才能灵活应用。


6、效率工作流

可以使用效率加载器来使用lora,并且生成的人脸后进行高清修复:

image.png

工作流名称:HiResFix Script

安装方法:

NAIGC管理器 中搜索efficiency,点击安装(安装完成后要重启)

image.png

基础的工作流(lora,CLIP文本编辑器),往往需要连接多个节点,对于新用户来说,入门NAIGC有较高的使用门槛。

  我们先来看下最简单的一个文生图的工作流,最简单的工作流都有这么多节点,还要把这么多节点连起来,对于刚入门的小白来说还是有些复杂的。

image.png

使用Efficiency插件后,工作流可以做减法:

image.png

鼠标右键新建节点,效率节点,分别加载效率加载器和采样器。

新建节点->效率节点->堆栈->LORA堆

image.png

新建节点->效率节点->加载器->效率加载器|效率加载器(SDXL)

image.png

新建节点->效率节点->采样-> K 采样器(效率)| K 采样器(SDXL 效率)

image.png

效率加载器中的参数包含了基本文生图的参数,Lora 模型。并且可以自由设置启用几个lora。

image.png

脚本:XY图表、高清修复、分块采样放大

image.png

我们使用官方提供的工作流来测试:

HiRes-Fixing 高清修复

image.png

SDXL Refining & Noise Control Script

image.png

XY Plot: LoRA model_strength vs clip_strength

image.png

  Stacking Scripts: XY Plot + Noise Control + HiRes-Fix

image.png

      Stacking Scripts: AnimateDiff + HiRes-Fix (with ControlNet)

image.png

 Tiled Upscaler Script

image.png