diff --git a/CHANGELOG.md b/CHANGELOG.md index 6978c4e57..3211a4752 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,18 @@ # Change Log for SD.Next -## Update for 2024-12-17 +## Update for 2024-12-18 ### New models and integrations - [NVLabs Sana](https://huggingface.co/Efficient-Large-Model/Sana_1600M_1024px) - **Sana** can synthesize high-resolution images with strong text-image alignment by using **Gemma2** as text-encoder - and its *fast* - typically at least **2x** faster than sd-xl even for 1.6B variant support for both 1.6B and 0.6B models + **Sana** can synthesize high-resolution images with strong text-image alignment by using **Gemma2** as text-encoder + and its *fast* - typically at least **2x** faster than sd-xl even for 1.6B variant and maintains performance regardless of resolution + e.g., rendering at 4k is possible in less than 8GB vram to use, select from *networks -> models -> reference* and models will be auto-downloaded on first use *reference values*: sampler: default (or any flow-match variant), width/height: 1024, guidance scale: 4.5 + *note* like other LLM-based text-encoders, sana prefers long and descriptive prompts + any short prompt below 300 characters will be auto-expanded using built in Gemma LLM before encoding while long prompts will be passed as-is - [Flux Tools](https://blackforestlabs.ai/flux-1-tools/) **Redux** is actually a tool, **Fill** is inpaint/outpaint optimized version of *Flux-dev* **Canny** & **Depth** are optimized versions of *Flux-dev* for their respective tasks: they are *not* ControlNets that work on top of a model diff --git a/installer.py b/installer.py index c0d3c907d..3dd0f13d5 100644 --- a/installer.py +++ b/installer.py @@ -459,7 +459,7 @@ def check_python(supported_minors=[9, 10, 11, 12], reason=None): def check_diffusers(): if args.skip_all or args.skip_requirements: return - sha = '1524781b88ac1a082e755a030ba9d73cd6948e84' # diffusers commit hash + sha = '862a7d5038c1c53641ffcab146a7eeb5ab683656' # diffusers commit hash pkg = pkg_resources.working_set.by_key.get('diffusers', None) minor = int(pkg.version.split('.')[1] if pkg is not None else 0) cur = opts.get('diffusers_version', '') if minor > 0 else '' diff --git a/modules/processing_args.py b/modules/processing_args.py index e7f53ba8e..d0afb6722 100644 --- a/modules/processing_args.py +++ b/modules/processing_args.py @@ -164,6 +164,11 @@ def set_pipeline_args(p, model, prompts: list, negative_prompts: list, prompts_2 args['negative_prompt'] = negative_prompts[0] else: args['negative_prompt'] = negative_prompts + if 'complex_human_instruction' in possible: + chi = any(len(p) < 300 for p in prompts) + p.extra_generation_params["CHI"] = chi + if not chi: + args['complex_human_instruction'] = None if prompt_parser_diffusers.embedder is not None and not prompt_parser_diffusers.embedder.scheduled_prompt: # not scheduled so we dont need it anymore prompt_parser_diffusers.embedder = None diff --git a/wiki b/wiki index 4dc357d28..470e75f0c 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 4dc357d28956b827eb38df626e834fb6a25ec47c +Subproject commit 470e75f0c70a22ed3d65187c70f04c131400b35d