- ホーム
- Comfyui Nodes
- Sampling
- ComfyUIのKSampler:steps、cfg、seed、denoiseの設定
ComfyUIのKSampler:steps、cfg、seed、denoiseの設定
ComfyUI Wiki
ComfyUIのKSamplerはモデルとポジティブ・ネガティブ条件付けで潜在画像をデノイズします。steps、cfg、seed、sampler_name、scheduler、denoiseの既定値について解説します。
ドキュメンテーション
- クラス名:
KSampler - カテゴリ:
Sampling - 出力ノード:
No
KSamplerは次のように動作します。指定された特定のモデルとポジティブ・ネガティブ両方の条件に基づいて、提供された元の潜在画像情報を変更します。 まず、設定されたseedとdenoise強度に従って元の画像データにノイズを追加し、次にプリセットのModelをpositiveおよびnegativeのガイダンス条件と組み合わせて入力し、画像を生成します。
入力パラメータ
| パラメータ名 | データ型 | 必須 | 既定値 | 範囲/オプション | 説明 |
|---|---|---|---|---|---|
| Model | checkpoint | はい | なし | - | デノイズ処理に使用される入力モデル |
| seed | 整数 | はい | 0 | 0 ~ 18446744073709551615 | ランダムノイズの生成に使用。同じ「seed」を使用すると同一の画像が生成される |
| steps | 整数 | はい | 20 | 1 ~ 10000 | デノイズ処理で使用するステップ数。ステップが多いほど結果が正確になる |
| cfg | 浮動小数点 | はい | 8.0 | 0.0 ~ 100.0 | 生成画像が入力条件にどれだけ一致するかを制御。6~8が推奨 |
| sampler_name | UIオプション | はい | なし | 複数のアルゴリズム | デノイズ用のサンプラーを選択。生成速度とスタイルに影響 |
| scheduler | UIオプション | はい | なし | 複数のスケジューラー | ノイズの除去方法を制御。生成プロセスに影響 |
| Positive | conditioning | はい | なし | - | デノイズを導くポジティブ条件。画像に表示させたい内容 |
| Negative | conditioning | はい | なし | - | デノイズを導くネガティブ条件。画像に表示させたくない内容 |
| Latent_Image | Latent | はい | なし | - | デノイズに使用する潜在画像 |
| denoise | 浮動小数点 | いいえ | 1.0 | 0.0 ~ 1.0 | ノイズ除去の比率を決定。値が低いほど入力画像との関連性が低くなる |
| control_after_generate | UIオプション | いいえ | なし | Random/Inc/Dec/Keep | 各プロンプト後にシードを変更する機能を提供 |
出力
| パラメータ名 | 機能 |
|---|---|
| Latent | サンプラーのデノイズ後の潜在を出力 |
ソースコード
[2025年5月15日更新]
def common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent, denoise=1.0, disable_noise=False, start_step=None, last_step=None, force_full_denoise=False):
latent_image = latent["samples"]
latent_image = comfy.sample.fix_empty_latent_channels(model, latent_image)
if disable_noise:
noise = torch.zeros(latent_image.size(), dtype=latent_image.dtype, layout=latent_image.layout, device="cpu")
else:
batch_inds = latent["batch_index"] if "batch_index" in latent else None
noise = comfy.sample.prepare_noise(latent_image, seed, batch_inds)
noise_mask = None
if "noise_mask" in latent:
noise_mask = latent["noise_mask"]
callback = latent_preview.prepare_callback(model, steps)
disable_pbar = not comfy.utils.PROGRESS_BAR_ENABLED
samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,
denoise=denoise, disable_noise=disable_noise, start_step=start_step, last_step=last_step,
force_full_denoise=force_full_denoise, noise_mask=noise_mask, callback=callback, disable_pbar=disable_pbar, seed=seed)
out = latent.copy()
out["samples"] = samples
return (out, )
class KSampler:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"model": ("MODEL", {"tooltip": "The model used for denoising the input latent."}),
"seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff, "control_after_generate": True, "tooltip": "The random seed used for creating the noise."}),
"steps": ("INT", {"default": 20, "min": 1, "max": 10000, "tooltip": "The number of steps used in the denoising process."}),
"cfg": ("FLOAT", {"default": 8.0, "min": 0.0, "max": 100.0, "step":0.1, "round": 0.01, "tooltip": "The Classifier-Free Guidance scale balances creativity and adherence to the prompt. Higher values result in images more closely matching the prompt however too high values will negatively impact quality."}),
"sampler_name": (comfy.samplers.KSampler.SAMPLERS, {"tooltip": "The algorithm used when sampling, this can affect the quality, speed, and style of the generated output."}),
"scheduler": (comfy.samplers.KSampler.SCHEDULERS, {"tooltip": "The scheduler controls how noise is gradually removed to form the image."}),
"positive": ("CONDITIONING", {"tooltip": "The conditioning describing the attributes you want to include in the image."}),
"negative": ("CONDITIONING", {"tooltip": "The conditioning describing the attributes you want to exclude from the image."}),
"latent_image": ("LATENT", {"tooltip": "The latent image to denoise."}),
"denoise": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01, "tooltip": "The amount of denoising applied, lower values will maintain the structure of the initial image allowing for image to image sampling."}),
}
}
RETURN_TYPES = ("LATENT",)
OUTPUT_TOOLTIPS = ("The denoised latent.",)
FUNCTION = "sample"
CATEGORY = "sampling"
DESCRIPTION = "Uses the provided model, positive and negative conditioning to denoise the latent image."
def sample(self, model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=1.0):
return common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise)
コメント
GitHubでサインインしてディスカッションに参加しましょう。