84 lines
3.3 KiB
Markdown
84 lines
3.3 KiB
Markdown
---
|
|
tags:
|
|
- Sampling
|
|
---
|
|
|
|
# ModelSamplingContinuousEDM
|
|
## Documentation
|
|
- Class name: `ModelSamplingContinuousEDM`
|
|
- Category: `advanced/model`
|
|
- Output node: `False`
|
|
|
|
The ModelSamplingContinuousEDM node is designed to configure and apply continuous, evenly distributed model sampling techniques within a deep learning model's architecture. It focuses on adjusting the model's sampling parameters based on provided configurations, enabling precise control over the diffusion process for generating or processing data.
|
|
## Input types
|
|
### Required
|
|
- **`model`**
|
|
- The model input represents the deep learning model to which the sampling techniques will be applied, serving as the foundation for configuring and adjusting sampling parameters.
|
|
- Comfy dtype: `MODEL`
|
|
- Python dtype: `torch.nn.Module`
|
|
- **`sampling`**
|
|
- Specifies the type of sampling technique to be applied, influencing the model's behavior and the characteristics of the generated or processed data.
|
|
- Comfy dtype: `COMBO[STRING]`
|
|
- Python dtype: `str`
|
|
- **`sigma_max`**
|
|
- Defines the maximum value of sigma for the sampling process, setting an upper limit on the diffusion scale.
|
|
- Comfy dtype: `FLOAT`
|
|
- Python dtype: `float`
|
|
- **`sigma_min`**
|
|
- Defines the minimum value of sigma for the sampling process, setting a lower limit on the diffusion scale.
|
|
- Comfy dtype: `FLOAT`
|
|
- Python dtype: `float`
|
|
## Output types
|
|
- **`model`**
|
|
- Comfy dtype: `MODEL`
|
|
- The modified model with updated sampling parameters, reflecting the applied continuous, evenly distributed model sampling techniques.
|
|
- Python dtype: `torch.nn.Module`
|
|
## Usage tips
|
|
- Infra type: `GPU`
|
|
- Common nodes:
|
|
- [FreeU_V2](../../Comfy/Nodes/FreeU_V2.md)
|
|
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class ModelSamplingContinuousEDM:
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {"required": { "model": ("MODEL",),
|
|
"sampling": (["v_prediction", "edm_playground_v2.5", "eps"],),
|
|
"sigma_max": ("FLOAT", {"default": 120.0, "min": 0.0, "max": 1000.0, "step":0.001, "round": False}),
|
|
"sigma_min": ("FLOAT", {"default": 0.002, "min": 0.0, "max": 1000.0, "step":0.001, "round": False}),
|
|
}}
|
|
|
|
RETURN_TYPES = ("MODEL",)
|
|
FUNCTION = "patch"
|
|
|
|
CATEGORY = "advanced/model"
|
|
|
|
def patch(self, model, sampling, sigma_max, sigma_min):
|
|
m = model.clone()
|
|
|
|
latent_format = None
|
|
sigma_data = 1.0
|
|
if sampling == "eps":
|
|
sampling_type = comfy.model_sampling.EPS
|
|
elif sampling == "v_prediction":
|
|
sampling_type = comfy.model_sampling.V_PREDICTION
|
|
elif sampling == "edm_playground_v2.5":
|
|
sampling_type = comfy.model_sampling.EDM
|
|
sigma_data = 0.5
|
|
latent_format = comfy.latent_formats.SDXL_Playground_2_5()
|
|
|
|
class ModelSamplingAdvanced(comfy.model_sampling.ModelSamplingContinuousEDM, sampling_type):
|
|
pass
|
|
|
|
model_sampling = ModelSamplingAdvanced(model.model.model_config)
|
|
model_sampling.set_parameters(sigma_min, sigma_max, sigma_data)
|
|
m.add_object_patch("model_sampling", model_sampling)
|
|
if latent_format is not None:
|
|
m.add_object_patch("latent_format", latent_format)
|
|
return (m, )
|
|
|
|
```
|