mirror of
https://github.com/vladmandic/automatic
synced 2026-09-18 16:54:33 +02:00
+8
-6
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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}')
|
||||
|
||||
@@ -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')
|
||||
Reference in New Issue
Block a user