我的笔记

灵感、随想与新技术
24 3月 2023

【入门到精通】AI作图最好用的工具 Comfy UI

通过节点图设计AI生成平面作品

目录

软件介绍

安装

–| 1.下载软件 2.下载模型 3.启动软件 4.更新升级

基本操作

–| 1.生成一张图 2.词法规则 3.节点操作 4.AI作图原理 5.保存工程

高级功能

–| 1.使用Lora 2.使用ControlNet 3.使用Upscale 4.SetArea 5.用不同模型同时绘制多张图

附录

 


软件介绍


节点图是现代3D软件 如Unity、Unreal、Blender中常见的美术设计工具

ComfyUI 通过节点图控制AI生成平面作品

比起 WebUI 它的可控性和自由度更高 更适合商业化的设计场景 更适合设计师 而WebUI比较适合开发者

 


安装


 

1.下载软件

来到软件的Github页 GitHub – comfyanonymous/ComfyUI

点击 “Direct link to download”

下载后解压

 

2.下载模型

来到模型网站 Civitai.com 挑选中意的模型存档(模型左上角是CHECKPOINT)

点进去后下载模型本体(图中CP)

如果提示包含独立的VAE模型(如下图)还要下载它包含的VAE模型(点蓝色的VAE)

下载后放置到 软件解压的目录中.\ComfyUI_windows_portable\ComfyUI\models 里对应的文件夹里

(如 Checkpoint放在checkpoints文件夹里 vae放在vae文件夹里)

 

3.启动软件

软件解压的目录中:

run_cpu.bat 为启动CPU算图的版本(很慢)

run_nvidia_gpu.bat 为启动GPU算图的版本 只支持NVIDIA卡

(其他显卡根据Github上的提示手动配置)

打开后可能会出现下图中防火墙拦截的情况

按照图示允许即可

软件启动成功后会弹出命令行窗口 并自动打开浏览器

(如果没有自动打开浏览器 并且有报错信息 比如找不到xxx的话

修改一下解压后文件夹存放的路径即可 路径尽可能简单 最好全英文 不要有特殊字符 不要太深)

如果浏览器内容是空白的 需要更换Edge或Chrome浏览器访问 http://127.0.0.1:8188

 

4.更新升级

解压后文件夹内的 update 内的 bat 用来更新软件及其依赖

 



基本操作


 

1.生成一张图

在CheckpointLoaderSimple节点上选择刚才下载好的模型

分别在连到 positive 和 negative 的 CLIPTextEncode 里填入 正向提示语 和 负向提示语

点击右边的 Queue Prompt 就开始算图了 默认是512*512的尺寸

 

2.词法规则

2.1 正向与负向

提示语(prompt)有两种 正向的(positive) 和 负向的(negative)

正向提示语描述希望出现在图像里的元素,负向提示语表明不希望出现在图里的东西

 

2.2 内容类型

提示语 可以是一句话 如 “Standing On Narrow City Streets Crossword”

也可以是以逗号分隔的词 “masterpiece, pretty girl, long hair”

 

2.3 权重

权重影响该特征在图中占的比例 或者说 突显的程度

越靠前的提示语权重越大

也可以通加括号调整权重

小括号表示将权重调至当前 1.1 倍 可以迭代 如 ((cute))

大括号为 1.05 倍,中括号为 0.9 

也可以直接指定倍率 如 (cute:1.2)

 

2.4 指定步长

[girl:10] 从10步开始画女孩

[girl::20] 到20步停止停止画女孩

[[girl::20]:10] 从10步到20步画女孩

 

2.5 融合

xx AND yy 同时具有特性xx和yy (大写AND)

xx:1.05 AND yy:0.9 同时具有特性xx和yy 比例为xx1.05 yy0.9

[xx|yy] 融合特性xx和yy

[xx:yy:0.6] 以 前60%后40%的比例 融合特性xx和yy

[xx:yy:10] 以 前10步xx后面步yy 融合xx和yy

 

2.6 自定义提示词

Civitai 的资源中自定义提示词的左上角是Textual Inversion

下载下来 记住它的 Trigger words 触发词

下载后放到软件目录.\ComfyUI_windows_portable\ComfyUI\models 中的 embeddings 文件夹里

使用的时候直接填入Trigger word 触发词 就行了

 

2.7 学习其他人的提示词

Civitai 里大部分模型资源页的下方 都有网友分享的效果图

点开效果图 可以看到这张图用了什么提示语

尺寸、采样方式与步长等参数也会影响作图结果

 

3.节点操作

在节点上拖动可以拖动节点

在空白处拖动则会移动视图

鼠标滚轴放大缩小视图

在空白处双击 搜索并新建节点

在空白处右键 为 菜单

在节点上右键调出节点的菜单

 

每个节点都是 左边输入 右边输出

鼠标从 一个节点的输出 拖拽出来 连接到另一个节点的输入

