English | 日本語 | 繁体中文
- Top
- Node / Image Node / Text Node / XYPlot Node / Float Palet
- Workflow
Node
## :tomato: Sampler Nodes
### D2 KSampler / D2 KSampler(Advanced)
#### 標準のKSamplerとの違い
- 画像を直接出力する(VAE Decoderが不要)
- プロンプトを文字列で入力できる
- A1111方式のLoRA読み込みプロンプトに対応
- 例: ``
- 書式は `D2 Load Lora` を参照
- `D2 KSampler Advanced` に `positive_cond` / `negative_cond` を入力した場合はCLIPにLoRAは適用されません。MODELのみ適用されます。
- Controlnet専用の入力があり、シンプルに適用できる
- 生成パラメーターをまとめた `d2_pipe` に対応
- `D2 XY Plot` `D2 XY Plot Easy` `D2 XY Plot Easy Mini` から簡単に受け取れる
- `D2 Checkpoint Loader` や `D2 Load Diffusion Model Set` から `model` / `clip` / `vae` をまとめて受け取れる
- `D2 Save Image Eagle` へ簡単にパラメーターを渡せる
- プロンプトの重みアルゴリズムを変更できる(weight_interpretation)
#### 注意点
- `d2_pipe` が接続されている場合は `d2_pipe` のパラメーターが優先されます
- 例えば `D2 KSampler` で **steps:20** を指定して、`D2 XYPlot Easy` で **steps:15** を指定。`d2_pipe` が接続されている状態だと `D2 XYPlot Easy` の **steps:15** が採用されます。
- ただし `model` / `clip` / `vae` / `positive_cond` / `negative_cond` は **直接接続した入力が優先**されます(`positive` / `negative` と同じ扱い)。直接接続が無いときだけ `d2_pipe` の値を使います。
#### Input
- 標準のKSamplerと同じもの
- `model` / `clip` / `latent_image` / `seed` / `steps` / `cfg` / `sampler_name` / `scheduler` / `denoise`
- `model` / `clip` は `d2_pipe` から渡せるようになったため、いずれも optional(任意接続)です
- D2 KSampler で追加したもの
- `vae`: `d2_pipe` から渡せるため optional(任意接続)です
- `cnet_stack`: `D2 Controlnet Loader` 接続用
- `d2_pipe`: 生成パラメーターをまとめたもの。`D2 XY Plot` などから受け取る
- `preview_method`: 生成時のプレビュー表示方式
- `positive` / `negative`: 文字列形式のプロンプト入力
- D2 KSampler Advanced で追加したもの
- `token_normalization` / `weight_interpretation`
- プロンプトのウェイト調整方法。D2 KSampler Advancedで利用可能
- 利用するには [Advanced CLIP Text Encode](https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb/) が必要
#### Output
- 標準のKSamplerと同じもの
- `LATENT`
- D2 KSampler で追加したもの
- `IMAGE`: 生成画像
- `MODEL` / `CLIP`: LoRA適用済み
- `positive` / `negative`: Inputのものをそのまま出力
- `formatted_positive`: A1111方式のLoRA書式を削除したpositiveプロンプト
- `positive_cond` / `negative_cond`: Controlnet適用済みのCONDITIONING
- Controlnet の画像は画像全体のものなので、FaceDetailer など画像の一部を切り出して再描画するノードに渡すと、切り出した範囲と Controlnet の位置がずれて画像が崩れることがあります
- `d2_pipe`: 生成パラメーターをまとめたもの
- D2 KSampler 内で作成した CONDITIONING は `d2_pipe` の `positive_cond` / `negative_cond` には格納されません。入力された値(未入力なら空)がそのまま入ります
---
### D2 Pipe
- `d2_pipe` の内容を変更・取り出すためのノード
- `d2_pipe` は D2 XY Plot Easy、D2 KSampler、D2 Save Image Eagle などでパラメーターをまとめて渡すためのもの
- `ckpt_name` / `positive` / `negative` / `seed` / `steps` / `cfg` / `sampler_name` / `scheduler` / `denoise` / `width` / `height` に加え、`model` / `clip` / `vae` / `positive_cond` / `negative_cond` の入出力にも対応しました
- これらに直接入力を接続すると `d2_pipe` の該当項目を上書きできます。接続が無ければ `d2_pipe` の値をそのまま出力します
---
## :tomato: Loader Node
### D2 Checkpoint Loader
- モデルファイルのフルパスを出力する Checkpoint Loader
- ファイル名に「vpred」が入っていたら自動的に v_prediction 設定を適用することが可能
#### Input
- `d2_pipe`
- このノード自身では使用しないが、受け取った `d2_pipe` に `model` などを追加する
- `ckpt_name`
- チェックポイント名
- `auto_vpred`
- `true`: ファイル名に「vpred」が入っていたら自動的に v_prediction 設定を適用する
- `sampling` / `zsnr`
- ModelSamplingDiscrete と同じ設定(詳しくは知りません)
- `multiplier`
- RescaleCFG と同じ設定(詳しくは知りません)
#### Output
- `model` / `clip` / `vae`
- 従来の CheckpointLoader と同じ。
- `ckpt_name` / `ckpt_hash` / `ckpt_fullpath`
- Checkpoint 名、ハッシュ、フルパス。
- `d2_pipe`
- `model` / `clip` / `vae` / `ckpt_name` をまとめたもの。`D2 KSampler` へ1本で接続できます。
---
### D2 Load Diffusion Model
- モデルファイルのフルパスやファイル名を出力する Load Diffusion Model
#### Input
- `d2_pipe`
- このノード自身では使用しないが、受け取った `d2_pipe` に `model` などを追加する
- `unet_name` / `weight_dtype`: 標準の `Load Diffusion Model` と同じです
#### Output
- `model`
- 標準の Load Diffusion Model と同じ。
- `ckpt_name` / `ckpt_hash` / `ckpt_fullpath`
- Checkpoint 名、ハッシュ、フルパス。
- 正確には `unet_name` ですが、`D2 Checkpoint Loader` と揃えるために `ckpt_name` にしました
- `d2_pipe`
- `model` / `ckpt_name` をまとめたもの。`D2 KSampler` へ接続できます。
- このノードは VAE / CLIP を読み込まないため、`d2_pipe` には `model` のみ含まれます(`clip` / `vae` は別途接続が必要です)
---
### D2 Load Diffusion Model Set
- `Load Diffusion Model` + `Load VAE` + `Load CLIP` を1つにまとめたローダー
- `model` / `clip` / `vae` をまとめて読み込み、`d2_pipe` として出力できる
- `D2 KSampler` へ `d2_pipe` 1本で接続すれば、`model` / `clip` / `vae` の個別接続が不要になります
#### Input
- `d2_pipe`
- このノード自身では使用しないが、受け取った `d2_pipe` に `model` などを追加する
- `unet_name` / `weight_dtype`: 標準の `Load Diffusion Model` と同じです
- `vae_name`: 標準の `Load VAE` と同じです
- `clip_name` / `clip_type`: 標準の `Load CLIP` と同じです
#### Output
- `model` / `clip` / `vae`
- 標準の各ローダーと同じ。
- `ckpt_name` / `ckpt_hash` / `ckpt_fullpath`
- Diffusion Model 名、ハッシュ、フルパス。
- 正確には `unet_name` ですが、`D2 Checkpoint Loader` と揃えるために `ckpt_name` にしました
- `d2_pipe`
- `model` / `clip` / `vae` / `ckpt_name` をまとめたもの。`D2 KSampler` へ1本で接続できます。
---
### D2 Controlnet Loader
- `D2 KSampler` に接続してシンプルなワークフローが作れる Controlnet Loader
- `controlnet_type` で `StableDiffusion`(通常の Controlnet)と `Anima`(kohya-ss氏の Anima-LLLite)を切り替えられる
- `Anima` を使うには [ComfyUI-Anima-LLLite](https://github.com/kohya-ss/ComfyUI-Anima-LLLite) をインストールしておく必要がある
#### Input
- `controlnet_type`
- `StableDiffusion`: 通常の Controlnet
- `Anima`: kohya-ss の Anima-LLLite([ComfyUI-Anima-LLLite](https://github.com/kohya-ss/ComfyUI-Anima-LLLite) が必要)
- `cnet_stack`
- `D2 Controlnet Loader` 接続用
#### Output
- `cnet_stack`
- `D2 KSampler` または `D2 Controlnet Loader` 接続用
---
### D2 Merge Cnet
- 複数の `cnet_stack` を1つにまとめるノード
- `cnet_stack_count` の数だけ入力が増減する
- 未接続の入力は無視されるので、一部だけ接続した状態でも使える
- 複数の Controlnet を使ってる状況で、特定の Controlnet だけ無効化したい時などに使う
#### Input
- `cnet_stack_count`
- 入力する `cnet_stack` の数(1〜10)
- `cnet_stack_1` 〜 `cnet_stack_10`
- `D2 Controlnet Loader` などの `cnet_stack` を接続する
#### Output
- `cnet_stack`
- `D2 KSampler` または `D2 Controlnet Loader` 接続用
---
### D2 Load Lora
- テキストでLoraを指定できるLoraローダー
- model_weight / clip_weight も指定可能
- StableDiffusion webui A1111 と同じ書式を使うモード(a1111)と、LoRA名を並べるだけのモード(simple)がある
- 具体的な使い方はサンプルワークフローを参照
#### Input
- `mode`
- `a1111`: StableDiffusion webui A1111と同じ書式が使用可能なモード
- `simple`: LoRA名を並べるだけのシンプルなモード。このモードでは output の `STRING` は使わない
#### Output
- `MODEL` / `CLIP`: LoRA適用済みのMODEL、CLIP
- `prompt`: 入力されたテキストをそのまま出力
- `formatted_prompt`: LoRA指定部分が削除されたテキスト
#### モードによる書式の違い
**mode: a1111**
`` と表記する。
```
```
**mode: simple**
前後の装飾は不要
```
lora_name:1
```
#### Weight指定方法
`{lora_name}:{model_weight}:{clip_weight}` という書式で記述する。
```
foo:0.8:1
```
clip_weight が指定されていない場合は model_weight と同じ値が適用される。
下記は同じ意味になる。
```
foo:0.8
foo:0.8:0.8
```
weight が指定されていない場合は「1」が適用される
下記は同じ意味になる。
```
foo
foo:1:1
```
#### simpleモードで複数のLoRAを指定する方法
改行で区切る
```
foo:0.5
bar
```
1行に2種類記述するときは「,」で区切る
```
foo:0.5,bar
```
#### コメントアウト
「//」または「#」で開始する行は無視されます。
```
//foo:0.5
#bar
```
---
## :tomato: Size Node
### D2 Get Image Size
- サイズの出力と表示を両方行う
---
### D2 Size Selector
- 画像サイズをプリセットから選択できるノード
- 画像からサイズを取得することも可能
- 数値の丸め方を `Ceil / Float / None` から選択可能
#### Input
- `images`
- 画像からサイズを取得する時に使用
- `preset` を `custom` にする必要がある
- `preset`
- サイズのプリセット
- この下の `width` `height` や `images` のサイズを使う時は `custom` にする必要がある
- プリセットを変更したい時は `/custom_nodes/D2-nodes-ComfyUI/config/sizeselector_config.yaml` を編集
- `width` / `height`
- 縦横サイズ
- `preset` を `custom` にする必要がある
- `swap_dimensions`
- width / height を入れ替える
- `upscale_factor`
- 他のリサイズ系ノードに渡す数値。このノードでは何もしない
- `prescale_factor`
- この倍率でリサイズしてから width / height を出力する
- `round_method`
- `Round` : 四捨五入する
- `Floor` : 切り落とす
- `None` : 何もしない
- `batch_size`
- empty_latent にセットする batch size
#### Output
- `width / height`
- 入力された `width`、`height` に `prescale_factor` を乗算する
- `upscale_factor` / `prescale_factor`
- Input されたものをパススルーする
- `batch_size`
- Input されたものをパススルーする
- `empty_latent`
- 指定されたサイズ、batch size で作成した latent を出力
---
### D2 Image Resize
- 画像とマスクのリサイズおよび回転
- 倍率は小数点3位まで指定可能
- 小数点の四捨五入、切り捨て、切り上げが選択できる
- アップスケールモデルを使ったアップスケールが可能
- Latent出力も可能(VAEが必要)
- 回転は 90 / 180 / 270 度の3種類から選択可能
---
### D2 Resize Calculator
- 四捨五入、切り捨て、切り上げが選択できる
---
## :tomato: Refiner Node
### D2 Refiner Steps
- Refiner 用の steps を出力するノード
#### Input
- `steps`
- 総 step 数
- `start`
- 最初の KSampler の開始する steps
- `end`
- 最初の KSampler の終了する steps
#### Output
- `steps` / `start` / `end`
- Input のパススルー
- `refiner_start`
- 2 つめの KSampler の開始する steps
---
### D2 Refiner Steps A1111
- img2img で Refiner するために denoise も指定できるノード
#### Input
- `steps`
- 総 step 数
- `denoise`
- img2img の denoise を指定する
- `switch_at`
- 総 steps 数の何割で次の KSampler に切り替えるか
#### Output
- `steps` /
- Input のパススルー
- `start`
- 最初の KSampler の開始 steps
- `end`
- 最初の KSampler の終了 steps
- `refiner_start`
- 2 つめの KSampler の開始する steps
---
### D2 Refiner Steps Tester
- steps を確認するためのノード
---
## :tomato: Other Node
### D2 Model and CLIP Merge SDXL
- ModelMergeSDXL と CLIPMergeSimple を合体させたノード
- XYPlot で使いやすいように、各 weight をカンマ区切りで指定可能にした
- この図では `0.85,0.85,1,1,0.4,0.4,1,0.4,0.4,0.4,1,0.4,0.4,0.4,0,0.55,0.85,0.85,0.85,0.85,0.85,0.85,1,1,0.65` を指定している
---
### D2 Any Delivery
- 複数の要素をまとめて受け渡すことができるノード
- `D2 Any Delivery` 同士を繋いで、データをパッケージとして受け渡しできる
- 必要な入出力を `_label` に記入し、動的に追加することができる
- ComfyUI のアップデートで ComfyUI-0246 の `Highway` が使えなくなってしまったので作りました
- 本家がアップデートしたらそっちを使うほうがいいと思います
#### Input
- `_package`
- 他の `D2 Any Delivery` から受け取るパッケージ
- `_label`
- 入出力の定義を記入する
- `>width; >height; ` で始まる項目は input として追加される
- `<` で始まる項目は output として追加される
- `;` で区切って複数指定可能
- `_update`
- `_label` の内容に従って入出力を更新する
#### Output
- `_package`
- 他の D2_AnyDelivery へ渡すパッケージ
- input で受け取った値がすべて格納される
- `_label` で `<` を付けて指定した項目
- `_package` から取り出された値が出力される
#### _label 記入例
入力に `width` `height` を追加
```
>width; >height
```
出力に `width` `height` を追加
```
prompt; >seed;
- 複数パラメータのプリセットをテキストで定義し、プルダウンで1つ選ぶとまとめて出力するノード
- Checkpoint ごとの推奨 `steps` / `cfg` などをセットで切り替える用途を想定
- `preset_text` に書式を記入して `_update` を押すと、出力スロットとプルダウンが再構築される
#### Input
- `preset`
- プルダウン。選択中のプリセット
- `preset_text` の3行目以降のタイトルが選択肢になる
- `preset_name`
- 外部からプリセット名を文字列で受け取る入力(forceInput)
- 接続されていて空文字列でなければ、`preset`(プルダウン選択)より優先される
- `preset_text`
- プリセット定義テキスト(書式は後述)
- 初期状態でサンプルが入っているので、そのまま試せる
- `_update`
- `preset_text` の内容に従って出力スロットとプルダウンを更新する
#### Output
- `preset_text` の1行目で定義した名前ごとに出力スロットが作られる
- 選択中のプリセットの値が、2行目で指定した型に変換されて出力される
#### preset_text の書式
```
steps;cfg
INT;FLOAT
Anima;15;1.5
Illustrious;20;5.0
```
- 1行目:出力名(`;` 区切り)
- 2行目:出力の型(`INT` / `FLOAT` / `STRING` / `BOOLEAN`)
- 3行目以降:`タイトル;値1;値2…`(プリセット1つにつき1行)。タイトル(先頭セル)は必須で、空にするとエラーになる
上の例で `Anima` を選ぶと `steps`=15、`cfg`=1.5 が出力される。
#### 制約
- `STRING` の値に区切り文字 `;` は使えない
- `preset` プルダウンへの Primitive ノード接続は非対応(ComfyUI の仕様により選択肢が表示されない)。リロード・ワークフロー読込・サブグラフ入力は正常に動作する
---
### D2 Save Audio Eagle
- オーディオファイルをEagleに送信するノード
- 従来のフォルダにも二重で保存されるのでドライブ残容量に注意
#### Input
- `audio`
- 保存する音声を入力
- `filename_prefix`
- 保存ファイル名
- `eagle_folder`
- Eagleの保存先フォルダ名
- `format`
- FLAC / MP3 / Opus から選択
- `mp3_quality`
- `format` が `mp3` の時に使用するビットレート
- `opus_quality`
- `format` が `Opus` の時に使用するビットレート
- `memo_text`
- Eagleのメモ欄に保存するテキスト
#### Output
- `audios`
- 入力された音声をそのまま出力する
- `filenames`
- 保存した音声ファイルのフルパス配列(`ARRAY`)