Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix typo #197

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pages/basics/comfyui-foundation.zh-CN.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ import {FAQBox} from "components/FAQ";

- **同类相连**:只有同类才能相互连接起来,比如 KSampler 左侧的 model 端点,就只能跟另一个 MODEL 输出点相连。或者跟具象点说,只有同颜色的端点能相连,如果你将 CLIP Text Encode 右边橙色的点,连到 KSampler 的紫色点 model 上是不可能的。因为他们类型不一样。橙色点只能跟橙色点连。另外,还有一个技巧,当你点击端点并拉出一条线的时候,只有那些能连接的线会高亮出来,不能连的会变暗。

- **左进右出**:比如 KSampler 左边的 model、positive、negative、latent_image 都是是输入端,输出端是右边的 LATENT。你可以将其理解为一个函数,左边输入数字,右边是输出。那也就意味着你不能将一个节点右边的输出端,连到另一节点右边的输出端。
- **左进右出**:比如 KSampler 左边的 model、positive、negative、latent_image 都是输入端,输出端是右边的 LATENT。你可以将其理解为一个函数,左边输入数字,右边是输出。那也就意味着你不能将一个节点右边的输出端,连到另一节点右边的输出端。

- **一进多出**:一个输入端只能和另一个节点的输出端相连,没法和多个输出端相连。比如上图中的 KSampler 的 positive 端点,只能和一个 CLIP Text Encode 相连,没法同时连多个。但一个输出端,能和多个输入端相连。还是上面那个例子,一个 CLIP Text Encode 可以和多个 KSampler 相连,比如可以和 KSampler A 的 positive 端连,也可以和 KSampler B 的 negative 点连,最后出两张图。

Expand Down
4 changes: 2 additions & 2 deletions pages/basics/stable-diffusion-foundation.zh-CN.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Stable Diffusion(稳定扩散)严格说来它是一个由几个组件(模


1. 首先,用户输入的 Prompt 会被一个叫 <mark>Text Encoder(文本编译器)</mark>的东西编译成一个个的词特征向量。此步骤下会输出 77 个等长的向量,每个向量包含 768 个维度。后续我会展开讲讲这些向量的作用,现在各位可以简单将其理解为「将文本转化为机器能识别的多组数字」。
2. 接着,这些特征向量会和一张随机图(可以简单理解这是一张布满电子雪花的图,或充满信息噪声的图),一起放到 Image Information Creator 里。在这一步,机器会将这些特征向量和随机图先转化到一个 <mark>Latent Space(潜空间)</mark>里,然后根据这些特征向量,将随机图「降噪」为一个「中间产物」。你可以简单理解,此时的「中间产物」是人类看不懂的「图」,是一堆数字,但此时这个中间产物所呈现的信息已经是是一只站在城堡上的猫了
2. 接着,这些特征向量会和一张随机图(可以简单理解这是一张布满电子雪花的图,或充满信息噪声的图),一起放到 Image Information Creator 里。在这一步,机器会将这些特征向量和随机图先转化到一个 <mark>Latent Space(潜空间)</mark>里,然后根据这些特征向量,将随机图「降噪」为一个「中间产物」。你可以简单理解,此时的「中间产物」是人类看不懂的「图」,是一堆数字,但此时这个中间产物所呈现的信息已经是一只站在城堡上的猫了
3. 最后,这个中间产物会被 <mark>Image Decoder(图片解码器)</mark>解码成一张真正的图片。

如果将以上的三大步骤可视化的话,会是这样:
Expand Down Expand Up @@ -98,7 +98,7 @@ Stable Diffusion(稳定扩散)严格说来它是一个由几个组件(模
* 首先,在 Denoise 里有一个 Noise Predictor(噪音预测器),顾名思义,它就是能预测出随机图里包含什么噪音的模型。除了输入随机图和 Prompt 的词特征向量外,还需要输入当前的 Step 数。虽然在上面的可视化流程中,你会看到很多个 Denoise,但实际程序运行的是同一个 Denoise,所以需要将 Step 告知 Noise Predictor 让其知道正在进行哪一步的预测。
* 然后,我们先来看橙色的线,Noise Predictor 会使用随机图(比如一张<mark> 4 X 4 </mark>的图)和 Prompt 的词特征向量预测出一张噪声图 B。注意,这里不是根据预测输出实际的图,而是一张噪声图。换句话来说,Noise Predictor 是根据词向量预测这张随机图里有哪些不需要的噪声。如果拿前面的雕刻的例子来类比,它输出的是雕刻雕像所不需要的废料。于此同时,Noise Predictor 还会使用不包含 Prompt 的词特征向量预测出一张噪音图 C(也就是图中的蓝色线)。
<Callout emoji="💡">
你可能好奇,为何我要高亮 4 X 4?回看完整的 Denoise 的流程,你会发现,开始的时候,随机图是 4 X 4,结果也是 4 X 4,这就意味着如果你想要改变最终生成图像的比例,或者是大小,你需要修改这个随机图的比例或大小,而不是通过 Prompt 下达调整的指令。用雕刻来类比,会很好理解,用 1 立方米的石头进行雕刻,不管雕刻师技艺有多好,都没法雕刻出一个高 10 米的雕像。它最多只能雕刻一个高 1 米的雕像。
你可能好奇,为何我要高亮 4 X 4?回看完整的 Denoise 的流程,你会发现,开始的时候,随机图是 4 X 4,结果也是 4 X 4,这就意味着如果你想要改变最终生成图像的比例,或者是大小,你需要修改这个随机图的比例或大小,而不是通过 Prompt 下达调整的指令。用雕刻来类比,会很好理解,用 1 立方米的石头进行雕刻,不管雕刻师技艺有多好,都没法雕刻出一个高 10 米的雕像。他最多只能雕刻出一个高 1 米的雕像。
</Callout>

* 接着,Denoise 会拿噪音图 B 和 C 相减得出图 D。我们用简单的数学解释下这张图是啥。首先,图 B 是用 Prompt 加随机图预测的噪声,简单理解,就包含了「根据 Prompt 预测的噪声」+「根据随机图预测的噪声」,而 C 则是「根据随机图预测的噪声」,B 减 C 就等于「根据 Prompt 预测的噪声」。
Expand Down