KJNodes の「テキスト・数値・その他・ループ」のノード 43 個を1つずつ試した結果は、動いた 40 個、エラー 1 個、実行していない 2 個でした。
エラーになったのは、別のカスタムノードが必要な LoadVideosFromFolder。実行していないのはループの内部部品の2個で、単独では意味のある入力を用意できないためです。
動作を確かめたノードは、KJNodes 以外のカスタムノードを止めた ComfyUI で、ComfyUI に最初から入っているノードと組み合わせて試しました。ノードごとに、動かした(または置いた)ときの画面を載せています。試した環境と条件は末尾の「検証メモ」へ。KJNodes の入れ方は ComfyUI のカスタムノードの入れ方を見てください。
全260個を7本に分けて紹介している
ComfyUI-KJNodes(KJNodes)は、ComfyUI の公式の登録所でいちばんダウンロードされているカスタムノードで、入れると 260 個のノードが増えます。この記事はシリーズの③回目です。
全260ノードを、やりたいこと・ノード名から探すには KJNodes 完全ガイド(総合索引)へ。
| 回 | 分類 | 記事 |
|---|---|---|
| ① | 画像 | KJNodesの使い方① |
| ② | マスク | KJNodesの使い方② |
| ③ | テキスト・数値・その他・ループ | この記事 |
| ④ | ラテント・ノイズ・サンプリング・座標 | KJNodesの使い方④ |
| ⑤ | モデル・LoRA・メモリ・高速化 | KJNodesの使い方⑤ |
| ⑥ | 動画モデル用 | KJNodesの使い方⑥ |
| ⑦ | 音声・非推奨 | KJNodesの使い方⑦ |
ノード名は、画面に出る英語の名前(または中身の名前)で書いています。ノードライブラリで名前を入れると見つかります。スクリーンショットの「プレビュー任意」は、数値や文字を表示するための ComfyUI の標準のノードです。
値を置く(定数)
BOOLConstant
オン・オフ(true / false)の値を1つ置きます。いくつかのノードに同じ値を配るときに使います。
試したこと:true を置き、プレビューで true と表示されました。

INTConstant
整数を1つ置きます。
試したこと:1216 を置きました。

FloatConstant
小数を1つ置きます。
試したこと:5.5 を置きました。

StringConstant
1行の文字列を置きます。
試したこと:「masterpiece, best quality」を置きました。

StringConstantMultiline
何行かの文字列を置きます。strip_newlines をオンにすると、改行を取り除いて1行にします。
試したこと:3行の文字列を strip_newlines オンで置き、1行につながりました。

文字を扱う
JoinStrings
2つの文字列を、区切りの文字(delimiter)をはさんでつなげます。
試したこと:「masterpiece, best quality」と「1girl, smile」を「, 」でつなげました。

JoinStringMulti
何個かの文字列をつなげるノード。inputcount と「Update inputs」で入力を増やせます。return_list をオンにすると、つなげずにリストで出します。
試したこと:「red」と「blue」を「 and 」でつなげ、「red and blue」になりました。

AppendStringsToList
文字列をリストに足していきます。
試したこと:「cat」と「dog」で、2つの文字列のリストになりました。

SomethingToString
数値など、どんな値でも文字列に変えます。前後に文字を足せます。
試したこと:42 に前「seed: 」・後「 !」を足して、「seed: 42 !」になりました。

StringToFloatList
「0.2, 0.5, 1.0」のような文字列を、小数のリストに変えます。
試したこと:「0.2, 0.5, 1.0」から、3つの小数のリストが出ました。

WidgetToString
ほかのノードの設定欄(ウィジェット)の値を、文字列として取り出します。ノードの番号や名前で指定するか、any_input につないで指定します。
試したこと:画像を読み込むノードを any_input につなぎ、image 欄の値「kj_girl1.png」を取り出しました。

SaveStringKJ
文字列をテキストファイルとして保存します。
試したこと:「1girl, library, smile」を保存し、保存したファイル名が出ました。

ScaleBatchPromptSchedule
フレーム番号つきのプロンプトの予定表(Fizz のノードの BatchPromptSchedule の形)を、別のフレーム数に合わせて番号を付け直します。
試したこと:「”0″:”a cat”」「”15″:”a dog”」を、16フレームから32フレームに直すと、15 が 31 になりました。最初に「0:(0.0)」のような数値の形で試したところ、空の文字列になりました。プロンプトの予定表の形でないと動きません。

Superprompt
短いプロンプトを、T5 という言語モデルで詳しい文章にふくらませます。作者の説明では、SuperPrompt というデータで学習したモデルを使います。
試したこと:「a cat in a library」を入れると、初回にモデルがダウンロードされ、「a sleek black cat with emerald green eyes …」のような長い英文が出ました。

