これらは最も重要な組み込みデータ型です。独自のデータ型を定義する こともできます。
データ型はクライアント側で使用され、ワークフローが誤った形式のデータをノードに渡すのを防ぎます - 強い型付けのようなものです。
JavaScript クライアント側のコードは通常、ノード出力を異なるデータ型の入力に接続することを許可しませんが、
以下にいくつかの例外が記載されています。
Comfy データ型
COMBO
-
INPUT_TYPES に追加パラメータはありません
-
Python データ型:
list[str] として定義され、出力値は str です
ドロップダウンメニューウィジェットを表します。
他のデータ型とは異なり、COMBO は INPUT_TYPES 内で str ではなく、ドロップダウンリストのオプションに対応する list[str] によって指定され、最初のオプションがデフォルトで選択されます。
COMBO 入力はしばしば実行時に動的に生成されます。例えば、組み込みの CheckpointLoaderSimple ノードでは、以下のように見つかります
"ckpt_name": (folder_paths.get_filename_list("checkpoints"), )
または、単に固定されたオプションのリストである場合もあります。
"play_sound": (["no","yes"], {}),
プリミティブとリルート
プリミティブノードとリルートノードはクライアント側にのみ存在します。固有のデータ型を持ちませんが、接続されると接続された入力または出力のデータ型を引き継ぎます(そのため、* 入力には接続できないのです…)
Python データ型
INT
-
INPUT_TYPES 内の追加パラメータ:
-
default は必須です
-
min と max はオプションです
-
Python データ型
int
FLOAT
-
INPUT_TYPES 内の追加パラメータ:
-
default は必須です
-
min、max、step はオプションです
-
Python データ型
float
STRING
-
INPUT_TYPES 内の追加パラメータ:
-
Python データ型
str
BOOLEAN
-
INPUT_TYPES 内の追加パラメータ:
-
Python データ型
bool
テンソルデータ型
IMAGE
-
INPUT_TYPES に追加パラメータはありません
-
Python データ型
torch.Tensor、形状 は [B,H,W,C]
B 枚の画像のバッチで、高さ H、幅 W、C チャンネル(通常 RGB の場合は C=3)を持ちます。
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 にはもう 1 つのキー 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 の 1 次元テンソルとして表現され、各要素は対応するステップ前に存在すると予想されるノイズを表し、最後の値は最終ステップ後に存在するノイズを表します。
SDXL モデルの場合、20 ステップで denoise が 1 の normal スケジューラは以下を生成します:
tensor([14.6146, 10.7468, 8.0815, 6.2049, 4.8557,
3.8654, 3.1238, 2.5572, 2.1157, 1.7648,
1.4806, 1.2458, 1.0481, 0.8784, 0.7297,
0.5964, 0.4736, 0.3555, 0.2322, 0.0292, 0.0000])
sigma の開始値はモデルに依存するため、スケジューラノードが SIGMAS 出力を生成するには MODEL 入力が必要です
Guider
GUIDER は、プロンプトや他の形式の条件付けによって「導かれる」ノイズ除去プロセスの一般化です。Comfy では、guider は sample によって呼び出される __call__(*args, **kwargs) メソッドを提供する呼び出し可能な Python オブジェクトによって表現されます。
__call__ メソッドは(args[0] 内で)ノイズのある潜在空間データのバッチ(テンソル [B,C,H,W])を受け取り、ノイズの予測(同じ形状のテンソル)を返します。
モデルデータ型
stable diffusion モデルには、より技術的なデータ型がいくつかあります。最も重要なものは 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>])を受け取ります。主にノードが ノード拡張 を使用する場合に便利です。 |