KJNodes の「画像」ノードは65個あります。最初に覚えるのは、ImageResizeKJv2・ColorMatchV2・ImageConcanate の3つです。
この記事でわかること
- 65個それぞれの役割と、筆者が試した結果がわかる
- まず覚える3つがわかる
- 古い版([DEPR])ではなく、新しい版を使えばよいとわかる
難易度:3つは初級/残りの62個は中級者向け
ノードの説明は、ComfyUI の画面に出る作者の説明と、筆者の実機での結果にもとづきます。くわしくは末尾の「検証メモ」へ。
まずこの3つ(早見表)
| ノード | どんなとき | 試した結果 | 注意 |
|---|---|---|---|
| ① ImageResizeKJv2 | 画像の大きさ(幅と高さ)を変える。決まった大きさにそろえたいとき。 | 832×1216 を 512×512 に、keep_proportion を pad にして変換すると、左右が白で埋まった。 |
古い ImageResizeKJ は [DEPR]。 |
| ② ColorMatchV2 | 色合いを別の画像に合わせる。参考画像と色味をそろえたいとき。 | image_target に変えたい画像、image_ref に参考画像をつなぎ、色を合わせた。 |
古い ColorMatch は [DEPR]。 |
| ③ ImageConcanate | 2枚の画像をつなげる。2枚を並べて1枚にしたいとき。 | right でつなげると、横長の1枚になった。 |
つづりは原文のまま(3枚以上は ImageConcatMulti、バッチを格子状にするなら ImageConcatFromBatch)。 |
目的別の早見表
| やりたいこと | 使うノード | メモ |
|---|---|---|
| 画像を決まった幅と高さにする | ImageResizeKJv2 | keep_proportion で、比を保つ・余白で埋める・切り抜くを選ぶ |
| 色合いを参考画像に合わせる | ColorMatchV2 | 方式は mkl・hm・reinhard・mvgd などから選ぶ |
| 2枚を上下左右につなげる | ImageConcanate | つづりは作者の原文のまま |
| 3枚以上をつなげる | ImageConcatMulti | inputcount で入力の数を増やす |
| バッチを格子状の1枚にする | ImageConcatFromBatch | 列の数を指定する |
| 画像のまわりに余白を足す | ImagePadKJ | 端の色を伸ばす・指定の色・ぼかした絵から埋め方を選ぶ |
| アウトペイント用に余白とマスクを作る | ImagePadForOutpaintMasked | feathering でマスクの境目をぼかす |
| マスクの範囲だけ切り抜く | ImageCropByMask | 切り抜いた位置も要るなら ImageCropByMaskAndResize |
| 切り抜いた画像を元の位置に戻す | ImageUncropByMask | 顔だけ描き直して戻す、といった使い方 |
| 拡大用のモデルで拡大する | ImageUpscaleWithModelBatched | 分けて処理して VRAM を節約できる |
| キャプションと一緒に保存する | SaveImageKJ | キャプションは同じ名前のテキストファイルになる |
| 古い版を使わない | ImageResizeKJ → ImageResizeKJv2、ColorMatch → ColorMatchV2 | [DEPR] と出るものは古い版。新しく作るときは新しい版を使う |
全260ノードを、やりたいこと・ノード名から探すには KJNodes 完全ガイド(総合索引)へ。
ここから先は中級者向け
ComfyUI-KJNodes(KJNodes)は、ComfyUI の公式の登録所でいちばんダウンロードされているカスタムノードで、入れると 260 個のノードが増えます。この記事はシリーズの1本目。そのうち「画像」に分類されている 65 個を、1つずつ試して紹介します。
KJNodes 以外のカスタムノードを止めた ComfyUI で、最初から入っているノードと組み合わせて試しました。実行できなかったノードは、その理由を個別に書いています。ノードごとに、動かした(または置いた)ときの画面を載せています。KJNodes の入れ方は ComfyUI のカスタムノードの入れ方を見てください。
つなぎ方に注意が要るノードもあります。筆者も ImageTensorList を PreviewImage につなぎ、「Cannot handle this data type」というエラーを出しました。こうした点は、各項目の「注意」に書いています。
全260個は7つの分類に分かれる
KJNodes のノードは、ComfyUI の中で次のように分類されています(筆者の環境で数えた数)。数が多いので、分類ごとに記事を分けました。
| 回 | 分類 | ノードの数 | 記事 |
|---|---|---|---|
| ① | 画像 | 65 | この記事 |
| ② | マスク | 37 | KJNodesの使い方② |
| ③ | テキスト・数値・その他・ループ | 43 | KJNodesの使い方③ |
| ④ | ラテント・ノイズ・サンプリング・座標 | 29 | KJNodesの使い方④ |
| ⑤ | モデル・LoRA・メモリ・高速化 | 39 | KJNodesの使い方⑤ |
| ⑥ | 動画モデル用 | 30 | KJNodesの使い方⑥ |
| ⑦ | 音声・非推奨 | 17 | KJNodesの使い方⑦ |
スクリーンショットの「プレビュー任意」は、数値や文字を表示するための ComfyUI の標準のノードです。
各項目は「ひとことで/くわしく/試したこと」の順です。「ひとことで」は、説明文を筆者が短くまとめたものです(公式の表示名ではありません)。
大きさを変える・切り抜く・余白を足す
ImageResizeKJv2
- ひとことで:画像を指定した幅と高さに変える
- くわしく:画像を指定した幅と高さに変えます。
keep_proportionで、縦横の比を保つ・余白で埋める・切り抜くなどを選べます。 - 試したこと:832×1216 の画像を 512×512 に、
keep_proportionをpad(白で余白を埋める)にして変えました。縦長の絵が正方形の中に収まり、左右が白で埋まりました。

