2024-05-30 03:34:56 +02:00
2024-05-30 00:57:40 +02:00
2024-05-29 23:57:23 +02:00
2024-05-29 23:57:23 +02:00
2024-05-30 03:34:56 +02:00

Stable-Diffusion-temperature-settings

Provides the ability to set the temperature for both UNET and CLIP. For ComfyUI.

The nodes

image

Specifities

  • The CLIP patch ignores the connections and patches the model within the memory. Simply disconnecting it does not revert the behavior. To revert to default behavior set it at 1 or reload the model without the node connected. It is the only node ignoring the connections and does not modify anything but the connected CLIP model.
  • For SD1 and SDXL nodes: settings the temperature at zero will use a dynamic scale proportional to the resolution. It is good for lower resolutions but not on point for higher.

Requirements

Requires pytorch 2.3 and above.

Usage

Like any other model patch:

image

  • Pay attention to not use SD1 nodes on SDXL and vice-versa or you will get a key not found error.

Resolution unlocking side-effect:

Changing the UNET temperature allows to obtain better results a different resolutions.

It needs to be higher for smaller resolutions and lower for higher resolutions.

To this effect I wrote a dynamic scaling temperature function. It sets itself relatively to the selected resolution.

It is imperfect for higher resolutions but very effective for smaller.

There seem to be a proportional trend. I would however need faster hardware to be able to generate more samples and become able to detect it. I opened the discussions for this repository if you feel like sharing your best settings.

Examples

Using SDXL, 512x512, 256x256, 128x128 with/without:

03263UI_00001_03276UI_00001_03287UI_00001_

03296UI_00001_03297UI_00001_03298UI_00001_

SDXL 1536x1536, single pass, 12 steps

03302UI_00001_03312UI_00001_

Here using SDXL at a resolution of 328x328. First row temperature at 1, second row using dynamic scaled attention:

image_grid

Non cherry-picked SD v1-5-pruned-emaonly at 512*1024, first row with the dynamic scale, second without:

image_grid

Lost workflows for these as they were done during testing but proves the idea of making SD better at different resolutions:

The temperature was applied to all layers except input 1 and 2, output 9, 10 and 11. At 0.71. Only on self-attention. Using SD v1-5-pruned-emaonly. Resolution at 1024*512. The temperature matches 1/2**2 and the surface is double the normal resolution.

combined_pair_2 combined_pair_1 combined_pair_3

Patreon

Give an incentive to contributors:

https://www.patreon.com/extraltodeus

S
Description
No description provided
Readme
1.9 MiB
Languages
Python 100%