数据类型
这些是最重要的内置数据类型。您也可以定义自己的数据类型。
数据类型在客户端用于防止工作流将错误形式的数据传递给节点 - 有点像强类型。 JavaScript 客户端代码通常不允许将节点输出连接到不同数据类型的输入, 不过下面会提到一些例外情况。
Comfy 数据类型
COMBO
-
INPUT_TYPES
中不需要额外参数 -
Python 数据类型:定义为
list[str]
,输出值为str
表示下拉菜单组件。
与其他数据类型不同,COMBO
在 INPUT_TYPES
中不是通过 str
指定的,而是通过 list[str]
指定,
对应下拉列表中的选项,默认选中第一个选项。
COMBO
输入通常在运行时动态生成。例如,在内置的 CheckpointLoaderSimple
节点中,您会看到
or they might just be a fixed list of options,
原始类型和重路由
原始类型和重路由节点仅存在于客户端。它们没有固有的数据类型,但在连接时会采用所连接输入或输出的数据类型(这就是为什么它们不能连接到 *
输入…)
Python 数据类型
INT
-
INPUT_TYPES
中的额外参数:-
default
是必需的 -
min
和max
是可选的
-
-
Python 数据类型
int
FLOAT
-
INPUT_TYPES
中的额外参数:-
default
是必需的 -
min
、max
、step
是可选的
-
-
Python 数据类型
float
STRING
-
INPUT_TYPES
中的额外参数:default
是必需的
-
Python 数据类型
str
BOOLEAN
-
INPUT_TYPES
中的额外参数:default
是必需的
-
Python 数据类型
bool
张量数据类型
IMAGE
-
INPUT_TYPES
中不需要额外参数 -
Python 数据类型
torch.Tensor
,形状为 [B,H,W,C]
一批 B
张图像,高度 H
,宽度 W
,具有 C
个通道(通常 C=3
表示 RGB
)。
LATENT
-
INPUT_TYPES
中不需要额外参数 -
Python 数据类型
dict
,包含一个形状为 [B,C,H,W] 的torch.Tensor
传入的 dict
包含键 samples
,这是一个形状为 [B,C,H,W] 的 torch.Tensor
,表示
一批 B
个潜空间表示,具有 C
个通道(现有 stable diffusion 模型通常 C=4
),高度 H
,宽度 W
。
高度和宽度是对应图像尺寸的 1/8(这是您在 Empty Latent Image 节点中设置的值)。
字典中的其他条目包含潜空间蒙版等内容。
MASK
-
INPUT_TYPES
中不需要额外参数 -
Python 数据类型
torch.Tensor
,形状为 [H,W] 或 [B,C,H,W]
AUDIO
-
INPUT_TYPES
中不需要额外参数 -
Python 数据类型
dict
,包含一个形状为 [B, C, T] 的torch.Tensor
和采样率。
传入的 dict
包含键 waveform
,这是一个形状为 [B, C, T] 的 torch.Tensor
,表示
一批 B
个音频样本,具有 C
个通道(C=2
表示立体声,C=1
表示单声道),以及 T
个时间步(即音频样本的数量)。
dict
还包含另一个键 sample_rate
,表示音频的采样率。
自定义采样数据类型
Noise
NOISE
数据类型表示噪声的来源(而不是噪声本身)。它可以由任何提供生成噪声方法的 Python 对象表示,
方法签名为 generate_noise(self, input_latent:Tensor) -> Tensor
,以及一个属性 seed:Optional[int]
。
seed
被传入 SamplerCustomAdvanced
中的 sample
guider,但在任何标准 guider 中似乎都没有使用。
它是可选的,所以您通常可以将其设置为 None。当需要添加噪声时,潜空间表示会被传入这个方法,它应该返回一个包含噪声的相同形状的 Tensor
。
参见噪声混合示例
Sampler
SAMPLER
数据类型表示一个采样器,它由一个提供 sample
方法的 Python 对象表示。
Stable diffusion 采样超出了本指南的范围;如果您想深入研究这部分代码,请查看 comfy/samplers.py
。
Sigmas
SIGMAS
数据类型表示由调度器产生的采样过程中每个步骤前后的 sigma 值。
它表示为一个一维张量,长度为 steps+1
,其中每个元素表示对应步骤之前预期的噪声量,
最后一个值表示最终步骤之后的噪声量。
对于 SDXL 模型,一个具有 20 步和去噪值为 1 的 normal
调度器会产生:
MODEL
输入来产生 SIGMAS 输出Guider
GUIDER
是去噪过程的泛化,由提示词或任何其他形式的条件”引导”。在 Comfy 中,guider 由
一个提供 __call__(*args, **kwargs)
方法的可调用 Python 对象表示,该方法由采样器调用。
__call__
方法接收(在 args[0]
中)一批噪声潜空间表示(张量 [B,C,H,W]
),并返回噪声的预测(相同形状的张量)。
模型数据类型
稳定扩散模型还有一些更技术性的数据类型。最重要的是 MODEL
、CLIP
、VAE
和 CONDITIONING
。
目前这些内容超出了本指南的范围!
附加参数
以下是输入定义的”额外选项”部分可以使用的官方支持键的列表。
键名 | 描述 |
---|---|
default | 控件的默认值 |
min | 数字类型(FLOAT 或 INT )的最小值 |
max | 数字类型(FLOAT 或 INT )的最大值 |
step | 控件的增减步长 |
label_on | 布尔值为 True 时在 UI 中显示的标签 (BOOL ) |
label_off | 布尔值为 False 时在 UI 中显示的标签 (BOOL ) |
defaultInput | 默认使用输入插槽而不是支持的控件 |
forceInput | 与 defaultInput 相同,且不允许转换为控件 |
multiline | 使用多行文本框 (STRING ) |
placeholder | 当为空时在 UI 中显示的占位文本 (STRING ) |
dynamicPrompts | 使前端评估动态提示词 |
lazy | 声明此输入使用延迟求值 |
rawLink | 当存在链接时,您将收到链接而不是求值后的值(即 ["nodeId", <outputIndex>] )。主要在节点使用节点扩展时有用。 |