ImageResizeKJ
- ひとことで:画像の大きさを変える(v2 の古い版)
- くわしく:上の v2 の古い版です。作者の説明では「画面の仕組みが変わったため使わないで、v2 を使って」とされています。古いワークフローを壊さないために残されています(画面には [DEPR] と表示)。
- 試したこと:512×512・
keep_proportionありで動かすと、350×512 になりました。幅と高さの数値も出力されました。 - 古い版/新しい版:これは古い版です。新しく作るときは v2(ImageResizeKJv2)を使ってください。

ImageTransformKJ
- ひとことで:切り抜き・大きさ・余白・回転を画面で決める
- くわしく:切り抜き・大きさの変更・余白・回転を、画面の上で操作して決めるノードです(実験的なノード)。プレビューの上でドラッグして、切り抜く範囲を描けます。
- 試したこと:目標の大きさを 512×512 にして実行し、変換された画像が出ることを確かめました。マウスでの範囲指定は、今回は使っていません。

ImagePadKJ
- ひとことで:画像の上下左右に、余白を足して広げる
- くわしく:画像のまわりに余白を足します。余白の埋め方(端の色を伸ばす、指定した色、ぼかした絵で埋める など)を選べます。
- 試したこと:左右 64・上下 32 の余白を、オレンジ系の色(255, 200, 120)で足しました。

ImagePadForOutpaintMasked
- ひとことで:描き足し用の余白と、そのマスクを作る
- くわしく:アウトペイント(画像の外側を描き足すこと)の準備として、余白を足します。足した部分のマスクも作ります。
featheringでマスクの境目をぼかせます。 - 試したこと:左右に 128 ずつ余白を足し、
featheringを 32 にしました。右下のプレビューが、作られたマスク(白い部分が描き足す場所)です。

ImagePadForOutpaintTargetSize
- ひとことで:指定の大きさになるよう描き足し用の余白を足す
- くわしく:アウトペイントの準備として、指定した大きさになるように余白を足します。
- 試したこと:832×1216 の画像を 1216×1216 に広げるように指定し、左右に余白が足されました。

ImageCropByMask
- ひとことで:マスクで指定した範囲だけを切り抜く
- くわしく:マスクで指定した範囲だけを切り抜きます。
- 試したこと:顔のあたりを白くしたマスク(自作の白黒画像)を使い、その範囲だけが切り抜かれました。

