Skip to content

Commit 8a5d5bb

Browse files
authored
Merge pull request #12 from Comfy-Org/BasicScheduler
Update BasicScheduler docs
2 parents 4ed4cd7 + 53b8887 commit 8a5d5bb

File tree

8 files changed

+418
-73
lines changed

8 files changed

+418
-73
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.venv
22
dist
33
*.egg-info
4-
*.DS_Store
4+
*.DS_Store
5+
.ref/
Lines changed: 58 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,63 @@
1+
The `BasicScheduler` node is designed to compute a sequence of sigma values for diffusion models based on the provided scheduler, model, and denoising parameters. It dynamically adjusts the total number of steps based on the denoise factor to fine-tune the diffusion process, providing precise "recipes" for different stages in advanced sampling processes that require fine control (such as multi-stage sampling).
12

2-
The BasicScheduler node is designed to compute a sequence of sigma values for diffusion models based on the provided scheduler, model, and denoising parameters. It dynamically adjusts the total number of steps based on the denoise factor to fine-tune the diffusion process.
3+
## Input Parameters
34

4-
## Input types
5+
| Parameter | Data Type | Input Type | Default | Range | Metaphor Description | Technical Purpose |
6+
| ----------- | ------------- | ---------- | ------- | -------- | ------------------------------ | ---------------------------- |
7+
| `model` | MODEL | Input | - | - | **Canvas Type**: Different canvas materials need different paint formulas | Diffusion model object, determines sigma calculation basis |
8+
| `scheduler` | COMBO[STRING] | Widget | - | 9 options | **Mixing Technique**: Choose how paint concentration changes | Scheduling algorithm, controls noise decay mode |
9+
| `steps` | INT | Widget | 20 | 1-10000 | **Mixing Count**: 20 mixes vs 50 mixes precision difference | Sampling steps, affects generation quality and speed |
10+
| `denoise` | FLOAT | Widget | 1.0 | 0.0-1.0 | **Creation Intensity**: Control level from fine-tuning to repainting | Denoising strength, supports partial repainting scenarios |
511

6-
| Parameter | Comfy dtype | Description |
7-
|-----------|-------------|-------------|
8-
| `model` | `MODEL` | The model parameter specifies the diffusion model for which the sigma values are to be calculated. It plays a crucial role in determining the appropriate sigma values for the diffusion process. |
9-
| `scheduler` | `COMBO[STRING]` | The scheduler parameter determines the scheduling algorithm to be used for calculating the sigma values. It directly influences the progression and characteristics of the diffusion process. |
10-
| `steps` | `INT` | The steps parameter indicates the total number of steps in the diffusion process. It affects the granularity and duration of the process. |
11-
| `denoise` | `FLOAT` | The denoise parameter allows for adjusting the effective number of steps by scaling the total steps, enabling finer control over the diffusion process. |
12+
### Scheduler Types
1213

13-
## Output types
14+
Based on source code `comfy.samplers.SCHEDULER_NAMES`, supports the following 9 schedulers:
1415