拖拽期间 可以连接的地方会亮起来 如图

按 F11 切换全屏

 

4.AI作图原理

整个算法由三部分组成 文本翻译器 算图器 和 图片翻译器

首先 文本翻译器(CLIPTextEncode) 把提示语翻译成 AI 听得懂的语言

然后 算图器(KSampler)根据翻译过来的提示语 以 AI 自己的语言算图

最后 图片翻译器(VAEDecoder) 把AI语言里的图像翻译成人类能看懂的图片

三个部分 每一个部分都需要一个模型

所以 一个 Checkpoint 包含三个模型

MODEL 是算图器的模型 CLIP 是文本翻译器的模型 VAE 是图片翻译器的模型

文本翻译器节点需要输入一个 CLIP 模型

算图器 KSampler 节点需要输入一个算图器的模型(model) 以及两个文本提示语翻译后的结果(positive)(negative)

它还需要输入一个画布(latent _image) 这里用 EmptyLatentImage 节点生成的随机噪音就好

(画布可以包含先验信息)

图片翻译器 节点 需要输入算图的结果(samples) 与一个图片翻译器的模型(vae)

 

5.保存工程

在右边的菜单中 可以 保存 和 加载工程 也可以通过 Load Default 加载初始工程

 除此以外 ComfyUI 还会把工程存在导出的 PNG 文件的的元数据里

把PNG拖入节点视图 就可以直接加载生成这张图的原工程

 


高级功能


 

1.使用Lora模型

Lora模型 是一种在已有模型上进行微调的模型

Civitai 上选好模型 下载下来 同样要记住触发词 Trigger word

下载后放到软件目录.\ComfyUI_windows_portable\ComfyUI\models 中的 loras 目录里

右键菜单 点 Add Node 然后 loaders 里新增一个 LoraLoader 节点

选择刚下载的 Lora 模型后 把这个节点接在 CheckpointLoaderSimple 和其他节点之间 然后填入该Lora模型的触发词 就可以了

你可以直接在 LoraLoader 节点上调模型的权重 而不用通过<xx:0.9> 的提示词调整

 

2.使用ControlNet模型

ControlNet 让我们可以用 图片的方式 与 AI 沟通

来到 Civitai 下载对应的模型 搜索controlnet

2.1 姿势

模型页翻到 “版本” 的位置 选择 OpenPose 这个版本 下载

下载后放到软件目录.\ComfyUI_windows_portable\ComfyUI\models 中的 controlnet目录里

右键菜单 conditioning 里新建 ControlNetApply 节点

把它接在文本节点和 KSampler 节点之间

然而这个节点还需要其他两个输入 分别是 ControlNet模型 和 提示图

右键菜单 loaders 里 新建 ControlNetLoader节点

配置 openpose 模型

右键菜单 image 里 新建 LoadImage 节点

配置一张 提示图 就可以开始算图了 效果如下

你可以通过这个在线工具生成姿势图 open pose editor 空白处左键旋转 右键拖动 滚轴缩放 点生成图后点图下载 点骨骼扭动

 

2.2 线稿

线稿也是一样的 先下载模型 放到对应的目录里

节点上配置一下

就可以根据线稿或者涂鸦算图了

 

3.使用Upscale模型

算图的尺寸会对内容元素数量有影响 所以有时需要小尺寸上算完再放大

先下载用来放大的模型 JingyunLiang/SwinIR · GitHub 放到 upscale_models 里

右键 image 里 upscaling 里新建 ImageUpscaleWithModel 节点

把它连在 VAEDecode 和 SaveImage 节点之间

右键菜单 loaders 里面新建 UpscaleModelLoader 节点

配置下载好的模型

如图连接

可以看到已经从 512 放大到了 2048

也可以放大自定义图片 如下图配置

 

4.SetArea

我们可以设定不同特征在图像中作用于不同的区域

右键菜单 conditioning 里新建 ConditioningSetArea 节点

把它连在文本节点和 KSampler 节点之间

设定作用区域 这里xy是距离左边和顶部的距离

克隆 文本节点 和 ConditioningSetArea 节点 我们让左边和右边的描述不一样

右键菜单 conditioning 里新建一个 ConditioningCombine 节点

 如图连接 填上不同的词 效果如下

 

5.用不同模型同时绘制多张图

可以用同一组提示语应用于不同模型同时算图 如图

 


附录


 

CFG Scale 与 Step 对结果的影响

SDE

 

Euler A

 

以上

 

 

上海外滩 – StudioEIM // MapleStory
  1. 上海外滩 – StudioEIM // MapleStory
  2. 神木村 – StudioEIM // MapleStory
  3. MapleStory – StudioEIM // MapleStory
  4. Pantheon – StudioEIM // MapleStory
  5. 逐梦飞翔 – StudioEIM // MapleStory
  6. 魔法密林 – StudioEIM // MapleStory