ImageCropByMaskAndResize
- ひとことで:マスクの範囲を切り抜き、大きさをそろえる
- くわしく:マスクの範囲を切り抜き、指定の大きさにそろえます。切り抜いた位置(BBOX)も出力するので、あとで元の画像に戻せます。
- 試したこと:
base_resolution512・padding32 で実行しました。切り抜いた画像と、位置の数値(BBOX)が出ました。

ImageCropByMaskBatch
- ひとことで:何枚もの画像をマスクで切り抜き、大きさをそろえる
- くわしく:何枚かの画像を、それぞれのマスクで切り抜いて、同じ大きさにそろえます。
- 試したこと:1枚の画像とマスクで、512×512 に切り抜きました。

ImageUncropByMask
- ひとことで:切り抜いた画像を元の位置に戻して合成する
- くわしく:切り抜いた画像を、元の画像の同じ位置に戻して合成します。顔だけ描き直して元に戻す、といった使い方です。
- 試したこと:顔を切り抜き、色を反転してから、元の画像の同じ場所に戻しました。顔の部分だけ色が反転した画像になりました。

BBOXToBoundingBoxKJ
- ひとことで:切り抜いた位置を標準ノード用の形に変える
- くわしく:KJNodes の BBOX(切り抜いた位置)を、ComfyUI 標準のノードが使う形(BOUNDING_BOX)に変えます。
- 試したこと:ImageCropByMaskAndResize が出した BBOX を変換し、中身をプレビューで表示しました。

色や明るさを変える
ColorMatchV2
- ひとことで:画像の色合いを参考画像に合わせる
- くわしく:ある画像の色合いを、別の画像(参考画像)の色合いに合わせます。方式は mkl・hm・reinhard・mvgd などから選べます。
- 試したこと:1枚目の画像(target)の色を、2枚目の画像(ref)に合わせました。

ColorMatch
- ひとことで:色合いを参考画像に合わせる(V2 の古い版)
- くわしく:ColorMatchV2 の古い版です(画面には [DEPR] と表示)。
- 試したこと:1枚目の画像の色を 2枚目に合わせました(mkl)。暖色だった絵が、2枚目に近い落ち着いた色になりました。
- 古い版/新しい版:これは古い版です。新しく作るときは V2(ColorMatchV2)を使ってください。

ImageSharpenKJ
- ひとことで:画像をくっきりさせる(シャープにする)
- くわしく:画像をくっきりさせます。作者の説明では、AMD の FSR で使われる RCAS など、いくつかの方式を GPU で処理するとされています。
- 試したこと:初期設定のまま実行し、輪郭が少しくっきりした画像が出ました。

ImageNoiseAugmentation
- ひとことで:画像にノイズ(ざらつき)を足す
- くわしく:画像にノイズ(細かいざらつき)を足します。
- 試したこと:強さ 0.2 で実行し、ざらついた画像になりました。

ImageNormalize_Neg1_To_1
- ひとことで:画像の値を -1〜1 の範囲に変える
- くわしく:画像の値を -1〜1 の範囲に変えます。モデルに渡す前の下ごしらえに使うノードです。
- 試したこと:実行すると、プレビューでは暗い画像として表示されました(表示は 0〜1 の範囲を前提にしているため)。
- 注意:普通に表示すると暗く見えます。

RemapImageRange
- ひとことで:明るさの範囲を指定の最小〜最大に詰め直す
- くわしく:画像の明るさの範囲を、指定した最小値〜最大値に詰め直します。
- 試したこと:
min0.3・max0.8 にすると、黒が浮いて白がくすんだ、コントラストの低い画像になりました。

HDRPreviewKJ
- ひとことで:HDR 画像を露出を変えながら確かめる
- くわしく:HDR(明るさの幅が広い画像)を、露出を変えながら確かめるためのプレビューです(実験的なノード)。
- 試したこと:普通の画像に
exposure1.0 をかけて動くことを確かめました。前提の HDR 画像ではないため、明るくなった画像が出ただけです。 - 注意:作者の説明では、HDR 用の IC-LoRA のワークフローで、LogC3 という形で圧縮された画像を前提にしています。