15-
| Parameter | Comfy dtype | Description |
16-
|-----------|-------------|-------------|
17-
| `sigmas` | `SIGMAS` | The sigmas output represents the computed sequence of sigma values for the diffusion process, essential for controlling the noise level at each step. |
16+
| Scheduler Name | Characteristics | Use Cases | Noise Decay Pattern |
17+
| -------------------- | -------------------- | ---------------------------- | ---------------------------- |
18+
| **normal** | Standard linear | General scenarios, balanced | Uniform decay |
19+
| **karras** | Smooth transition | High quality, detail-rich | Smooth non-linear decay |
20+
| **exponential** | Exponential decay | Fast generation, efficiency | Exponential rapid decay |
21+
| **sgm_uniform** | SGM uniform | Specific model optimization | SGM optimized decay |
22+
| **simple** | Simple scheduling | Quick testing, basic use | Simplified decay |
23+
| **ddim_uniform** | DDIM uniform | DDIM sampling optimization | DDIM specific decay |
24+
| **beta** | Beta distribution | Special distribution needs | Beta function decay |
25+
| **linear_quadratic** | Linear quadratic | Complex scenario optimization| Quadratic function decay |
26+
| **kl_optimal** | KL optimal | Theoretical optimization | KL divergence optimized decay|
27+
28+
## Output Results
29+
30+
| Parameter | Data Type | Output Type | Metaphor Description | Technical Meaning |
31+
| --------- | --------- | ----------- | ---------------------- | -------------------------------- |
32+
| `sigmas` | SIGMAS | Output | **Paint Recipe Chart**: Detailed paint concentration list for step-by-step use | Noise level sequence, guides diffusion model denoising process |
33+
34+
35+
## Node Role: Artist's Color Mixing Assistant
36+
37+
Imagine you are an artist creating a clear image from a chaotic mixture of paint (noise). `BasicScheduler` acts like your **professional color mixing assistant**, whose job is to prepare a series of precise paint concentration recipes:
38+
39+
### Workflow
40+
- **Step 1**: Use 90% concentration paint (high noise level)
41+
- **Step 2**: Use 80% concentration paint
42+
- **Step 3**: Use 70% concentration paint
43+
- **...**
44+
- **Final Step**: Use 0% concentration (clean canvas, no noise)
45+
46+
### Color Assistant's Special Skills
47+
48+
**Different mixing methods (scheduler)**:
49+
- **"karras" mixing method**: Paint concentration changes very smoothly, like professional artist's gradient technique
50+
- **"exponential" mixing method**: Paint concentration decreases rapidly, suitable for quick creation
51+
- **"linear" mixing method**: Paint concentration decreases uniformly, stable and controllable
52+
53+
**Fine control (steps)**:
54+
- **20 mixes**: Quick painting, efficiency priority
55+
- **50 mixes**: Fine painting, quality priority
56+
57+
**Creation intensity (denoise)**:
58+
- **1.0 = Complete new creation**: Start completely from blank canvas
59+
- **0.5 = Half transformation**: Keep half of original painting, transform half
60+
- **0.2 = Fine adjustment**: Only make subtle adjustments to original painting
61+
62+
### Collaboration with Other Nodes
63+
`BasicScheduler` (Color Assistant) → Prepare Recipe → `SamplerCustom` (Artist) → Actual Painting → Completed Work
Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,63 @@
1-
El nodo BasicScheduler está diseñado para calcular una secuencia de valores sigma para modelos de difusión basados en el programador, modelo y parámetros de reducción de ruido proporcionados. Ajusta dinámicamente el número total de pasos según el factor de reducción de ruido para afinar el proceso de difusión.
1+
El nodo `ProgramadorBásico` está diseñado para calcular una secuencia de valores sigma para modelos de difusión basados en el programador, modelo y parámetros de reducción de ruido proporcionados. Ajusta dinámicamente el número total de pasos según el factor de reducción de ruido para afinar el proceso de difusión, proporcionando "recetas" precisas para diferentes etapas en procesos de muestreo avanzados que requieren control fino (como el muestreo por etapas).
22

3-
## Tipos de entrada
3+
## Parámetros de Entrada
44

5-
| Parámetro | Comfy dtype | Descripción |
6-
|------------|-------------|-------------|
7-
| `model` | `MODEL` | El parámetro model especifica el modelo de difusión para el cual se calcularán los valores sigma. Juega un papel crucial en la determinación de los valores sigma apropiados para el proceso de difusión. |
8-
| `scheduler`| `COMBO[STRING]` | El parámetro scheduler determina el algoritmo de programación que se utilizará para calcular los valores sigma. Influye directamente en la progresión y características del proceso de difusión. |
9-
| `steps` | `INT` | El parámetro steps indica el número total de pasos en el proceso de difusión. Afecta la granularidad y duración del proceso. |
10-
| `denoise` | `FLOAT` | El parámetro denoise permite ajustar el número efectivo de pasos escalando los pasos totales, permitiendo un control más fino sobre el proceso de difusión. |
5+
| Parámetro | Tipo de Dato | Tipo de Entrada | Por Defecto | Rango | Descripción Metafórica | Propósito Técnico |
6+
| ----------- | ------------- | --------------- | ----------- | --------- | ------------------------ | ------------------- |
7+
| `modelo` | MODEL | Input | - | - | **Tipo de Lienzo**: Diferentes materiales de lienzo necesitan diferentes fórmulas de pintura | Objeto del modelo de difusión, determina la base del cálculo sigma |
8+
| `programador` | COMBO[STRING] | Widget | - | 9 opciones| **Técnica de Mezcla**: Elegir cómo cambia la concentración de pintura | Algoritmo de programación, controla el modo de decaimiento del ruido |
9+
| `pasos` | INT | Widget | 20 | 1-10000 | **Conteo de Mezclas**: Diferencia de precisión entre 20 vs 50 mezclas | Pasos de muestreo, afecta la calidad y velocidad de generación |
10+
| `desruido` | FLOAT | Widget | 1.0 | 0.0-1.0 | **Intensidad de Creación**: Nivel de control desde ajuste fino hasta repintado | Fuerza de reducción de ruido, soporta escenarios de repintado parcial |
1111

