AMorporkian / sd-dynamic-thresholding-rcfg

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stable Diffusion Dynamic Thresholding (CFG Scale Fix)

Disclaimer

This repo is a fork of original Dynamic Thresholding extension. I am in no way affiliated with the creator of original repo, but I'll keep their sponsor link because this repo is their work.

Update

Implemented Rescale Classifier-Free Guidance

https://arxiv.org/abs/2305.08891

xyz_grid-0032-2448144597 (1).png Added options: img.png

Original Dynamic Thresholding behavior is available if you set MEAN/AD, Phi 1.0

RCFG Behavior is available if you set ZERO/STD, Phi 0.7, mimic scale 1

Concept

Extension for the AUTOMATIC1111 Stable Diffusion WebUI that enables a way to use higher CFG Scales without color issues.

This works by clamping latents between steps. You can read more here or here or this tweet.


Credit

The core functionality of this PR was originally developed by Birch-san and ported to the WebUI by dtan3847, then converted to an extension and given a UI by mcmonkey4eva, further development and research is the work of mcmonkey4eva and JDMLeverton.


Examples

img

img


Demo Grid

View at https://sd.mcmonkey.org/dynthresh/.

img

(Was generated via this YAML config for the Infinite Grid Generator)


Installation

  • You must have the AUTOMATIC1111 Stable Diffusion WebUI already installed and working. Refer to that project's readme for help with that.
  • Open the WebUI, go to to the Extensions tab
- Click on `Install from URL`
- Copy/paste this project's URL into the `URL for extension's git repository` textbox: `https://github.com/mcmonkeyprojects/sd-dynamic-thresholding`
  • Click Install
  • Restart or reload the WebUI

Usage

  • Install the extension and restart.
  • Go to txt2img or img2img
  • Check the Enable Dynamic Thresholding (CFG Scale Fix) box
  • Read the info on-page and set the sliders where you want em.
  • Click generate.

Supported Extensions


Licensing pre-note:

This is an open source project, provided entirely freely, for everyone to use and contribute to.

If you make any changes that could benefit the community as a whole, please contribute upstream.

The short of the license is:

You can do basically whatever you want, except you may not hold any developer liable for what you do with the software.

The long version of the license follows:

The MIT License (MIT)

Copyright (c) 2023 Alex "mcmonkey" Goodwin

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

License:MIT License


Languages

Language:Python 100.0%