SplitImageChannels
- ひとことで:画像を赤・緑・青の成分に分ける
- くわしく:画像を赤・緑・青の成分に分けます。透明度があれば、マスクとして出します。
- 試したこと:赤・緑・青の3枚に分かれ、それぞれ白黒の濃淡で表示されました。

MergeImageChannels
- ひとことで:赤・緑・青の成分を1枚にまとめる
- くわしく:赤・緑・青の成分を1枚の画像にまとめます。
- 試したこと:分けた成分の赤と青を入れ替えてまとめ、色が入れ替わった画像にしました。

ImageAddMulti
- ひとことで:何枚かの画像を、足し算などで重ねる
- くわしく:何枚かの画像を、足す・引く・かける・差を取る、のどれかで重ねます。
- 試したこと:2枚を
multiply(かけ合わせ)・0.5 で重ねました。

GradientToFloat
- ひとことで:グラデーションから明るさの数値の並びを取り出す
- くわしく:グラデーション画像から、明るさを数値の並びとして取り出します。
- 試したこと:CreateGradientFromCoords で作ったグラデーションから、5段階の数値の並び(横方向・縦方向)が出ました。

並べる・つなげる
ImageConcanate
- ひとことで:2枚の画像を上下左右のどれかにつなげる
- くわしく:2枚の画像を、上下左右のどれかの向きにつなげます。
- 試したこと:2枚を右向き(
right)につなげ、横長の1枚になりました。 - 注意:ノード名のつづりは作者の原文のままです。3枚以上なら ImageConcatMulti、バッチを格子状に並べるなら ImageConcatFromBatch を使います。

ImageConcatMulti
- ひとことで:何枚かの画像を、1枚の画像につなげる
- くわしく:何枚かの画像をつなげます。
inputcountで入力の数を増やせます。 - 試したこと:2枚を下向きにつなげ、縦長の1枚になりました。

ImageConcatFromBatch
- ひとことで:バッチを格子状に並べた1枚にする
- くわしく:バッチ(何枚かまとめた画像)を、指定した列の数で格子状に並べた1枚にします。
- 試したこと:4枚のバッチを2列にして、2×2 の1枚にしました。

ImageGridComposite2x2
- ひとことで:4枚の画像を 2×2 に並べて1枚にする
- くわしく:4枚の画像を 2×2 の格子に並べた1枚にします。
- 試したこと:4枚を並べ、1664×2432 の1枚になりました。

ImageGridComposite3x3
- ひとことで:9枚の画像を 3×3 に並べて1枚にする
- くわしく:9枚の画像を 3×3 の格子に並べた1枚にします。
- 試したこと:9枚(4種類の画像をくり返し)を並べました。

ImageGridtoBatch
- ひとことで:格子状の1枚を、ばらばらのバッチに戻す
- くわしく:格子状に並んだ1枚の画像を、ばらばらのバッチに戻します。
- 試したこと:2×2 に並べた画像を、列 2・行 2 で4枚のバッチに戻しました。

ImageTensorList
- ひとことで:大きさの違う画像をリストとしてまとめる
- くわしく:何枚かの画像を「リスト」としてまとめます。大きさの違う画像を、バッチにせずにまとめて渡すためのものです。
- 試したこと:2枚をまとめて PreviewImage につなぐと、「Cannot handle this data type」というエラーになりました。
- 注意:このノードの出力は、リストを受け取れるノードにつなぐ必要があります。ふつうのプレビューでは表示できませんでした。

バッチ(何枚かまとめた画像)を扱う
ImageBatchMulti
- ひとことで:何枚かの画像を1つのバッチにまとめる
- くわしく:何枚かの画像を1つのバッチにまとめます。
inputcountで入力の数を増やせます。 - 試したこと:2枚を1つのバッチにしました。