12-
## Tipos de salida
12+
### Tipos de Programadores
1313

14-
| Parámetro | Comfy dtype | Descripción |
15-
|-----------|-------------|-------------|
16-
| `sigmas` | `SIGMAS` | La salida sigmas representa la secuencia calculada de valores sigma para el proceso de difusión, esencial para controlar el nivel de ruido en cada paso. |
14+
Basado en el código fuente `comfy.samplers.SCHEDULER_NAMES`, soporta los siguientes 9 programadores:
15+
16+
| Nombre del Programador | Características | Casos de Uso | Patrón de Decaimiento del Ruido |
17+
| ---------------------- | ---------------------- | --------------------------------- | ---------------------------------- |
18+
| **normal** | Lineal estándar | Escenarios generales, equilibrado | Decaimiento uniforme |
19+
| **karras** | Transición suave | Alta calidad, rico en detalles | Decaimiento no lineal suave |
20+
| **exponential** | Decaimiento exponencial| Generación rápida, eficiencia | Decaimiento rápido exponencial |
21+
| **sgm_uniform** | SGM uniforme | Optimización de modelo específico | Decaimiento optimizado SGM |
22+
| **simple** | Programación simple | Pruebas rápidas, uso básico | Decaimiento simplificado |
23+
| **ddim_uniform** | DDIM uniforme | Optimización de muestreo DDIM | Decaimiento específico DDIM |
24+
| **beta** | Distribución Beta | Necesidades de distribución especial | Decaimiento de función Beta |
25+
| **linear_quadratic** | Cuadrático lineal | Optimización de escenarios complejos | Decaimiento de función cuadrática |
26+
| **kl_optimal** | KL óptimo | Optimización teórica | Decaimiento optimizado de divergencia KL |
27+
28+
## Resultados de Salida
29+
30+
| Parámetro | Tipo de Dato | Tipo de Salida | Descripción Metafórica | Significado Técnico |
31+
| --------- | ------------ | -------------- | -------------------------------- | ----------------------------------------------- |
32+
| `sigmas` | SIGMAS | Output | **Tabla de Recetas de Pintura**: Lista detallada de concentración de pintura para uso paso a paso | Secuencia de niveles de ruido, guía el proceso de reducción de ruido del modelo de difusión |
33+
34+
35+
## Rol del Nodo: Asistente de Mezcla de Colores del Artista
36+
37+
Imagina que eres un artista creando una imagen clara a partir de una mezcla caótica de pintura (ruido). `ProgramadorBásico` actúa como tu **asistente profesional de mezcla de colores**, cuyo trabajo es preparar una serie de recetas precisas de concentración de pintura:
38+
39+
### Flujo de Trabajo
40+
- **Paso 1**: Usar pintura de concentración 90% (nivel de ruido alto)
41+
- **Paso 2**: Usar pintura de concentración 80%
42+
- **Paso 3**: Usar pintura de concentración 70%
43+
- **...**
44+
- **Paso Final**: Usar concentración 0% (lienzo limpio, sin ruido)
45+
46+
### Habilidades Especiales del Asistente de Colores
47+
48+
**Diferentes métodos de mezcla (scheduler)**:
49+
- **Método de mezcla "karras"**: La concentración de pintura cambia muy suavemente, como la técnica de gradiente de un artista profesional
50+
- **Método de mezcla "exponential"**: La concentración de pintura disminuye rápidamente, adecuado para creación rápida
51+
- **Método de mezcla "linear"**: La concentración de pintura disminuye uniformemente, estable y controlable
52+
53+
**Control fino (steps)**:
54+
- **20 mezclas**: Pintura rápida, prioridad en eficiencia
55+
- **50 mezclas**: Pintura fina, prioridad en calidad
56+
57+
**Intensidad de creación (denoise)**:
58+
- **1.0 = Creación completamente nueva**: Comenzar completamente desde lienzo en blanco
59+
- **0.5 = Media transformación**: Mantener la mitad de la pintura original, transformar la mitad
60+
- **0.2 = Ajuste fino**: Solo hacer ajustes sutiles a la pintura original
61+
62+
### Colaboración con Otros Nodos
63+
`ProgramadorBásico` (Asistente de Colores) → Preparar Receta → `ÉchantillonneurPersonnalisé` (Artista) → Pintura Real → Trabajo Completado

0 commit comments

Comments
 (0)