Files
2024-06-29 18:50:22 +08:00

124 lines
5.2 KiB
Markdown

---
tags:
- Sampling
---
# KSampler (Advanced)
## Documentation
- Class name: `KSamplerAdvanced`
- Category: `sampling`
- Output node: `False`
The KSamplerAdvanced node is designed to enhance the sampling process by providing advanced configurations and techniques. It aims to offer more sophisticated options for generating samples from a model, improving upon the basic KSampler functionalities.
## Input types
### Required
- **`model`**
- Specifies the model from which samples are to be generated, playing a crucial role in the sampling process.
- Comfy dtype: `MODEL`
- Python dtype: `str`
- **`add_noise`**
- Determines whether noise should be added to the sampling process, affecting the diversity and quality of the generated samples.
- Comfy dtype: `COMBO[STRING]`
- Python dtype: `bool`
- **`noise_seed`**
- Sets the seed for noise generation, ensuring reproducibility in the sampling process.
- Comfy dtype: `INT`
- Python dtype: `int`
- **`steps`**
- Defines the number of steps to be taken in the sampling process, impacting the detail and quality of the output.
- Comfy dtype: `INT`
- Python dtype: `int`
- **`cfg`**
- Controls the conditioning factor, influencing the direction and space of the sampling process.
- Comfy dtype: `FLOAT`
- Python dtype: `float`
- **`sampler_name`**
- Selects the specific sampler to be used, allowing for customization of the sampling technique.
- Comfy dtype: `COMBO[STRING]`
- Python dtype: `str`
- **`scheduler`**
- Chooses the scheduler for controlling the sampling process, affecting the progression and quality of samples.
- Comfy dtype: `COMBO[STRING]`
- Python dtype: `str`
- **`positive`**
- Specifies the positive conditioning to guide the sampling towards desired attributes.
- Comfy dtype: `CONDITIONING`
- Python dtype: `str`
- **`negative`**
- Specifies the negative conditioning to steer the sampling away from certain attributes.
- Comfy dtype: `CONDITIONING`
- Python dtype: `str`
- **`latent_image`**
- Provides the initial latent image to be used in the sampling process, serving as a starting point.
- Comfy dtype: `LATENT`
- Python dtype: `str`
- **`start_at_step`**
- Determines the starting step of the sampling process, allowing for control over the sampling progression.
- Comfy dtype: `INT`
- Python dtype: `int`
- **`end_at_step`**
- Sets the ending step of the sampling process, defining the scope of the sampling.
- Comfy dtype: `INT`
- Python dtype: `int`
- **`return_with_leftover_noise`**
- Indicates whether to return the sample with leftover noise, affecting the final output's appearance.
- Comfy dtype: `COMBO[STRING]`
- Python dtype: `str`
## Output types
- **`latent`**
- Comfy dtype: `LATENT`
- The output represents the latent image generated from the model, reflecting the applied configurations and techniques.
- Python dtype: `str`
## Usage tips
- Infra type: `CPU`
- Common nodes:
- [VAEDecode](../../Comfy/Nodes/VAEDecode.md)
- Reroute
- workflow/KSampler + Vae
- gcLatentTunnel
- [Anything Everywhere](../../cg-use-everywhere/Nodes/Anything Everywhere.md)
- [LatentCompositeMasked](../../Comfy/Nodes/LatentCompositeMasked.md)
- [KSampler](../../Comfy/Nodes/KSampler.md)
- [LatentBlend](../../Comfy/Nodes/LatentBlend.md)
- Mute / Bypass Repeater (rgthree)
## Source code
```python
class KSamplerAdvanced:
@classmethod
def INPUT_TYPES(s):
return {"required":
{"model": ("MODEL",),
"add_noise": (["enable", "disable"], ),
"noise_seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}),
"steps": ("INT", {"default": 20, "min": 1, "max": 10000}),
"cfg": ("FLOAT", {"default": 8.0, "min": 0.0, "max": 100.0, "step":0.1, "round": 0.01}),
"sampler_name": (comfy.samplers.KSampler.SAMPLERS, ),
"scheduler": (comfy.samplers.KSampler.SCHEDULERS, ),
"positive": ("CONDITIONING", ),
"negative": ("CONDITIONING", ),
"latent_image": ("LATENT", ),
"start_at_step": ("INT", {"default": 0, "min": 0, "max": 10000}),
"end_at_step": ("INT", {"default": 10000, "min": 0, "max": 10000}),
"return_with_leftover_noise": (["disable", "enable"], ),
}
}
RETURN_TYPES = ("LATENT",)
FUNCTION = "sample"
CATEGORY = "sampling"
def sample(self, model, add_noise, noise_seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, start_at_step, end_at_step, return_with_leftover_noise, denoise=1.0):
force_full_denoise = True
if return_with_leftover_noise == "enable":
force_full_denoise = False
disable_noise = False
if add_noise == "disable":
disable_noise = True
return common_ksampler(model, noise_seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise, disable_noise=disable_noise, start_step=start_at_step, last_step=end_at_step, force_full_denoise=force_full_denoise)
```