GetImageSizeAndCount
- ひとことで:画像の幅・高さ・枚数を数値で取り出す
- くわしく:画像の幅・高さ・枚数を数値で取り出します。画像はそのまま次へ渡します。
- 試したこと:4枚のバッチから、幅 832・高さ 1216・枚数 4 が出ました。

GetImageRangeFromBatch
- ひとことで:バッチから、指定の番号から何枚かを取り出す
- くわしく:バッチから、指定した番号から何枚かを取り出します。マスクにも使えます。
- 試したこと:4枚のバッチから、1番(2枚目)から2枚を取り出しました。
- 注意:番号は 0 から数えます。

GetImagesFromBatchIndexed
- ひとことで:バッチから、指定した番号の画像だけを取り出す
- くわしく:バッチから、指定した番号の画像だけを取り出します。
- 試したこと:番号「0, 3」を指定し、1枚目と4枚目を取り出しました。

RandomImageFromBatch
- ひとことで:バッチから、決めた範囲で何枚かを選ぶ
- くわしく:バッチから、決めた範囲で何枚かを選んで取り出します。
randomnessでばらつきを調整できます。 - 試したこと:4枚から2枚を選びました(
seed5)。

ReverseImageBatch
- ひとことで:バッチ内の画像の順番を逆にする
- くわしく:バッチの順番を逆にします。
- 試したこと:4枚の順番が逆になりました。

ShuffleImageBatch
- ひとことで:バッチの順番をばらばらに入れ替える
- くわしく:バッチの順番をばらばらに入れ替えます。
- 試したこと:
seed7 で、4枚の順番が入れ替わりました。

ImageBatchRepeatInterleaving
- ひとことで:バッチの1枚ずつを、指定の回数くり返す
- くわしく:バッチの1枚ずつを、指定した回数くり返します(0,0,1,1,… の順)。
- 試したこと:2枚のバッチを
repeats2 にして、4枚(1枚目,1枚目,2枚目,2枚目)にしました。

PadImageBatchInterleaved
- ひとことで:バッチの1枚ごとのあいだに空のフレームを入れる
- くわしく:バッチの1枚ごとのあいだに、空のフレームを入れます。
- 試したこと:2枚のあいだに、空のフレームを1枚ずつ入れました。

ImageBatchFilter
- ひとことで:バッチから、空の(ほぼ1色の)画像を取り除く
- くわしく:バッチの中から、空の(ほぼ1色の)画像を取り除きます。
- 試したこと:1枚目の絵と真っ黒な画像をまとめたバッチから、真っ黒な画像が取り除かれました。

ReplaceImagesInBatch
- ひとことで:バッチの指定の番号から先を別の画像に置き換える
- くわしく:バッチの指定した番号から先を、別の画像に置き換えます。
- 試したこと:4枚のバッチの 1番(2枚目)を、色を反転した画像に置き換えました。

InsertImagesToBatchIndexed
- ひとことで:バッチの指定の番号に、別の画像を入れる
- くわしく:バッチの指定した番号に、別の画像を入れます(置き換えるか、差し込むかを選べます)。
- 試したこと:2番の位置に、色を反転した画像を差し込みました(
mode: insert)。

InsertImageBatchByIndexes
- ひとことで:取り出した番号を使い、画像を元の位置に戻し入れる
- くわしく:FilterZeroMasksAndCorrespondingImages(KJNodes のマスクのノード)で取り出した番号を使います。その番号で、画像を元の順番の位置に戻し入れます。
- 試したこと:マスクが空の画像を FilterZeroMasksAndCorrespondingImages で見つけ、その位置に別の画像を入れました。

動画のフレームをつなげる・切り替える
ImageBatchExtendWithOverlap
- ひとことで:動画を伸ばすとき、前後を重ねてつなぐ
- くわしく:動画を伸ばすときに、前の動画の終わりと新しい動画の始まりを重ねてつなぐための補助ノードです。
- 試したこと:2枚の画像を
sourceとnew_imagesにして、重ね合わせた結果が出ることを確かめました。

ImageBatchJoinWithTransition
- ひとことで:2つのバッチを切り替え効果でつなぐ
- くわしく:2つのバッチを、円形・スライドなどの切り替え効果でつなぎます。
- 試したこと:2枚を
circle(円形)・4フレームでつなぎ、切り替わる途中のフレームが作られました。

TransitionImagesInBatch
- ひとことで:1つのバッチ内の画像を切り替え効果でつなぐ
- くわしく:1つのバッチの中の画像どうしを、切り替え効果でつなぎます。
- 試したこと:2枚のバッチを
horizontal slide(横にスライド)・4フレームでつなぎました。

TransitionImagesMulti
- ひとことで:何枚かの画像を切り替え効果でつなぐ
- くわしく:何枚かの画像を、切り替え効果でつなぎます。
- 試したこと:2枚を
vertical slide(縦にスライド)・4フレームでつなぎました。

CrossFadeImages
- ひとことで:2つのバッチを、だんだん重ねて切り替える
- くわしく:2つのバッチを、だんだん重ねて切り替えます(クロスフェード)。
- 試したこと:2枚を4フレームで切り替え、だんだん2枚目になるフレームが作られました。

CrossFadeImagesMulti
- ひとことで:何枚かの画像をクロスフェードでつなぐ
- くわしく:何枚かの画像を、クロスフェードでつなぎます。
- 試したこと:2枚を4フレームでつなぎました。

PreviewAnimation
- ひとことで:バッチをアニメーションとしてノード内で再生する
- くわしく:バッチをアニメーションとして、ノードの中で再生して確かめます。
- 試したこと:CrossFadeImages で作った8フレームを
fps8 で再生しました(スクリーンショットは再生中の1コマ)。

図形・グラデーション・その他の作成
CreateGradientFromCoords
- ひとことで:2つの座標のあいだにグラデーションを作る
- くわしく:2つの座標のあいだに、グラデーションの画像を作ります。座標は JSON の文字列でつなぎます。
- 試したこと:座標を PrimitiveString(標準のノード)から渡し、白から紺のグラデーションを作りました。
- 注意:色は「255, 255, 255」のような数値で書きます。初期値の「white」「black」のままでは、今回の環境ではエラーになりました。

CreateShapeImageOnPath
- ひとことで:座標の位置に円・四角・三角を置いた画像を作る
- くわしく:座標の位置に、円・四角・三角の図形を置いた画像を作ります。座標が何点かあれば、動画のように1点ずつのバッチになります。
- 試したこと:3つの座標にオレンジの円を置き、3枚のバッチができました。

CutAndDragOnPath
- ひとことで:マスクの範囲を切り取り、座標に沿って動かす
- くわしく:マスクの範囲を切り取り、座標に沿って動かします。もとの場所は自動で埋めることができます(inpaint)。
- 試したこと:512×512 にした画像で、顔のあたりを右へ動かす2コマを作りました。

ImagePrepForICLora
- ひとことで:IC-LoRA 用に、参考画像を並べた画像とマスクを作る
- くわしく:IC-LoRA(参考画像を並べて使う LoRA)用に、参考画像と描く場所を並べた画像とマスクを作ります。
- 試したこと:出力 1024×768 で実行し、参考画像を置いた1枚ができました。

読み込む・保存する・通す
LoadAndResizeImage
- ひとことで:画像を読み込みながら大きさも変える
- くわしく:画像を読み込むときに、大きさも変えます。マスクの取り出し方や背景色も選べます。
- 試したこと:
kj_girl3.pngを 512×512(縦横の比を保つ)で読み込み、幅と高さの数値も出ました。

LoadImagesFromFolderKJ
- ひとことで:フォルダの画像をまとめて読み込み、大きさをそろえる
- くわしく:フォルダの中の画像をまとめて読み込み、同じ大きさにそろえたバッチにします。
- 試したこと:3枚の画像を入れたフォルダを指定し、512×512 にそろえた3枚が読み込まれました。

SaveImageKJ
- ひとことで:画像を、キャプション付きで保存できる
- くわしく:画像を保存します。保存先のフォルダ名を指定できます。キャプション(説明の文字)を、同じ名前のテキストファイルで一緒に保存できます。
- 試したこと:キャプション「1girl, library」を付けて保存し、保存したファイル名が出力されました。

