From ad6458aa7b2caa9dd8a07eb2cbaa130f38a99322 Mon Sep 17 00:00:00 2001 From: vladmandic Date: Wed, 26 Nov 2025 15:47:17 +0000 Subject: [PATCH] add flux2 Signed-off-by: vladmandic --- CHANGELOG.md | 14 +++++-- TODO.md | 6 +-- html/reference.json | 18 ++++++++ installer.py | 2 +- .../black-forest-labs--FLUX.2-dev.jpg | Bin 0 -> 94712 bytes modules/modeldata.py | 2 + modules/processing_args.py | 4 +- modules/processing_helpers.py | 2 +- modules/sd_detect.py | 2 + modules/sd_models.py | 4 ++ modules/sd_offload.py | 2 +- modules/sd_samplers_common.py | 2 +- modules/ui_common.py | 4 +- pipelines/model_flux2.py | 39 ++++++++++++++++++ 14 files changed, 86 insertions(+), 15 deletions(-) create mode 100644 models/Reference/black-forest-labs--FLUX.2-dev.jpg create mode 100644 pipelines/model_flux2.py diff --git a/CHANGELOG.md b/CHANGELOG.md index b27180ef8..866746320 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,23 +1,29 @@ # Change Log for SD.Next -## Update for 2025-11-23 +## Update for 2025-11-26 ### TBD Merge commit: `f903a36d9` -### Highlights for 2025-11-23 +### Highlights for 2025-11-26 New native [kanvas](https://vladmandic.github.io/sdnext-docs/Kanvas/) module for image manipulation that fully replaces img2img, inpaint and outpaint controls -And a first cloud model with **Google's Nano Banana** *2.5 Flash and 3.0 Pro* plus new **Photoroom PRX** model +New generation of **Flux.2** large image model and a first cloud model with **Google's Nano Banana** *2.5 Flash and 3.0 Pro* plus new **Photoroom PRX** model ![Screenshot](https://github.com/user-attachments/assets/54b25586-b611-4d70-a28f-ee3360944034) [ReadMe](https://github.com/vladmandic/automatic/blob/master/README.md) | [ChangeLog](https://github.com/vladmandic/automatic/blob/master/CHANGELOG.md) | [Docs](https://vladmandic.github.io/sdnext-docs/) | [WiKi](https://github.com/vladmandic/automatic/wiki) | [Discord](https://discord.com/invite/sd-next-federal-batch-inspectors-1101998836328697867) | [Sponsor](https://github.com/sponsors/vladmandic) -### Details for 2025-11-23 +### Details for 2025-11-26 - **Models** + - [Black Forest Labs FLUX.2 Dev](https://bfl.ai/blog/flux-2) and prequantized variation [SDNQ-SVD-Uint4](https://huggingface.co/Disty0/FLUX.2-dev-SDNQ-uint4-svd-r32) + **FLUX.2-Dev** is a brand new model from BFL and uses large 32B DiT together with Mistral 24B as text encoder + model is available for text, image and edit tasks and can optionally use control input as second input image + this is a very large model at ~100GB, so use of prequantized model at ~32GB is strongly advised + using prequant version and default offloading, model runs on GPUs with ~20GB + *note*: model is [gated](https://vladmandic.github.io/sdnext-docs/Gated/) - **Google Gemini Nano Banana** [2.5 Flash](https://blog.google/products/gemini/gemini-nano-banana-examples/) and [3.0 Pro](https://deepmind.google/models/gemini-image/pro/) first cloud-based model directly supported in SD.Next UI *note*: need to set `GOOGLE_API_KEY` environment variable with your key to use this model diff --git a/TODO.md b/TODO.md index 5a4c6519e..67dc72f18 100644 --- a/TODO.md +++ b/TODO.md @@ -6,13 +6,10 @@ ## Kanvas -- server-side mask handling vs ui mask handling -- implement different auto-masking options +- implement different llama remover ## Internal -- UI: New inpaint/outpaint interface - [Kanvas](https://github.com/vladmandic/kanvas) - Deploy: Create executable for SD.Next - Feature: Integrate natural language image search [ImageDB](https://github.com/vladmandic/imagedb) @@ -31,6 +28,7 @@ ## Features +- [Flux.2 TinyVAE](https://huggingface.co/fal/FLUX.2-Tiny-AutoEncoder) - [IPAdapter composition](https://huggingface.co/ostris/ip-composition-adapter) - [IPAdapter negative guidance](https://github.com/huggingface/diffusers/discussions/7167) - [MagCache](https://github.com/lllyasviel/FramePack/pull/673/files) diff --git a/html/reference.json b/html/reference.json index 6995682bf..ca0289d33 100644 --- a/html/reference.json +++ b/html/reference.json @@ -144,6 +144,15 @@ "size": 32.93, "date": "2025 July" }, + "Black Forest Labs FLUX.2 Dev": { + "path": "black-forest-labs/FLUX.2-dev", + "preview": "black-forest-labs--FLUX.2-dev.jpg", + "desc": "FLUX.2 generates high-quality images while maintaining character and style consistency across multiple reference images, following structured prompts, reading and writing complex text, adhering to brand guidelines, and reliably handling lighting, layouts, and logos.", + "skip": true, + "extras": "", + "size": 0, + "date": "2025 November" + }, "Tencent FLUX.1 Dev SRPO": { "path": "vladmandic/flux.1-dev-SRPO", "preview": "vladmandic--flux.1-dev-SRPO.jpg", @@ -959,6 +968,15 @@ "date": "2025 October", "extras": "" }, + "FLUX.2 Dev sdnq-svd-uint4": { + "path": "Disty0/FLUX.2-dev-SDNQ-uint4-svd-r32", + "preview": "black-forest-labs--FLUX.2-dev.jpg", + "desc": "Quantization of black-forest-labs/FLUX.2-dev using SDNQ: sdnq-svd 4-bit uint with svd rank 32", + "skip": true, + "extras": "", + "size": 0, + "date": "2025 November" + }, "Chroma1-HD sdnq-svd-uint4": { "path": "Disty0/Chroma1-HD-SDNQ-uint4-svd-r32", "preview": "Disty0--Chroma1-HD-SDNQ-uint4-svd-r32.jpg", diff --git a/installer.py b/installer.py index d75ab3f77..d725d118d 100644 --- a/installer.py +++ b/installer.py @@ -619,7 +619,7 @@ def check_diffusers(): t_start = time.time() if args.skip_all: return - sha = 'cd3bbe2910666880307b84729176203f5785ff7e' # diffusers commit hash + sha = 'c8656ed73c638e51fc2e777a5fd355d69fa5220f' # diffusers commit hash # if args.use_rocm or args.use_zluda or args.use_directml: # sha = '043ab2520f6a19fce78e6e060a68dbc947edb9f9' # lock diffusers versions for now pkg = pkg_resources.working_set.by_key.get('diffusers', None) diff --git a/models/Reference/black-forest-labs--FLUX.2-dev.jpg b/models/Reference/black-forest-labs--FLUX.2-dev.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a65b92b3bfb9300edaa7393a96a15dc159fde16 GIT binary patch literal 94712 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 0): task_args['image'] += p.init_control + if ('Flux2' in model_cls) and (p.init_control is not None) and (len(p.init_control) > 0): + task_args['image'] += p.init_control if ('LatentConsistencyModelPipeline' in model_cls) and (len(p.init_images) > 0): p.ops.append('lcm') init_latents = [processing_vae.vae_encode(image, model=shared.sd_model, vae_type=p.vae_type).squeeze(dim=0) for image in p.init_images] @@ -204,7 +206,7 @@ def set_pipeline_args(p, model, prompts:list, negative_prompts:list, prompts_2:t if (prompt_attention != 'fixed') and ('Onnx' not in model.__class__.__name__) and ('prompt' not in p.task_args) and ( 'StableDiffusion' in model.__class__.__name__ or 'StableCascade' in model.__class__.__name__ or - 'Flux' in model.__class__.__name__ or + ('Flux' in model.__class__.__name__ and 'Flux2' not in model.__class__.__name__) or 'Chroma' in model.__class__.__name__ or 'HiDreamImagePipeline' in model.__class__.__name__ ): diff --git a/modules/processing_helpers.py b/modules/processing_helpers.py index b58f0594a..c8692d6ce 100644 --- a/modules/processing_helpers.py +++ b/modules/processing_helpers.py @@ -408,7 +408,7 @@ def calculate_base_steps(p, use_denoise_start, use_refiner_start): if len(getattr(p, 'timesteps', [])) > 0: return None cls = shared.sd_model.__class__.__name__ - if 'Flex' in cls or 'Kontext' in cls or 'Edit' in cls or 'Wan' in cls: + if 'Flex' in cls or 'Kontext' in cls or 'Edit' in cls or 'Wan' in cls or 'Flux2': steps = p.steps elif is_modular(): steps = p.steps diff --git a/modules/sd_detect.py b/modules/sd_detect.py index 97701cf8b..220cbe7c9 100644 --- a/modules/sd_detect.py +++ b/modules/sd_detect.py @@ -92,6 +92,8 @@ def guess_by_name(fn, current_guess): new_guess = 'HiDream' elif 'chroma' in fn.lower() and 'xl' not in fn.lower(): new_guess = 'Chroma' + elif 'flux.2' in fn.lower(): + new_guess = 'FLUX2' elif 'flux' in fn.lower() or 'flex.1' in fn.lower(): size = round(os.path.getsize(fn) / 1024 / 1024) if os.path.isfile(fn) else 0 if size > 11000 and size < 16000: diff --git a/modules/sd_models.py b/modules/sd_models.py index 0ee830b7c..d37f7b154 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -322,6 +322,10 @@ def load_diffuser_force(model_type, checkpoint_info, diffusers_load_config, op=' from pipelines.model_flux import load_flux sd_model = load_flux(checkpoint_info, diffusers_load_config) allow_post_quant = False + elif model_type in ['FLUX2']: + from pipelines.model_flux2 import load_flux2 + sd_model = load_flux2(checkpoint_info, diffusers_load_config) + allow_post_quant = False elif model_type in ['FLEX']: from pipelines.model_flex import load_flex sd_model = load_flex(checkpoint_info, diffusers_load_config) diff --git a/modules/sd_offload.py b/modules/sd_offload.py index fcc4317dc..e521cf8c2 100644 --- a/modules/sd_offload.py +++ b/modules/sd_offload.py @@ -14,7 +14,7 @@ from modules.timer import process as process_timer debug = os.environ.get('SD_MOVE_DEBUG', None) is not None verbose = os.environ.get('SD_MOVE_VERBOSE', None) is not None debug_move = log.trace if debug else lambda *args, **kwargs: None -offload_warn = ['sc', 'sd3', 'f1', 'h1', 'hunyuandit', 'auraflow', 'omnigen', 'omnigen2', 'cogview4', 'cosmos', 'chroma', 'x-omni', 'hunyuanimage', 'hunyuanimage3'] +offload_warn = ['sc', 'sd3', 'f1', 'f2', 'h1', 'hunyuandit', 'auraflow', 'omnigen', 'omnigen2', 'cogview4', 'cosmos', 'chroma', 'x-omni', 'hunyuanimage', 'hunyuanimage3'] offload_post = ['h1'] offload_hook_instance = None balanced_offload_exclude = ['CogView4Pipeline', 'MeissonicPipeline'] diff --git a/modules/sd_samplers_common.py b/modules/sd_samplers_common.py index a45f238d3..0cea700a6 100644 --- a/modules/sd_samplers_common.py +++ b/modules/sd_samplers_common.py @@ -9,7 +9,7 @@ from modules import shared, devices, processing, images, sd_vae_approx, sd_vae_t SamplerData = namedtuple('SamplerData', ['name', 'constructor', 'aliases', 'options']) approximation_indexes = { "Simple": 0, "Approximate": 1, "TAESD": 2, "Full VAE": 3 } -flow_models = ['f1', 'sd3', 'lumina', 'auraflow', 'sana', 'lumina2', 'cogview4', 'h1', 'cosmos', 'chroma', 'omnigen', 'omnigen2'] +flow_models = ['f1', 'f2', 'sd3', 'lumina', 'auraflow', 'sana', 'lumina2', 'cogview4', 'h1', 'cosmos', 'chroma', 'omnigen', 'omnigen2'] warned = False queue_lock = threading.Lock() diff --git a/modules/ui_common.py b/modules/ui_common.py index 46b595db2..71a062bfa 100644 --- a/modules/ui_common.py +++ b/modules/ui_common.py @@ -419,8 +419,8 @@ def update_token_counter(text): from modules import extra_networks prompt, _ = extra_networks.parse_prompt(text) if shared.sd_loaded and hasattr(shared.sd_model, 'tokenizer') and shared.sd_model.tokenizer is not None: - has_bos_token = shared.sd_model.tokenizer.bos_token_id is not None - has_eos_token = shared.sd_model.tokenizer.eos_token_id is not None + has_bos_token = hasattr(shared.sd_model.tokenizer, 'bos_token_id') and shared.sd_model.tokenizer.bos_token_id is not None + has_eos_token = hasattr(shared.sd_model.tokenizer, 'eos_token_id') and shared.sd_model.tokenizer.eos_token_id is not None ids = shared.sd_model.tokenizer(prompt) ids = getattr(ids, 'input_ids', []) token_count = len(ids) - int(has_bos_token) - int(has_eos_token) diff --git a/pipelines/model_flux2.py b/pipelines/model_flux2.py new file mode 100644 index 000000000..388ecd6f6 --- /dev/null +++ b/pipelines/model_flux2.py @@ -0,0 +1,39 @@ +import transformers +import diffusers +from modules import shared, devices, sd_models, model_quant, sd_hijack_te, sd_hijack_vae +from pipelines import generic + + +def load_flux2(checkpoint_info, diffusers_load_config=None): + if diffusers_load_config is None: + diffusers_load_config = {} + repo_id = sd_models.path_to_repo(checkpoint_info) + sd_models.hf_auth_check(checkpoint_info) + + load_args, _quant_args = model_quant.get_dit_args(diffusers_load_config, allow_quant=False) + shared.log.debug(f'Load model: type=Flux2 repo="{repo_id}" config={diffusers_load_config} offload={shared.opts.diffusers_offload_mode} dtype={devices.dtype} args={load_args}') + + transformer = generic.load_transformer(repo_id, cls_name=diffusers.Flux2Transformer2DModel, load_config=diffusers_load_config) + text_encoder = generic.load_text_encoder(repo_id, cls_name=transformers.Mistral3ForConditionalGeneration, load_config=diffusers_load_config) + + pipe = diffusers.Flux2Pipeline.from_pretrained( + repo_id, + transformer=transformer, + text_encoder=text_encoder, + cache_dir=shared.opts.diffusers_dir, + **load_args, + ) + pipe.task_args = { + 'output_type': 'np', + } + diffusers.pipelines.auto_pipeline.AUTO_TEXT2IMAGE_PIPELINES_MAPPING["flux2"] = diffusers.Flux2Pipeline + diffusers.pipelines.auto_pipeline.AUTO_IMAGE2IMAGE_PIPELINES_MAPPING["flux2"] = diffusers.Flux2Pipeline + diffusers.pipelines.auto_pipeline.AUTO_INPAINT_PIPELINES_MAPPING["flux2"] = diffusers.Flux2Pipeline + + del text_encoder + del transformer + sd_hijack_te.init_hijack(pipe) + sd_hijack_vae.init_hijack(pipe) + + devices.torch_gc() + return pipe