Ideogram4PromptBuilderKJ
Ideogram 4 というモデル用の、決まった形(JSON)のプロンプトを組み立てます(実験的なノード)。画面上で範囲を描いて、ものや文字を置けます。
試したこと:全体の説明と背景を入れて、JSON の文字列が出ることを確かめました。範囲は描いていないので、プレビューの画像は黒いままです。

文字を画像にする
AddLabel
画像の上(または下・左右)に、文字を書いた帯を足します。画像の高さが変わるので注意が必要です。
試したこと:「kj_girl1.png」と書いた帯を上に足しました。

CreateTextMask
文字を描いた画像とマスクを作ります。回転を変えると、動く文字のバッチにもできます。
試したこと:「KOBO Lab」を描いた画像とマスクができました。

ImageBatchTestPattern
0, 1, 2… と番号を描いた画像のバッチを作ります。バッチの順番を確かめるときに便利です。
試したこと:4枚作り、0〜3 の番号の画像になりました。

計算・切り替え・待つ
SimpleCalculatorKJ
a、b などの値を使って、式を計算します。足し算・かけ算・比べるなどができます。
試したこと:a に 832、b に 2 をつないで「a / b」を計算し、小数 416.0 と整数 416 が出ました。入力の名前は画面上では a・b ですが、つなぐときの中の名前は variables.a のようになっていました。

LazySwitchKJ
オン・オフの値で、2つの入力のどちらを先へ渡すかを切り替えます。選ばれなかった側は実行しません。
試したこと:スイッチを false にして、on_false 側の2枚目の画像が出ました。

Sleep
指定した時間だけ待ってから、値を先へ渡します。
試したこと:2秒待ってから画像を渡しました。

TimerNodeKJ
start と stop の2つを置いて、そのあいだにかかった時間を測ります。
試したこと:あいだに1秒待つ Sleep をはさみ、1004(ミリ秒)と出ました。

DummyOut
何もしないノードです。保存せずに、つないだ先までを実行させたいときに使います。
試したこと:画像をつなぎ、実行できることを確かめました。

PreviewImageOrMask
画像でもマスクでも、つなげばそのまま表示します。
試したこと:画像とマスクを、それぞれ表示しました。

モデル・条件付けを通す・見る
ModelPassThrough
モデルをそのまま通します。作者の説明では、Set ノードがバイパス(迂回)された入力を受け付けない問題の回避用です。
試したこと:Illustrious XL v2.0 のモデルを通してから、ふつうに画像を作れることを確かめました。

CondPassThrough
ポジティブとネガティブの条件付けを、そのまま通します。上と同じく回避用です。
試したこと:2つの条件付けを通してから、ふつうに画像を作れました。

VisualizeSigmasKJ
シグマ(各ステップのノイズの量)の並びを、グラフにして表示します。
試したこと:標準の「基本スケジューラー」(karras・20ステップ)のシグマをグラフにしました。

ContextWindowsVisualizerKJ
動画モデルで長い動画を区切って作るとき(コンテキストウィンドウ)の、区切り方を図で確かめます(実験的なノード)。モデルにその設定をかけることもできます。
試したこと:初期設定(161フレーム・81フレームずつ・30重ねる)で、「3 windows over 41 latent frames」のような説明と図が出ました。

DifferentialDiffusionAdvanced
マスクの濃さに合わせて、場所ごとに変える強さを変えながら描き直します(Differential Diffusion)。
試したこと:顔のあたりのぼかしたマスクで、メガネをかけるプロンプトにして描き直しました(denoise 0.7)。

MiniMaxH3TokenCounter
MiniMax H3 という動画モデルで生成するときの、トークン(処理する単位)の数を、実際に生成せずに数えます。
試したこと:動画用の空の潜在画像(512×512・25フレーム)と、文字の条件付けをつなぎ、合計 333(文字 77・動画 256)と出ました。最初は画像用の潜在画像をつないで「動画の形の潜在画像が必要」というエラーになりました。なお、MiniMax H3 のモデルそのものは使っていないので、数え方が正しいかまでは確かめていません。

読み込み・表示
LoadVideosFromFolder
フォルダの中の動画をまとめて読み込みます。
試したこと:動画を入れたフォルダを指定して実行すると、「This node requires ComfyUI-VideoHelperSuite to be installed.」と出て動きませんでした。別のカスタムノード(VideoHelperSuite)が必要です。このシリーズは KJNodes 以外のカスタムノードを使わないルールなので、入れて試すことはしていません。

CameraPoseVisualizer
カメラの位置と向き(RealEstate10K の形のテキスト、または AnimateDiff-Evolved の CameraCtrl の値)を、3D のグラフで表示します。
試したこと:4フレームぶん、横に少しずつ動くカメラの位置を書いた見本のファイル(自作)を読み込み、3D のグラフが出ました。

ループ(くり返し)
TensorLoopOpen
TensorLoopClose と組にして、間にはさんだ処理をくり返します。回数(iterations)か、たまったフレームの数(total_frames)で止められます。
試したこと:縮めた画像を入れ、間に「画像を反転」をはさんで4回くり返しました。毎回の結果がバッチにまとまって出ました。今が何回目かなどの数値も出ます。