SaveImageWithAlpha
- ひとことで:マスクを透明度として持った PNG で保存する
- くわしく:マスクを透明度として持った PNG で保存します。
- 試したこと:顔のマスクを付けて保存しました。

ImagePass
- ひとことで:画像を何もせずに次へ渡す(中継用)
- くわしく:画像を何もせずに次へ渡します。ワークフローを整理するときの中継に使います。
- 試したこと:画像がそのまま出ました。

拡大する
ImageUpscaleWithModelBatched
- ひとことで:拡大用のモデルで、VRAM を節約しながら拡大する
- くわしく:拡大用のモデルで画像を拡大します。作者の説明では、標準の拡大ノードと同じです。ただし少しずつ分けて処理して VRAM を節約でき、拡大後に縮める倍率も指定できます。
- 試したこと:256×384 に縮めた画像を、RealESRGAN_x4plus_anime_6B で4倍の 1024×1536 にしました。

動画の部品(VAE)を扱う
EncodeVideoComponents
- ひとことで:動画を読み込み、そのまま潜在画像にする
- くわしく:動画を読み込み、大きさを変えて、そのまま VAE で潜在画像(latent)にします。作者の説明では、途中の画像を全部メモリに置かないための工夫です。
- 試したこと:4コマの短い動画(自作)を、Illustrious XL v2.0 の VAE で 416×608 の潜在画像にしました。それを標準の VAEDecode で画像に戻しました。fps とフレーム数も出力されました。

DecodeAndSaveVideo
- ひとことで:潜在画像を戻しながら、動画ファイルで保存する
- くわしく:動画の潜在画像を VAE で戻しながら、そのまま動画ファイルとして保存します。
- 試したこと:上と同じ潜在画像を mp4 で保存し、
output\videoフォルダに動画ができました。今回は動作の確認のために、画像用の VAE を使いました。 - 注意:本来は、動画モデル用の VAE と組み合わせるノードです。

潜在画像(latent)の情報
GetLatentSizeAndCount
- ひとことで:潜在画像の大きさや枚数を数値で取り出す
- くわしく:潜在画像の大きさや枚数を数値で取り出します。
- 試したこと:832×1216・2枚の空の潜在画像から、枚数 2・チャンネル数 4・フレーム数 0・高さ 152・幅 104 が出ました。
- 注意:潜在画像の高さと幅は、画像の 1/8 の大きさで数えられています。

画面を写すノード(今回は実行していません)
ImageGrabPIL
- ひとことで:パソコンの画面の、指定した範囲を写し取る
- くわしく:パソコンの画面の、指定した範囲を写し取ります。自動で続けて実行すると、リアルタイムの生成にも使えると説明されています。
- 試したこと:実行すると筆者のパソコンの画面がそのまま写るため、今回は実行していません。ノードを置いた画面だけ載せます。
- 注意:実行すると、パソコンの画面がそのまま写ります。人に見せる画面を写さないよう注意してください。

Screencap_mss
- ひとことで:画面の指定した範囲を、mss という部品で写し取る
- くわしく:ImageGrabPIL と同じく、画面の指定した範囲を写し取ります(mss という部品を使います)。
- 試したこと:同じ理由で、今回は実行していません。
- 注意:実行すると、パソコンの画面がそのまま写ります。人に見せる画面を写さないよう注意してください。

ScreencapStream
- ひとことで:ブラウザの画面共有で、画面やウィンドウを写す
- くわしく:ブラウザの画面共有を使って、選んだ画面やウィンドウを写し取ります。ノードの中でプレビューしながら、切り抜く範囲も決められます。
- 試したこと:画面共有の許可が必要で、今回の自動の試験では使えないため、実行していません。

