## Nodes Browser

# ComfyDeploy: How sigmas_tools_and_the_golden_scheduler works in ComfyUI?

## What is sigmas_tools_and_the_golden_scheduler?

A few nodes to mix sigmas and a custom scheduler that uses phi, then one using eval() to be able to schedule with custom formulas.

## How to install it in ComfyDeploy?

Head over to the machine page

- Click on the "Create a new machine" button
- Select the
`Edit`

build steps - Add a new step -> Custom Node
- Search for
`sigmas_tools_and_the_golden_scheduler`

and select it - Close the build step dialig and then click on the "Save" button to rebuild the machine

# sigmas_tools_and_the_golden_scheduler

A few nodes to mix sigmas and a custom scheduler that uses phi, then one using eval() to be able to schedule with custom formulas.

# Nodes

**Merge sigmas by average**: takes sigmas_1 and sigmas_2 as an input and merge them with a custom weight.

**Merge sigmas gradually** : takes sigmas_1 and sigmas_2 as an input and merge them by starting with sigmas_1 times the weight and sigmas_2 times 1-the weight, like if you want to start with karras and end with simple.

**Multiply sigmas**: simply multiply the sigmas by what you want.

**Split and concatenate sigmas**: takes sigmas_1 and sigmas_2 as an input and merge them by starting with sigmas_1 until the chosen step, then the rest with sigmas_2

**Get sigmas as float**: Just get first - last step to be able to inject noise inside a latent with noise injection nodes.

**Graph sigmas**: make a graph of the sigmas.

**Aligned scheduler**: selects the steps from align your steps.

Differences:

- force_sigma_min: off / 10 steps: gives the same values as Comfy's implementation, which matches the aligned steps of the simple scheduler.
- force_sigma_min: on / 11 steps: the added step corresponds to the minimum sigmas of the model.
- The main difference is that it takes into account the min/max sigmas of the model rather than those from the linked page. This might be beneficial with COSXL models for example.

**Manual scheduler**: uses eval() to create a custom schedule. The math module is fully imported. Available variables are:

- sigmin: sigma min
- sigmax: sigma max
- phi
- pi comes from math
- x equals 1 for the first step and 0 for the last step.
- y equals 0 for the first step and 1 for the last step.
- s or steps: total amount of steps.
- j from 0 to total steps -1.
- f gives a normalized from 1 to 0 curve based on a reversed Fibonacci sequence

And this one makes the max sigma proportional to the amount of steps, it is pretty good with dpmpp2m:

```
max([x**phi*s/phi,sigmin])
```

This one works nicely with lms, euler and dpmpp2m NOW ALSO WITH dpmpp2m_sde if you toggle the sgm button:

```
x**((x+1)*phi)*sigmax+y**((x+1)*phi)*sigmin
```

Here is how the graphs look like:

**The Golden Scheduler**: Uses phi as the exponent. Hence the name ðŸ˜Š. The formula is pretty simple:

```
(1-x/(steps-1))**phi*sigmax+(x/(steps-1))**phi*sigmin for x in range(steps)
```

Where x it the iteration variable for the steps.

Or if you want to use it in the manual node:

```
x**phi*sigmax+y**phi*sigmin
```

**It works pretty well with dpmpp2m, euler and lms!**

The karras formula can be written like this:

```
(sigmax ** (1 / 7) + y * (sigmin ** (1 / 7) - sigmax ** (1 / 7))) ** 7
```

Using tau:

```
(sigmax ** (1 / tau) + y * (sigmin ** (1 / tau) - sigmax ** (1 / tau))) ** tau
```

With a formula based on the fibonacci sequence:

```
(sigmax-sigmin)*f**(1/2)+sigmin
```

More steps means a steeper curve.

Example with this formula:

Here is a comparison, the golden scheduler, using my model Iris Lux :

Karras:

Here is a mix using dpmpp3m_sde with 50% exponential, 25% simple and 25% sgm uniform: