Characteristic Guidance Web UI is an extension of for the Stable Diffusion web UI (AUTOMATIC1111). It offers a theory-backed guidance sampling method with improved sample and control quality at high CFG scale (10-30).
This is the official implementation of Characteristic Guidance: Non-linear Correction for Diffusion Model at Large Guidance Scale. We are happy to announce that this work has been accepted by ICML 2024.
Characteristic guidance offers improved sample generation and control at high CFG scale. Try characteristic guidance for
Characteristic guidance is compatible with every existing sampling methods in Stable Diffusion WebUI. It now have preliminary support for Forge UI and ControlNet.
For more information and previews, please visit our project website: Characteristic Guidance Project Website.
Q&A: What's the difference with Dynamical Thresholding?
They are distinct and independent methods, can be used either independently or in conjunction.
Using Characteristic Guidance and Dynamical Thresholding simutaneously may further reduce saturation.
Before installing and using the Characteristic Guidance Web UI, ensure that you have the following prerequisites met:
Follow these steps to install the Characteristic Guidance Web UI extension:
https://github.com/scraed/CharacteristicGuidanceWebUI.git
into the "URL for extension's git repository" field.The Characteristic Guidance Web UI features an interactive interface for both txt2img and img2img mode.
The characteristic guidance is slow compared to classifier-free guidance. We recommend the user to generate image with classifier-free guidance at first, then try characteristic guidance with the same prompt and seed to enhance the image.
Enable
Checkbox: Toggles the activation of the Characteristic Guidance features.Check Convergence
Button: Allows users to test and visualize the convergence of their settings. Adjust the regularization parameters if the convergence is not satisfactory.In practice, convergence is not always guaranteed. If characteristic guidance fails to converge at a certain time step, classifier-free guidance will be adopted at that time step.
Below are the parameters you can adjust to customize the behavior of the guidance correction:
Regularization Strength
: Range 0.0 to 10.0 (default: 1). Adjusts the strength of regularization at the beginning of sampling, larger regularization means easier convergence and closer alignment with CFG (Classifier Free Guidance).Regularization Range Over Time
: Range 0.01 to 10.0 (default: 1). Modifies the range of time being regularized, larger time means slow decay in regularization strength hence more time steps being regularized, affecting convergence difficulty and the extent of correction.Max Num. Characteristic Iteration
: Range 1 to 50 (default: 50). Determines the maximum number of characteristic iterations per sampling time step.Num. Basis for Correction
: Range 0 to 10 (default: 0). Sets the number of bases for correction, influencing the amount of correction and convergence behavior. More basis means better quality but harder convergence. Basis number = 0 means batch-wise correction, > 0 means channel-wise correction. CHG Start Step
: Range 0 to 0.25 (default: 0). Characteristic guidance begins to influence the process from the specified percentage of steps, indicated by CHG Start Step
.CHG End Step
: Range 0.25 to 1 (default: 0). Characteristic guidance ceases to have an effect from the specified percentage of steps, denoted by CHG End Step
. Setting this value to approximately 0.4 can significantly speed up the generation process without substantially altering the outcome.ControlNet Compatible Mode
More Prompt
: Controlnet is turned off when iteratively solving characteristic guidance correction.More ControlNet
: Controlnet is turned on when iteratively solving characteristic guidance correction.Reuse Correction of Previous Iteration
: Range 0.0 to 1.0 (default: 1.0). Controls the reuse of correction from previous iterations to reduce abrupt changes during generation.Log 10 Tolerance for Iteration Convergence
: Range -6 to -2 (default: -4). Adjusts the tolerance for iteration convergence, trading off between speed and image quality.Iteration Step Size
: Range 0 to 1 (default: 1.0). Sets the step size for each iteration, affecting the speed of convergence.Regularization Annealing Speed
: Range 0.0 to 1.0 (default: 0.4). How fast the regularization strength decay to desired rate. Smaller value potentially easing convergence.Regularization Annealing Strength
: Range 0.0 to 5 (default: 0.5). Determines the how important regularization annealing is in characteristic guidance interations. Higher value means higher priority to bring regularization level to specified regularization strength. Affecting the balance between annealing and convergence.AA Iteration Memory Size
: Range 1 to 10 (default: 2). Specifies the memory size for AA (Anderson Acceleration) iterations, influencing convergence speed and stability.Please experiment with different settings, especially regularization strength and time range, to achieve better convergence for your specific use case. (According to my experience, high CFG scale need relatively large regularization strength and time range for convergence, while low CFG scale prefers lower regularization strength and time range for more guidance correction.)
Here is my recommended approach for parameter setting:
Regularization Strength
=5 for Stable Diffusion XL).Check Convergence
button.Regularization Strength
and Regularization Range Over Time
to enhance correction.Regularization Strength
is already minimal, consider increasing the Num. Basis for Correction
for improved performance.Max Num. Characteristic Iteration
to allow for additional iterations.Regularization Strength
and Regularization Range Over Time
for increased regularization.CHG Start Step
: Range 0 to 0.25 (default: 0). Characteristic guidance begins to influence the process from the specified percentage of steps, indicated by CHG Start Step
.CHG End Step
: Range 0.25 to 1 (default: 0). Characteristic guidance ceases to have an effect from the specified percentage of steps, denoted by CHG End Step
. Setting this value to approximately 0.4 can significantly speed up the generation process without substantially altering the outcome.Reuse Correction of Previous Iteration
worksReuse Correction of Previous Iteration
to advanced parameters. Its default value is set to 1 to accelerate convergence. It is now using the same update direction as the case Reuse Correction of Previous Iteration
= 0 regardless of its value. Reuse Correction of Previous Iteration
> 0 may not generate the same image as previous version.Regularization Strength
& Regularization Range Over Time
can now go up to 10.Regularization Strength
& Regularization Range Over Time
.If you utilize characteristic guidance in your research or projects, please consider citing our paper:
@misc{zheng2023characteristic,
title={Characteristic Guidance: Non-linear Correction for DDPM at Large Guidance Scale},
author={Candi Zheng and Yuan Lan},
year={2023},
eprint={2312.07586},
archivePrefix={arXiv},
primaryClass={cs.CV}
}