search
  1. ComfyUIのカスタムサンプリング|SamplerCustom・ガイダー・ノイズ・シグマ

ComfyUI

ComfyUIのカスタムサンプリング|SamplerCustom・ガイダー・ノイズ・シグマ

編集部 読了 約10分

*2026年9月29日に確認した内容です。ComfyUI の公式ドキュメントの組み込みのノードの説明(SamplerCustom・SamplerCustomAdvanced・BasicGuider・CFGGuider・DualCFGGuider・RandomNoise・DisableNoise・KSamplerSelect・BasicScheduler・KarrasScheduler・SplitSigmas ほか)によります。これらのページの説明は、AI で作られたものです。画面と画像は、編集部の PC(Windows 11・NVIDIA GeForce RTX 4060)のポータブル版(Python ごと1つのフォルダに入った Windows 向けの ComfyUI。ComfyUI v0.37.0・フロントエンド 1.52.7・画面の表示は日本語)で作りました。

KSampler は、サンプリング(ノイズを取り除いて画像を作る処理)を1つのノードで受け持ちます。ComfyUI では、これをノイズ・ガイダー・サンプラー・シグマのノードに分けて組めます。分けたノードを SamplerCustomAdvanced(カスタムサンプラー(高度))につなぐと、KSampler では選べないスケジューラやガイダンス(ノイズの取り除き方を導く方法)も使えます。編集部が KSampler と同じ設定で組むと、同じ画像ができました。

サンプリングをノードに分けて組む

KSampler は、シード・CFG(画像をプロンプトにどれだけ沿わせるかの強さ)・サンプラー・スケジューラなどの設定を、1つのノードの中に持っています。カスタムサンプリングでは、これらを次の4つの別のノードに分けて組みます。

分けたものすること代表のノード(画面の名前)
ノイズ潜在(画像になる前の、画像を縮めた数の並び)に足すノイズを、シードから作るRandomNoise(ランダムノイズ)
ガイダーモデルとプロンプトの条件付けで、ノイズの取り除き方を導く。CFG もここで決めるCFGGuider(CFGガイダー)
サンプラーノイズを取り除く計算の方法KSamplerSelect(Kサンプラー選択)
シグマステップごとのノイズの量の並び。スケジューラのノードが作るBasicScheduler(基本スケジューラー)

KSampler の各設定の意味は、「ComfyUIのKSamplerの設定|シード・ステップ・CFG・サンプラー・スケジューラ・デノイズ」の記事で解説しています。

SamplerCustomとSamplerCustomAdvanced

カスタムサンプリングの中心のノードは、SamplerCustom(カスタムサンプラー)と SamplerCustomAdvanced(カスタムサンプラー(高度))の2つです。

ノード受け取るもの
SamplerCustomモデル・ノイズを追加(オン・オフ)・ノイズシード・cfg・ポジティブ・ネガティブ・サンプラー・シグマ・潜在画像
SamplerCustomAdvancedノイズ・ガイダー・サンプラー・シグマ・潜在イメージ

SamplerCustom は、ノイズとガイダーの設定をノードの中に持ち、サンプラーとシグマだけを別のノードから受け取ります。SamplerCustomAdvanced は、ノイズとガイダーも別のノードから受け取ります。どちらも、出力は「出力」と「ノイズ除去出力」(denoised_output)の2つです。公式ドキュメントによると、ノイズ除去出力は、サンプリングの途中でノイズを除いた予測(x0)ができるときはその予測を出し、できないときは「出力」と同じものを返します。

編集部は、SD1.5 のモデルで、次のようにつないで実行しました。

  1. 「ランダムノイズ」「CFGガイダー」「Kサンプラー選択」「基本スケジューラー」「カスタムサンプラー(高度)」を、キャンバスに置く
  2. 「チェックポイントを読み込む」の「モデル」を、「CFGガイダー」と「基本スケジューラー」の「モデル」につなぐ
  3. 作りたいもののプロンプトの「CLIPテキストエンコード(プロンプト)」を「CFGガイダー」の「ポジティブ」に、入れたくないもののプロンプトを「ネガティブ」につなぐ
  4. 「ランダムノイズ」「CFGガイダー」「Kサンプラー選択」「基本スケジューラー」の出力を、「カスタムサンプラー(高度)」の「ノイズ」「ガイダー」「サンプラー」「シグマ」につなぐ
  5. 「空の潜在画像」の「潜在」を「カスタムサンプラー(高度)」の「潜在イメージ」につなぎ、「出力」を「VAEデコード」の「サンプル」につなぐ
  6. 画面の右上の「実行する」を押す
カスタムサンプラー(高度)に、ランダムノイズ・CFGガイダー・Kサンプラー選択・基本スケジューラーをつないだワークフロー。右の画像を保存に居間の画像が出ている
ノイズシード 42・cfg 7.0・euler・normal・ステップ 20 で組んだところ(v0.37.0・フロントエンド 1.52.7)

同じ設定(シード 42・CFG 7.0・euler・normal・ステップ 20・デノイズ 1.00)の KSampler で作った画像と比べました。1画素あたりの差の平均は 0 で、同じ画像でした。

ノイズのノード

ノイズのノードは、SamplerCustomAdvanced の「ノイズ」に渡すノイズを作ります。

ノード(画面の名前)公式ドキュメントの説明
RandomNoise(ランダムノイズ)シードからノイズを作る。同じシードは、いつも同じノイズを作る
DisableNoise(ノイズを無効にする)ノイズを足さない、空のノイズを渡す
AddNoise(ノイズを追加)ノイズの生成器とシグマで、潜在にノイズを足す

