Skip to content

Commit

Permalink
更新 ComfyUI 绘画指南
Browse files Browse the repository at this point in the history
  • Loading branch information
licyk committed Jul 18, 2024
1 parent 641a2b1 commit acc2abe
Show file tree
Hide file tree
Showing 26 changed files with 241 additions and 93 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
49 changes: 0 additions & 49 deletions docs/guide/comfyui/base_workflows.md

This file was deleted.

35 changes: 0 additions & 35 deletions docs/guide/comfyui/basic_logic.md

This file was deleted.

156 changes: 156 additions & 0 deletions docs/guide/comfyui/build_workflow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
---
title: 搭建工作流
---
# 搭建工作流
下面将展示在 ComfyUI 如何搭建基本的工作流,下面演示的工作流可通过下载工作流图片后导入进 ComfyUI 中。


## 文生图
![text2img](../../assets/images/guide/comfyui/build_workflow/text2img.png)

!!!note
工作流所使用的大模型:[animagine-xl-3.1](https://modelscope.cn/models/licyks/sd-model/resolve/master/sdxl_1.0/animagine-xl-3.1.safetensors)[(Civitai)](https://civitai.com/models/260267)。模型下载后放入`ComfyUI/models/checkpoints`文件夹中。


这是一个简单的文生图工作流。

Checkpoint加载器 节点用于加载大模型,可以看到这个节点有 3 个输出接口,模型、CLIP、VAE,这代表了大模型中主要的 3 个组件。

接下来看看 CLIP文本编码器 节点,这里是用于输入你的提示词的地方,该节点将输入的提示词编码成大模型可以理解的 Token,让大模型知道该如何生成图像。

下一个节点是 K采样器 节点,该节点将模型作为输入,然后从 CLIP文本编码器 节点解析的 Token 将输入到这个节点上,最后通过 空Latent 节点生成一张潜空间图像输入进 K采样器 节点,这时就可以进行图像生成。K采样器 根据种子在潜空间图像上生成噪声,通过采样器在这张噪声图上进行降噪,根据提示词的提示内容逐步降噪,生成想要的图像,降噪完成后通过 Latent 接口输出潜空间图像。

潜空间图像将进入 VAE解码 节点进行解码,再从 Checkpoint加载器中输入 VAE 作为解码器。因为潜空间图像并不是人能够理解的图像,所以需要通过 VAE 将潜空间的图像转换成像素空间的图像,也就是人能够看得懂的图像,

解码完成的图像将输入到 保存图像 节点进行保存,保存好的图像可以在`ComfyUI/output`文件夹中看到,这就是简单的文生图工作流。


## 图片放大
通常情况下使用文生图生成的图像分辨率较小,看起来不是很清晰,所以通过图片放大工作流将生成的图像进行放大,提高图像的清晰度,下面的图片放大工作流将在文生图工作流的基础上修改。

### 潜空间放大
![latent_upscale_image](../../assets/images/guide/comfyui/build_workflow/latent_upscale_image.png)

这是潜空间图像放大图像的工作流。

从 K采样器 节点输出的潜空间图像输入到 Latent按系数缩放 节点,该节点将潜空间图像进行放大,再输入到下一个 K采样器 节点中,在这个 K采样器 节点中,要注意调节 降噪 这个参数的值(这和在 Stable Diffusion WebUI 中的重绘幅度一样),使用潜空间放大时降噪值建议 > 0.55。在放大流程中,

因为图片的分辨率变高了,生成图片所需的时间会更长,如果需要减少图片生成时间,可以调节 K采样器 节点的 步数,推荐步数为`文生图使用的步数 x 放大时使用的降噪值 + 1`


### 放大模型放大
![esrgan_upscale_image](../../assets/images/guide/comfyui/build_workflow/esrgan_upscale_image.png)

!!!note
工作流中使用的放大模型:[RealESRGAN_x4plus_anime_6B](https://modelscope.cn/models/licyks/sd-upscaler-models/resolve/master/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth)。模型下载后放入`ComfyUI/models/upscale_models`文件夹。


使用放大模型(ESRGAN)进行图片放大时,因为 ESRGAN 的运行需要在像素空间中进行,所以需要将潜空间图像通过 VAE 转换为像素空间后再进行放大,但是 K采样器 节点只能输入潜空间图像,所以需要将放大后的图像通过 VAE 从像素空间转换为潜空间,再输入进 K采样器 节点。


## 图生图
![img2img](../../assets/images/guide/comfyui/build_workflow/img2img.png)

图生图工作流和文生图的工作流类似,但是 K采样器 节点的 Latent 输入不是通过创建一个空 Latent 后进行输入,而是通过一个 加载图像 节点加载一张图像,再通过 VAE 转换成潜空间图像后再输入进 K采样器 节点中。

![input_to_img2img_workflow](../../assets/images/guide/comfyui/build_workflow/input_to_img2img_workflow.jpg)

把这张图导入到 加载图像 节点中,通过 加载图像 节点导入的图像将保存到`ComfyUI/input`文件夹中。

然后在 K采样器 节点中使用低于 1 的降噪值进行生图,可以发现生成出来的图像和原图保持一定的相似性。


## 局部重绘
![inpaint](../../assets/images/guide/comfyui/build_workflow/inpaint.png)

局部重绘的工作流和图生图的工作流类似,只是导入 加载图像 节点的图像带有透明通道,也就是绘制蒙版后的图片。蒙版图片可以通过 Photoshop 进行制作,也可以使用 ComfyUI 自带的蒙版编辑器进行制作。

![input_to_inpaint_workflow](../../assets/images/guide/comfyui/build_workflow/input_to_inpaint_workflow.jpg)

将这张图片导入到 加载图像 节点中,用鼠标右键 加载图像 节点,可以看到右键菜单有个 在遮罩编辑器中打开 选项,点击该选项即可打开遮罩编辑器。

![open_mask_editor](../../assets/images/guide/comfyui/build_workflow/open_mask_editor.jpg)

在遮罩编辑器中使用画笔绘制遮罩,绘制遮罩的部分将会被重绘。遮罩绘制完后,点击右下角的 Save to node 选项将绘制遮罩完成的图片保存到该节点中。

![mask_editor](../../assets/images/guide/comfyui/build_workflow/mask_editor.jpg)

调节 K采样器 节点的降噪值,再运行工作流,可以看到遮罩部分已经被重绘成提示词描述的样子了。


## 图片区域扩充
![outpainting](../../assets/images/guide/comfyui/build_workflow/outpainting.png)

局部重绘也可以用作扩充图像,在 加载图像 节点导入该图像。

![input_to_inpaint_workflow](../../assets/images/guide/comfyui/build_workflow/input_to_inpaint_workflow.jpg)

将 加载图像 节点的输出连接到 外补画板 节点,该节点的参数改成要往外扩的大小,再将该节点的输出连接到 VAE 内补编码器 节点进行潜空间转换,再输入进 K采样器 节点。注意,K采样器 节点的降噪值需调至 1,提示词改成扩图区域的描述。

运行工作流后可以看到图片的左右区域进行了扩充。


## 使用 LoRA 模型
![loading_lora_models](../../assets/images/guide/comfyui/build_workflow/loading_lora_models.png)

!!!note
工作流使用的 LoRA / Lycoris 模型:
1. [guzhengSY3](https://modelscope.cn/models/licyks/sd-lora/resolve/master/sdxl/motion/guzhengSY3-000024.safetensors)[(Civitai)](https://civitai.com/models/332501/guzheng)
2. [a31_style_koni](https://modelscope.cn/models/licyks/sd-lora/resolve/master/sdxl/style/a31_style_koni-000010.safetensors)[(Civitai)](https://civitai.com/models/393294/famous-nai3-prompts-style)
将模型下载后放入`ComfyUI/models/loras`文件夹。

这是一个加载 LoRA 模型的工作流。

LoRA 模型用于大模型的微调,所以 LoRA加载器 节点连接 Checkpoint加载器 节点的模型和 CLIP 输出。


## 使用 Embedding 模型
![loading_embedding_model](../../assets/images/guide/comfyui/build_workflow/loading_embedding_model.png)

!!!note
工作流使用的 Embedding 模型:[negativeXL_D](https://modelscope.cn/models/licyks/sd-embeddings/resolve/master/sdxl/negativeXL_D.safetensors)[(Civitai)](https://civitai.com/models/118418/negativexl)
模型下载后放入`ComfyUI/models/embeddings`文件夹。

Embedding 通过提示词进行加载,提示词的格式有以下几种:
1. `embedding:model_name`
2. `embedding:model_name.pt`
3. `embedding:model_name.safetensors`
4. `(embedding:model_name:1.3)`


## 分区提示词
![area_composition](../../assets/images/guide/comfyui/build_workflow/area_composition.png)

这个工作流通过分区提示词描述画面,分别控制图片区域内的元素。

在这个工作流中,整张图片的分辨率为 1488 x 1248,通过分区把图片分成了两部分,每个分区的分辨率都为 744 x 1248。

分区 1 的提示词描写人物的特征和动作,分区 2 的提示词描写另一个人物的特征和动作。

CLIP文本编码器输出的条件通过 条件采样区域 节点进行控制,该节点的宽度和高度调整分区提示词在整张图片中所控制的分辨率大小,X 和 Y 则是控制分区在整张图片的位置。在 ComfyUI 中,XY 轴的零点位于图片的左上角,从零点向右是 X 轴的正方向,从零点向下为 Y 轴的正方向。所以该工作流中分区 1 控制整张图片的左半部分,分区 2 控制图片的右半部分。

全局的提示词描写图片的背景和其他信息,最后将这些提示词的控制条件通过 条件合并 节点进行合并,再输入进 K采样器 节点中进行图片生成。


## 潜空间合并
![noisy_latent_composition](../../assets/images/guide/comfyui/build_workflow/noisy_latent_composition.png)

潜空间合并的工作流和分区提示词工作流类似,但是该工作流先通过低步数分区绘制得到不同的潜空间噪声图,把潜空间噪声图合并在一起后再进行最后的采样。

不过这种方法不能很好的区分人物的特征,可能会造成不同人物的特征混在一起。


## ControlNet 应用
![multi_controlnet](../../assets/images/guide/comfyui/build_workflow/multi_controlnet.png)

!!!note
工作流使用的 ControlNet 模型:[controlnet-union-sdxl-1.0-promax](https://modelscope.cn/models/licyks/sd_control_collection/resolve/master/xinsir-controlnet-union-sdxl-1.0-promax.safetensors)[(HuggingFace)](https://huggingface.co/xinsir/controlnet-union-sdxl-1.0)

这个工作流演示了如何在 ComfyUI 使用 ControlNet 模型控制图片生成。

ControlNet 使用图片作为控制条件控制图片的生成,和提示词共同控制图片的生成。在这个工作流中从 CLIP文本编码器 节点输出的条件进入 ControlNet应用 节点,该节点将输入的控制图片(经过 ControlNet 预处理器处理后的图片)作为控制条件,再将条件输出到 K采样器 节点中,此时图片的生成就由提示词和 ControlNet 共同控制,使出图效果更可控。

下面是导入进 ControlNet 的图片。

|![pose](../../assets/images/guide/comfyui/build_workflow/pose.jpg)|![lineart](../../assets/images/guide/comfyui/build_workflow/lineart.jpg)|
|---|---|
12 changes: 7 additions & 5 deletions docs/guide/comfyui/index.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
---
title: Comfyui概述
title: 概述
---
# 概述

ComfyUI使用户能够通过链接不同的块(称为节点)来构建复杂的图像生成工作流程。这些节点可以包括各种任务,如加载检查点模型(checkpoint loader)、输入提示、指定采样器等。
ComfyUI 使用户能够通过链接不同的块(称为节点)来构建复杂的图像生成工作流程。这些节点可以包括各种任务,如加载检查点模型(checkpoint loader)、输入提示、指定采样器等。

ComfyUI以其快速、流畅的图像生成能力,以及对低配置设备的友好性,迅速在创作者中流行起来。
ComfyUI 以其快速、流畅的图像生成能力,以及对低配置设备的友好性,迅速在创作者中流行起来。

ComfyUI的一个亮点是能够一键加载别的创作者分享的工作流,让用户轻松实现人像生成、背景替换和图片动画化等功能。它提供了极高的自由度和灵活性,支持高度的定制化和工作流复用,同时对系统配置的要求较低,生成速度相对较快。
ComfyUI 的一个亮点是能够一键加载别的创作者分享的工作流,让用户轻松实现人像生成、背景替换和图片动画化等功能。它提供了极高的自由度和灵活性,支持高度的定制化和工作流复用,同时对系统配置的要求较低,生成速度相对较快。

ComfyUI的节点分为官方原生节点和用户开发的自定义节点。官方原生节点是ComfyUI开发团队提供的一系列基础节点,而自定义节点则可以根据自己的需求开发,目前社区成员已经贡献了大量的自定义节点。
ComfyUI 的节点分为官方原生节点和用户开发的自定义节点。官方原生节点是 ComfyUI 开发团队提供的一系列基础节点,而自定义节点则可以根据自己的需求开发,目前社区成员已经贡献了大量的自定义节点。

在学习使用 ComfyUI 前,请确保您已经能够熟练地使用 Stable Diffusion WebUI,并了解了生图中不同参数的作用。非常不建议初次接触 AI 画图时从 ComfyUI 开始学习。
1 change: 0 additions & 1 deletion docs/guide/comfyui/install.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
title: ComfyUI 部署
---

## 部署
部署 ComfyUI 可以通过以下途径。

Expand Down
73 changes: 73 additions & 0 deletions docs/guide/comfyui/interface_operation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: 界面操作
---
# 简述
ComfyUI 的界面和 Stable Diffusion WebUI 的界面完全不相同,在 ComfyUI 中,每个功能都被拆散成一个个节点,通过连接不同的节点搭建起一个完整的生图流程。

![comfyui_interface](../../assets/images/guide/comfyui/interface_operation/comfyui_interface.jpg)


## 前期配置
如果 ComfyUI 未安装扩展管理器和中文翻译扩展,建议通过以下几种方式进行安装。


### 使用绘世启动器安装
打开绘世启动器的 版本管理 -> 安装新扩展,分别搜索 ComfyUI-Manager 和 AIGODLIKE-COMFYUI-TRANSLATION 并下载安装。

### 使用 Git 命令安装
进入 ComfyUI 的 custom_nodes 文件夹中,打开终端,输入以下的命令安装 ComfyUI-Manager 和 AIGODLIKE-COMFYUI-TRANSLATION 扩展。

```
git clone https://github.com/ltdrdata/ComfyUI-Manager
git clone https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION
```

安装后重新启动 ComfyUI。


## 设置中文
安装以上的插件后,在 ComfyUI 界面右侧栏可以看到 Manager 按钮,说明扩展管理器已经成功安装,但是通常情况下 ComfyUI 中文翻译扩展安装后并不会自动设置 ComfyUI 界面为中文,需要手动设置。

在 ComfyUI 侧边栏点击右上角的齿轮按钮进入 ComfyUI 设置,找到 AGLTranslation-language 选项,选择 中文[Chinese Simplified] 后 ComfyUI 将自动重启,此时 ComfyUI 的界面就切换成中文了。


## 快捷键
以下为操作 ComfyUI 界面的快捷键。

|操作|作用|
|---|---|
|鼠标滚轮|缩放工作流的大小。|
|鼠标右键|打开节点列表。|
|鼠标左键双击|打开节点搜索列表。|
|Ctrl + Enter|运行当前的工作流|
|Ctrl + Shift + Enter|将当前的工作流作为运行列表里第一个被运行的工作流|
|Ctrl + Z|撤销工作流更改|
|Ctrl + Y|重做工作流更改|
|Ctrl + S|保存工作流|
|Ctrl + O|导入工作流|
|Alt + C|折叠 / 取消折叠选中的节点。|
|Ctrl + M|禁用 / 激活选中的节点。|
|Ctrl + B|使被选中的节点在工作流运行时被绕过。|
|Delete / Backspace|删除选中的节点。|
|Ctrl + 右 Ctrl + Backspace|清除当前的工作流。|
|Space + 移动鼠标|移动画布。|
|Ctrl + 鼠标左键单击|多选节点。|
|Shift + 鼠标左键长按|拖动选中的多个节点。|
|Ctrl + C / V|复制 / 粘贴选中的节点(不复制节点的连线)。|
|Ctrl + Shift + C / V|复制 / 粘贴选中的节点(同时复制节点的连线)。|
|Ctrl + D|加载默认的工作流。|
|Alt + `+`|放大工作流。|
|Alt + `-`|缩小工作流。|
|Q|显示当前运行的工作流队列。|
|H|显示历史工作流。|
|R|刷新工作流。|


## 节点操作
在节点的左侧接口为输入点,节点右侧的接口为输出点,鼠标按住接口并向外拖动可以看到延伸出来的线,将线拖到匹配这个线的接口上可完成不同节点之间的连接。

右键节点可以看到该节点的编辑功能。


## 侧边栏
ComfyUI 的侧边栏包含了一些快捷按钮,如 添加提示词队列,这个按钮就类似 Stable Diffusion WebUI 中的生成按钮。
2 changes: 2 additions & 0 deletions docs/guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
title: 前言
---
本文档为刚接触 Stable Diffusion 绘画的小白提供一个自助指南,学习 AI 绘画相关知识。

在初次接触 AI 绘画时,使用 Stable Diffusion WebUI 进行学习,当完全掌握 Stable Diffusion WebUI 的使用方法并理解 AI 绘画中不同参数的作用后,可以尝试学习 ComfyUI,但是不推荐在开始接触 AI 绘画时就使用 ComfyUI 进行学习。
Loading

0 comments on commit acc2abe

Please sign in to comment.