TensorLoopClose
TensorLoopOpen と組にして使う、くり返しの終わりのノードです。accumulate をオンにすると、毎回の結果を1つのバッチにまとめます。
試したこと:上と同じ組み方で試しました(同じ画面)。

_IntOperations
2つの整数を、足す・引く・かける・比べる、などで計算します。名前が「_」で始まるノードは、ループのノードの中で使われる部品で、画面には [DEV] と表示されました。
試したこと:7 × 3 を計算し、21 が出ました。

_ConditionalSelect
オン・オフの値で、2つの値のどちらかを選びます。
試したこと:true にして、1枚目の画像が選ばれました。

_BatchOps
バッチの先頭や最後を切る、2つのバッチをつなげる、などをします。
試したこと:4枚のバッチを trim_start(先頭を切る)・2 にして、残りの2枚になりました。

_AccumulateNode
値を「ためる箱(ACCUMULATION)」に足していきます。
試したこと:画像を1枚足し、_AccumulationToImageBatch で画像に戻しました。

_AccumulationToImageBatch
ためた値を、画像のバッチに戻します。
試したこと:_AccumulateNode を2つつないで2枚ためて、2枚のバッチにしました。

_WhileLoopOpen
_WhileLoopClose と組にして、条件が true のあいだ処理をくり返します。
試したこと:0 から始めて1ずつ足し、3 より小さいあいだくり返すように組みました。結果は 3 になりました。

_WhileLoopClose
_WhileLoopOpen と組にして使う、くり返しの終わりのノードです。condition が false になると止まります。
試したこと:上と同じ組み方で試しました(同じ画面)。

_ImageAccumStatePack
TensorLoop の中で、くり返しの途中の状態をまとめる部品です。KJNodes のコードでは、TensorLoop が自動で組み立てる処理の中で使われていました。
試したこと:単独では意味のある入力を用意できないため、実行していません。ノードを置いた画面だけ載せます。

_ImageAccumStateUnpack
上でまとめた状態を、元の値に分ける部品です。
試したこと:同じ理由で、実行していません。

止まった原因は、入力の形と足りない部品
座標や文字列の多くは「つなぐ」形の入力なので、標準の PrimitiveString などからつないで使いました。SimpleCalculatorKJ の入力も、画面では a・b と見えますが、中の名前は variables.a のようになっています。
入力の形でつまずいたのは2つ。ScaleBatchPromptSchedule は、プロンプトの予定表(”0″:”a cat” のような形)でないと空の文字列になりました。MiniMaxH3TokenCounter は、動画用の形の潜在画像をつながないとエラーになります。
LoadVideosFromFolder は ComfyUI-VideoHelperSuite が必要で、KJNodes だけでは動きません。
よくある質問(FAQ)
Q. KJNodes で文字列をつなげるには?
2つなら JoinStrings、3つ以上なら JoinStringMulti を使います。delimiter(区切り)に「, 」などを入れると、その文字をはさんでつながります。
Q. KJNodes で計算をするには?
SimpleCalculatorKJ を使います。a・b に数値をつなぎ、expression に「a / b」のような式を書くと、小数・整数・オンオフの3つで結果が出ます。
Q. KJNodes で処理にかかった時間を測るには?
TimerNodeKJ を2つ置き、片方を start、もう片方を stop にして、start の timer 出力を stop につなぎます。あいだの処理にかかった時間がミリ秒で出ます。
Q. KJNodes でくり返し(ループ)をするには?
TensorLoopOpen と TensorLoopClose を組にして、あいだに処理をはさみます。iterations で回数を決められ、accumulate をオンにすると毎回の結果が1つのバッチにまとまります。
Q. LoadVideosFromFolder が動きません
このノードは ComfyUI-VideoHelperSuite という別のカスタムノードが必要です。入っていないと「This node requires ComfyUI-VideoHelperSuite to be installed.」と出ます。
まとめ
- KJNodes の「テキスト・数値・その他・ループ」のノードは 43 個
- 文字のつなぎ方、計算、切り替え、時間の計測、ループなど、ワークフローを組みやすくするノードが中心
- 40 個は実行して確かめた。別のカスタムノードが必要なもの・内部部品は、理由を書いて載せた
検証メモ
- 「動いた」は、この環境で実行して結果が出たという意味です。ほかの版や設定での動きは確かめていません。
- MiniMaxH3TokenCounter は、MiniMax H3 のモデルそのものを使っていないので、数え方が正しいかまでは確かめていません。
- 「いちばんダウンロードされている」は、公式の登録所の2026年10月27日のデータです。
参考にした資料
- ComfyUI-KJNodes(GitHub・作者のリポジトリ)
- 各ノードの説明は、ComfyUI の画面に表示される作者の説明(ノードの DESCRIPTION)をもとにしました

