add qwen-lightning

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-08-10 15:40:11 -04:00
parent 3f45c4e570
commit abddac23d9
4 changed files with 18 additions and 103 deletions
+8 -6
View File
@@ -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
+7
View File
@@ -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",
+3 -3
View File
@@ -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}')
-94
View File
@@ -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')