> ## Documentation Index
> Fetch the complete documentation index at: https://dripart-docs-recommend-assets-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# データ型

これらは最も重要な組み込みデータ型です。[独自のデータ型を定義する](./more_on_inputs#custom-datatypes) こともできます。

データ型はクライアント側で使用され、ワークフローが誤った形式のデータをノードに渡すのを防ぎます - 強い型付けのようなものです。
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` 内の追加パラメータ：

  * `default` は必須です

* Python データ型 `str`

### BOOLEAN

* `INPUT_TYPES` 内の追加パラメータ：

  * `default` は必須です

* 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 ノードで設定する値です）。

辞書の他のエントリには、潜在マスクなどが含まれます。

{/* TODO 新しい SD モデルでは異なる C 値を持つ可能性がある？ */}

### 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]` を持ちます。

<Tip>`seed` は `SamplerCustomAdvanced` の `sample` guider に渡されますが、標準の guider のいずれでも使用されていないようです。オプションなので、通常は None に設定できます。</Tip>

ノイズを追加する場合、潜在空間データがこのメソッドに渡され、ノイズを含む同じ形状の `Tensor` を返す必要があります。

[ノイズ混合の例](./snippets#creating-noise-variations) を参照

### 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])
```

<Tip>sigma の開始値はモデルに依存するため、スケジューラノードが SIGMAS 出力を生成するには `MODEL` 入力が必要です</Tip>

### Guider

`GUIDER` は、プロンプトや他の形式の条件付けによって「導かれる」ノイズ除去プロセスの一般化です。Comfy では、guider は `sample` によって呼び出される `__call__(*args, **kwargs)` メソッドを提供する呼び出し可能な Python オブジェクトによって表現されます。

`__call__` メソッドは（`args[0]` 内で）ノイズのある潜在空間データのバッチ（テンソル `[B,C,H,W]`）を受け取り、ノイズの予測（同じ形状のテンソル）を返します。

## モデルデータ型

stable diffusion モデルには、より技術的なデータ型がいくつかあります。最も重要なものは `MODEL`、`CLIP`、`VAE`、`CONDITIONING` です。
これらの操作は（現時点では）このガイドの範囲を超えています！{/* TODO しかし、永遠にそうとは限りません */}

## 追加パラメータ

以下は、入力定義の「追加オプション」部分で使用できる公式にサポートされているキーのリストです。

<Warning>カスタムウィジェット用に追加のキーを使用することはできますが、以下のキーを他の目的で再利用しては*いけません*。</Warning>

| キー               | 説明                                                                                                               |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- |
| `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`           | この入力が[遅延評価](./lazy_evaluation) を使用することを宣言します                                                                     |
| `rawLink`        | リンクが存在する場合、評価された値を受け取る代わりに、リンク（つまり `["nodeId", <outputIndex>]`）を受け取ります。主にノードが [ノード拡張](./expansion) を使用する場合に便利です。 |