つまずいたのは古い版・つなぐ入力・色の書き方
[DEPR] と出るノード(Resize Image(ImageResizeKJ)、Color Match(ColorMatch))は古い版です。新しく作るワークフローでは、v2 の版を使います。
座標(coordinates)やキャプション(caption)のように、画面に入力欄がなく「つなぐ」形の入力もあります。今回は標準の PrimitiveString(文字列)ノードからつなぎました。
CreateGradientFromCoords は、色を「white」のような名前で書くとエラーになりました。「255, 255, 255」のような数値で書くと動きます。ImageTensorList の出力は、ふつうのプレビューでは表示できませんでした。
画面を写すノード(ImageGrabPIL・Screencap_mss)は、実行するとパソコンの画面がそのまま写ります。人に見せる画面を写さないよう注意してください。
よくある質問(FAQ)
Q. KJNodes にはいくつのノードがありますか?
筆者の環境(ComfyUI-KJNodes 1.5.2)では 260 個でした。そのうち「画像」に分類されているものが 65 個です。
Q. KJNodes の Resize Image と Resize Image v2 はどちらを使えばいいですか?
v2(ImageResizeKJv2)を使ってください。古い Resize Image(ImageResizeKJ)は、作者の説明で「使わないで、v2 を使って」とされていて、画面にも [DEPR] と表示されます。
Q. KJNodes で2枚の画像を横に並べるには?
ImageConcanate(ノード名のつづりは原文のまま)で、direction を right にします。3枚以上なら ImageConcatMulti、バッチを格子状に並べるなら ImageConcatFromBatch を使います。
Q. KJNodes で画像の色合いを別の画像に合わせるには?
ColorMatchV2 を使います。image_target に色を変えたい画像、image_ref に参考にする画像をつなぎます。
Q. KJNodes の座標(coordinates)はどうやって入力しますか?
画面に入力欄がないので、ほかのノードからつなぎます。筆者は ComfyUI の標準の PrimitiveString ノードに、[{"x":100,"y":100},…] のような JSON の文字列を書いてつなぎました。
まとめ
- KJNodes の「画像」ノードは 65 個です。大きさの変更、切り抜き、色、並べる、バッチ、動画のつなぎなど、画像の下ごしらえに使うものが中心です。
- 最初に覚えるのは ImageResizeKJv2・ColorMatchV2・ImageConcanate の3つ。[DEPR] の古い版より、新しい版(v2 など)を使います。
- 61 個を実際に動かして確かめました。ImageTensorList はふつうのプレビューでは表示できず、画面を写す3個は実行していません。
ほかの分類のノード(マスク・テキスト・モデル・動画など)は、②〜⑦で紹介しています。
あわせて読みたい
・KJNodes 完全ガイド(総合索引)
・ComfyUIのカスタムノードの入れ方【2026年版】Managerでの導入とおすすめ3選
・ComfyUIのアップデート方法|ポータブル版の更新手順とカスタムノードの注意点
・ComfyUIの入れ方【Windows・2026年版】初心者でもできるポータブル版の導入手順
検証メモ
この記事の検証環境
Windows 11 / RTX 5090(VRAM 32GB)/ ComfyUI 0.43.0 ポータブル版(試験用)/ ComfyUI-KJNodes 1.5.2(ほかのカスタムノードは停止)/ 画像ノード 65 個を1つずつ試した(動いた61個・プレビューできなかった1個・実行していない3個) / 2026年10月27日に検証
これまでの検証の一覧はこちら
- 起動オプション
--disable-all-custom-nodes --whitelist-custom-nodes comfyui-kjnodesで、KJNodes だけを読み込みました。 - 試すための画像は、筆者が Illustrious XL v2.0 で作ったものです。
- 全260個のうち、「画像」に分類された65個を扱いました(数は筆者の環境で数えたもの)。「いちばんダウンロードされている」は、公式の登録所の2026年10月27日のデータです。
「動いた」は、この環境で実行して結果が出たという意味です。ほかの版や設定での動きは確かめていません。
参考にした資料
- ComfyUI-KJNodes(GitHub・作者のリポジトリ)
- 各ノードの説明は、ComfyUI の画面に表示される作者の説明(ノードの DESCRIPTION)をもとにしました。