ガイダーのノード

ガイダーは、モデルとプロンプトの条件付けから、ノイズの取り除き方を導くものです。

ノード(画面の名前)受け取るもの公式ドキュメントの説明
BasicGuider(基本ガイダー)モデル・コンディショニング条件付けを1つだけ使う。ネガティブと CFG は無い
CFGGuider(CFGガイダー)モデル・ポジティブ・ネガティブ・cfgポジティブとネガティブの条件付けと、cfg(初めの値 8.0)で導く。KSampler と同じ入力
DualCFGGuider(デュアルCFGガイダー)モデル・cond1・cond2・ネガティブ・cfg_conds・cfg_cond2_negative・style2つのポジティブの条件付けと1つのネガティブを、2つの CFG で使う。style は regular と nested
CFGOverrideモデル・cfg・開始パーセント・終了パーセントサンプリングの決まった範囲だけ、CFG を決まった値に置き換える

公式ドキュメントでは、BasicGuider を条件付けだけで導くシンプルなガイダーとしています。このほか、LTXV・動画向けのガイダー(LTXVDualCFGGuider・VideoLinearCFGGuidance・VideoTriangleCFGGuidance など)は、決まったモデルのためのノードです。

サンプラーのノード

KSamplerSelect(Kサンプラー選択)は、KSampler の「サンプラー名」と同じ一覧から、サンプラーを1つ選んで渡すノードです。

このほかに、サンプラーごとに細かい値を決められるノードがあります。たとえば SamplerEulerAncestral(サンプラーオイラー祖先)・SamplerDPMPP_2M_SDE・SamplerDPMPP_SDE・SamplerDPMPP_3M_SDE・SamplerLMS・SamplerLCM・SamplerER_SDE・SamplerDPMAdaptative です。公式ドキュメントでは、SamplerEulerAncestral を、各ステップにランダムさを加えるサンプラーを作るノードとしています。

スケジューラとシグマのノード

シグマは、ステップごとのノイズの量を並べたものです。スケジューラのノードがシグマを作り、SamplerCustom と SamplerCustomAdvanced の「シグマ」に渡します。どのスケジューラのノードも、シグマの並び方を変えるものです。次の表の説明は公式ドキュメントによるもので、編集部は BasicScheduler のほかは画像で比べていません。

ノード(画面の名前)公式ドキュメントの説明
BasicScheduler(基本スケジューラー)モデル・スケジューラ(KSampler と同じ9つ)・ステップ・ノイズ除去からシグマを作る
KarrasScheduler(カラススケジューラー)Karras らの論文(2022年)のノイズスケジュールで作る。シグマの最大・最小と、曲線の形(ロー)を決める
ExponentialScheduler(指数スケジューラー)指数関数に沿ったシグマを作る
PolyexponentialScheduler(ポリ指数スケジューラー)多項式指数のノイズスケジュールで作る
SDTurboScheduler(SDターボスケジューラー)ノイズ除去とステップ数からシグマを作る
AlignYourStepsScheduler(ステップを整列)モデルの種類(SD1・SDXL・SVD)ごとの組み込みのスケジュールで作る。ステップの初めの値は 10
BetaSamplingScheduler(ベータサンプリングスケジューラー)ベータのスケジューリングで作る
GITSScheduler(GITSスケジューラー)GITS(Generative Iterative Time Steps)の方法で作る
LaplaceScheduler(ラプラススケジューラー)ラプラス分布に沿ったシグマを作る
VPScheduler(VPスケジューラー)Variance Preserving の方法で作る
OptimalStepsScheduler選んだモデルの種類の基本のノイズレベルから作る

できたシグマを加工するノードもあります。

ノード(画面の名前)公式ドキュメントの説明
SplitSigmas(シグマを分割)決めたステップでシグマを2つ(高シグマ・低シグマ)に分ける
SplitSigmasDenoise(シグマを分割してノイズ除去)ノイズ除去の強さで分ける位置を決めて、2つに分ける
FlipSigmas(シグマを反転)シグマの並びを逆にする
SetFirstSigma最初の値だけを決めた値に置き換える
ExtendIntermediateSigmasシグマの間に中間の値を足す
SamplingPercentToSigmaサンプリングの割合(0.0〜1.0)を、そのモデルのシグマの値に変える
ManualSigmas(マニュアルシグマ)シグマの並びを、数のリストの文字列で手で決める

編集部は、「基本スケジューラー」(normal・ステップ 20)のシグマを、「シグマを分割」(ステップ 10)で2つに分け、中身を「プレビュー任意」(受け取った値を文字で見せるノード)で見ました。

基本スケジューラーのシグマをシグマを分割で2つに分け、2つのプレビュー任意に数の並びが出ているところ
高シグマは 14.6146 から 1.4806 までの11個、低シグマは 1.4806 から 0 までの11個に分かれた(v0.37.0・フロントエンド 1.52.7)

公式ドキュメントでは、SplitSigmas を、シグマの前半と後半に別の処理をするためのノードとしています。

スケジューラには、Flux2Scheduler・LTXVScheduler・Ideogram4Scheduler のように、決まったモデルのためのノードもあります。モデルごとのワークフローは、「ComfyUIの画像モデルとは|系統ごとのワークフロー」の記事で解説します。

会員登録(無料)

記事やテーマのお気に入り・学習履歴・フォローが使えます。

この記事について

PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

あわせて読みたい