diff --git a/CHANGELOG.md b/CHANGELOG.md index 21a3b93fb..04770ea8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Highlights for 2025-08-10 -Several new models: [Qwen-Image](https://qwenlm.github.io/blog/qwen-image/) and [FLUX.1-Krea-Dev](https://www.krea.ai/blog/flux-krea-open-source-release) +Several new models: [Qwen-Image](https://qwenlm.github.io/blog/qwen-image/) (plus *Lightning* variant) and [FLUX.1-Krea-Dev](https://www.krea.ai/blog/flux-krea-open-source-release) Several updated models: [Chroma](https://huggingface.co/lodestones/Chroma), [SkyReels-V2](https://huggingface.co/Skywork/SkyReels-V2-DF-14B-720P-Diffusers) and [Wan-VACE](https://huggingface.co/Wan-AI/Wan2.1-VACE-14B-diffusers) Plus continuing with major **UI** work, we have new embedded **Docs/Wiki** search, redesigned real-time **hints**, built-in **GPU monitor**, **CivitAI** integration and more! On the compute side, new profiles for high-vram GPUs, offloading improvements and support for new `torch` release @@ -16,11 +16,13 @@ And (*as always*) many bugfixes and improvements to existing features! - **Models** - [Qwen-Image](https://qwenlm.github.io/blog/qwen-image/) - new image foundational model with 20B params DiT and using Qwen2.5-VL-7B as the text-encoder! - available for text-to-image workflows, image-editing workflows will follow soon - *note*: this model is almost 2x the size of Flux, quantization and offloading are highly recommended! - recommended params: *steps=50, attention-guidance=4* + new image foundational model with *20B* params DiT and using *Qwen2.5-VL-7B* as the text-encoder! available via *networks -> models -> reference* + *note*: this model is almost 2x the size of Flux, quantization and offloading are highly recommended! + *note* qwen-image supports text-to-image workflows as image-editing model is not yet available + *recommended* params: *steps=50, attention-guidance=4* + also available is pre-packaged [Qwen-Lightning](https://huggingface.co/vladmandic/Qwen-Lightning) + which is an unofficial merge of [Qwen-Image](https://qwenlm.github.io/blog/qwen-image/) with [Qwen-Lightning-LoRA](https://github.com/ModelTC/Qwen-Image-Lightning/) to improve quality and allow for generating in 8-steps! - [FLUX.1-Krea-Dev](https://www.krea.ai/blog/flux-krea-open-source-release) new 12B base model compatible with FLUX.1-Dev from *Black Forest Labs* with opinionated aesthetics and aesthetic preferences in mind available via *networks -> models -> reference* @@ -38,7 +40,7 @@ And (*as always*) many bugfixes and improvements to existing features! optimized support with granular guidance control will follow soon **Torch** - Set default to `torch==2.8.0` for *CUDA, ROCm and OpenVINO* - - Add support for `torch==2.9.0` + - Add support for `torch==2.9.0-nightly` - **UI** - new embedded docs/wiki search! **Docs** search: fully-local and works in real-time on all document pages diff --git a/html/reference.json b/html/reference.json index e29debb53..63cdbbdda 100644 --- a/html/reference.json +++ b/html/reference.json @@ -169,6 +169,13 @@ "skip": true, "extras": "" }, + "Qwen-Lightning": { + "path": "vladmandic/Qwen-Lightning", + "preview": "Qwen--Qwen-Image.jpg", + "desc": " Qwen-Lightning is step-distilled from Qwen-Image to allow for generation in 8 steps.", + "skip": true, + "extras": "steps: 8" + }, "Ostris Flex.2 Preview": { "path": "ostris/Flex.2-preview", diff --git a/modules/ui_extra_networks.py b/modules/ui_extra_networks.py index 8e9b5afdc..33e63b85b 100644 --- a/modules/ui_extra_networks.py +++ b/modules/ui_extra_networks.py @@ -348,9 +348,9 @@ class ExtraNetworksPage: "color": random_bright_color(), "reference": "reference" if 'Reference' in item.get('name', '') else "", } - alias = item.get("alias", None) - if alias is not None: - args['title'] += f'\nAlias: {alias}' + # alias = item.get("alias", None) + # if alias is not None: + # args['title'] += f'\nAlias: {alias}' return self.card.format(**args) except Exception as e: shared.log.error(f'Networks: item error: page={tabname} item={item["name"]} {e}') diff --git a/pipelines/chroma/convert_chroma.py b/pipelines/chroma/convert_chroma.py deleted file mode 100644 index a560bac18..000000000 --- a/pipelines/chroma/convert_chroma.py +++ /dev/null @@ -1,94 +0,0 @@ - -import os -import torch -import transformers -import diffusers -import huggingface_hub as hf -from rich import print as rprint -from rich.traceback import install as install_traceback - - -convert = True -test = False -upload = True -input_files = [ - 'chroma-unlocked-v50.safetensors', - 'chroma-unlocked-v50-annealed.safetensors', -] -input_folder = '/mnt/models/UNET' -output_folder = '/mnt/models/Diffusers' -cache_dir = '/mnt/models/huggingface' -hf_token = '' -dtype = torch.bfloat16 -device = torch.device('cuda') - - -rprint('starting chroma conversion') -install_traceback(show_locals=False) -rprint(f'torch={torch.__version__} diffusers={diffusers.__version__} transformers={transformers.__version__}') -for input_file in input_files: - input_basename = os.path.splitext(input_file)[0] - input_model = os.path.join(input_folder, input_file) - output_model = os.path.join(output_folder, input_basename) - - if convert: - rprint(f'load transformer: {input_model}') - transformer = diffusers.ChromaTransformer2DModel.from_single_file( - input_model, - torch_dtype=dtype, - cache_dir=cache_dir, - ).to(device) - - rprint('load text-encoder') - text_encoder = transformers.T5EncoderModel.from_pretrained( - "black-forest-labs/FLUX.1-schnell", - subfolder="text_encoder_2", - torch_dtype=dtype, - cache_dir=cache_dir, - ).to(device) - - rprint('load tokenizer') - tokenizer = transformers.T5Tokenizer.from_pretrained( - "black-forest-labs/FLUX.1-schnell", - subfolder="tokenizer_2", - cache_dir=cache_dir, - ) - - rprint('load pipeline') - pipe = diffusers.ChromaPipeline.from_pretrained( - "black-forest-labs/FLUX.1-dev", - transformer=transformer, - text_encoder=text_encoder, - tokenizer=tokenizer, - torch_dtype=dtype, - cache_dir=cache_dir, - ).to(device) - - - rprint(f'save pipeline: {output_model}') - pipe.save_pretrained( - output_model, - ) - - if test: - rprint('test load') - pipe = diffusers.ChromaPipeline.from_pretrained( - output_model, - torch_dtype=dtype, - cache_dir=cache_dir, - ) - - if upload: - rprint('hf login') - hf.logout() - hf.login(token=hf_token, add_to_git_credential=False, write_permission=True) - rprint('upload model') - pipe.push_to_hub( - input_basename, - private=False, - token=hf_token, - ) - - pipe = None - -rprint('done')