From c7f1a504bad5c9b035fa0710f11fc23244ea15b4 Mon Sep 17 00:00:00 2001 From: leejet Date: Wed, 8 Apr 2026 21:56:46 +0800 Subject: [PATCH 1/3] feat: add flux2 small decoder support --- src/auto_encoder_kl.hpp | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/src/auto_encoder_kl.hpp b/src/auto_encoder_kl.hpp index 039fb9df3..d4283959d 100644 --- a/src/auto_encoder_kl.hpp +++ b/src/auto_encoder_kl.hpp @@ -501,11 +501,36 @@ class AutoEncoderKLModel : public GGMLBlock { bool double_z = true; } dd_config; + static std::string get_tensor_name(const std::string& prefix, const std::string& name) { + return prefix.empty() ? name : prefix + "." + name; + } + + void detect_decoder_ch(const String2TensorStorage& tensor_storage_map, + const std::string& prefix, + int& decoder_ch) { + auto conv_in_iter = tensor_storage_map.find(get_tensor_name(prefix, "decoder.conv_in.weight")); + if (conv_in_iter != tensor_storage_map.end() && conv_in_iter->second.n_dims >= 4 && conv_in_iter->second.ne[3] > 0) { + int last_ch_mult = dd_config.ch_mult.back(); + int64_t conv_in_out_channels = conv_in_iter->second.ne[3]; + if (last_ch_mult > 0 && conv_in_out_channels % last_ch_mult == 0) { + decoder_ch = static_cast(conv_in_out_channels / last_ch_mult); + LOG_INFO("vae decoder: ch = %d", decoder_ch); + } else { + LOG_WARN("vae decoder: failed to infer ch from %s (%" PRId64 " / %d)", + get_tensor_name(prefix, "decoder.conv_in.weight").c_str(), + conv_in_out_channels, + last_ch_mult); + } + } + } + public: - AutoEncoderKLModel(SDVersion version = VERSION_SD1, - bool decode_only = true, - bool use_linear_projection = false, - bool use_video_decoder = false) + AutoEncoderKLModel(SDVersion version = VERSION_SD1, + bool decode_only = true, + bool use_linear_projection = false, + bool use_video_decoder = false, + const String2TensorStorage& tensor_storage_map = {}, + const std::string& prefix = "") : version(version), decode_only(decode_only), use_video_decoder(use_video_decoder) { if (sd_version_is_dit(version)) { if (sd_version_is_flux2(version)) { @@ -519,7 +544,9 @@ class AutoEncoderKLModel : public GGMLBlock { if (use_video_decoder) { use_quant = false; } - blocks["decoder"] = std::shared_ptr(new Decoder(dd_config.ch, + int decoder_ch = dd_config.ch; + detect_decoder_ch(tensor_storage_map, prefix, decoder_ch); + blocks["decoder"] = std::shared_ptr(new Decoder(decoder_ch, dd_config.out_ch, dd_config.ch_mult, dd_config.num_res_blocks, @@ -662,7 +689,7 @@ struct AutoEncoderKL : public VAE { break; } } - ae = AutoEncoderKLModel(version, decode_only, use_linear_projection, use_video_decoder); + ae = AutoEncoderKLModel(version, decode_only, use_linear_projection, use_video_decoder, tensor_storage_map, prefix); ae.init(params_ctx, tensor_storage_map, prefix); } From 68872eb0f816a59d273f9406200978a828a9df6a Mon Sep 17 00:00:00 2001 From: leejet Date: Wed, 8 Apr 2026 22:03:55 +0800 Subject: [PATCH 2/3] update docs --- docs/flux2.md | 186 ++++++++++++++++++++++++++------------------------ 1 file changed, 95 insertions(+), 91 deletions(-) diff --git a/docs/flux2.md b/docs/flux2.md index 1524478cc..019bdda58 100644 --- a/docs/flux2.md +++ b/docs/flux2.md @@ -1,92 +1,96 @@ -# How to Use - -## Flux.2-dev - -### Download weights - -- Download FLUX.2-dev - - gguf: https://huggingface.co/city96/FLUX.2-dev-gguf/tree/main -- Download vae - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main -- Download Mistral-Small-3.2-24B-Instruct-2506-GGUF - - gguf: https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506-GGUF/tree/main - -### Examples - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux2-dev-Q4_K_S.gguf --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\Mistral-Small-3.2-24B-Instruct-2506-Q4_K_M.gguf -r .\kontext_input.png -p "change 'flux.cpp' to 'flux2-dev.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu -``` - -flux2 example - -## Flux.2 klein 4B / Flux.2 klein base 4B - -### Download weights - -- Download FLUX.2-klein-4B - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-4B - - gguf: https://huggingface.co/leejet/FLUX.2-klein-4B-GGUF/tree/main -- Download FLUX.2-klein-base-4B - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B - - gguf: https://huggingface.co/leejet/FLUX.2-klein-base-4B-GGUF/tree/main -- Download vae - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main -- Download Qwen3 4b - - safetensors: https://huggingface.co/Comfy-Org/flux2-klein-4B/tree/main/split_files/text_encoders - - gguf: https://huggingface.co/unsloth/Qwen3-4B-GGUF/tree/main - -### Examples - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -p "a lovely cat" --cfg-scale 1.0 --steps 4 -v --offload-to-cpu --diffusion-fa -``` - -flux2-klein-4b - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -r .\kontext_input.png -p "change 'flux.cpp' to 'klein.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu --steps 4 -``` - -flux2-klein-4b-edit - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-base-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -p "a lovely cat" --cfg-scale 4.0 --steps 20 -v --offload-to-cpu --diffusion-fa -``` - -flux2-klein-base-4b - -## Flux.2 klein 9B / Flux.2 klein base 9B - -### Download weights - -- Download FLUX.2-klein-9B - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-9B - - gguf: https://huggingface.co/leejet/FLUX.2-klein-9B-GGUF/tree/main -- Download FLUX.2-klein-base-9B - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9B - - gguf: https://huggingface.co/leejet/FLUX.2-klein-base-9B-GGUF/tree/main -- Download vae - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main -- Download Qwen3 8B - - safetensors: https://huggingface.co/Comfy-Org/flux2-klein-9B/tree/main/split_files/text_encoders - - gguf: https://huggingface.co/unsloth/Qwen3-8B-GGUF/tree/main - -### Examples - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -p "a lovely cat" --cfg-scale 1.0 --steps 4 -v --offload-to-cpu --diffusion-fa -``` - -flux2-klein-9b - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -r .\kontext_input.png -p "change 'flux.cpp' to 'klein.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu --steps 4 -``` - -flux2-klein-9b-edit - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-base-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -p "a lovely cat" --cfg-scale 4.0 --steps 20 -v --offload-to-cpu --diffusion-fa -``` - +# How to Use + +## Flux.2-dev + +### Download weights + +- Download FLUX.2-dev + - gguf: https://huggingface.co/city96/FLUX.2-dev-gguf/tree/main +- Download vae + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main +- Download FLUX.2-small-decoder (full_encoder_small_decoder.safetensors) as an alternative VAE option + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-small-decoder/tree/main +- Download Mistral-Small-3.2-24B-Instruct-2506-GGUF + - gguf: https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506-GGUF/tree/main + +### Examples + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux2-dev-Q4_K_S.gguf --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\Mistral-Small-3.2-24B-Instruct-2506-Q4_K_M.gguf -r .\kontext_input.png -p "change 'flux.cpp' to 'flux2-dev.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu +``` + +flux2 example + +## Flux.2 klein 4B / Flux.2 klein base 4B + +### Download weights + +- Download FLUX.2-klein-4B + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-4B + - gguf: https://huggingface.co/leejet/FLUX.2-klein-4B-GGUF/tree/main +- Download FLUX.2-klein-base-4B + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B + - gguf: https://huggingface.co/leejet/FLUX.2-klein-base-4B-GGUF/tree/main +- Download vae + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main +- Download FLUX.2-small-decoder (full_encoder_small_decoder.safetensors) as an alternative VAE option + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-small-decoder/tree/main +- Download Qwen3 4b + - safetensors: https://huggingface.co/Comfy-Org/flux2-klein-4B/tree/main/split_files/text_encoders + - gguf: https://huggingface.co/unsloth/Qwen3-4B-GGUF/tree/main + +### Examples + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -p "a lovely cat" --cfg-scale 1.0 --steps 4 -v --offload-to-cpu --diffusion-fa +``` + +flux2-klein-4b + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -r .\kontext_input.png -p "change 'flux.cpp' to 'klein.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu --steps 4 +``` + +flux2-klein-4b-edit + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-base-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -p "a lovely cat" --cfg-scale 4.0 --steps 20 -v --offload-to-cpu --diffusion-fa +``` + +flux2-klein-base-4b + +## Flux.2 klein 9B / Flux.2 klein base 9B + +### Download weights + +- Download FLUX.2-klein-9B + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-9B + - gguf: https://huggingface.co/leejet/FLUX.2-klein-9B-GGUF/tree/main +- Download FLUX.2-klein-base-9B + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9B + - gguf: https://huggingface.co/leejet/FLUX.2-klein-base-9B-GGUF/tree/main +- Download vae + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main +- Download Qwen3 8B + - safetensors: https://huggingface.co/Comfy-Org/flux2-klein-9B/tree/main/split_files/text_encoders + - gguf: https://huggingface.co/unsloth/Qwen3-8B-GGUF/tree/main + +### Examples + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -p "a lovely cat" --cfg-scale 1.0 --steps 4 -v --offload-to-cpu --diffusion-fa +``` + +flux2-klein-9b + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -r .\kontext_input.png -p "change 'flux.cpp' to 'klein.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu --steps 4 +``` + +flux2-klein-9b-edit + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-base-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -p "a lovely cat" --cfg-scale 4.0 --steps 20 -v --offload-to-cpu --diffusion-fa +``` + flux2-klein-base-9b \ No newline at end of file From 1eef2fef6a81dcbb081a1f80a54a259d75bff272 Mon Sep 17 00:00:00 2001 From: leejet Date: Wed, 8 Apr 2026 22:04:47 +0800 Subject: [PATCH 3/3] convert crlf to lf --- docs/flux2.md | 190 +++++++++++++++++++++++++------------------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/docs/flux2.md b/docs/flux2.md index 019bdda58..11202e919 100644 --- a/docs/flux2.md +++ b/docs/flux2.md @@ -1,96 +1,96 @@ -# How to Use - -## Flux.2-dev - -### Download weights - -- Download FLUX.2-dev - - gguf: https://huggingface.co/city96/FLUX.2-dev-gguf/tree/main -- Download vae - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main -- Download FLUX.2-small-decoder (full_encoder_small_decoder.safetensors) as an alternative VAE option - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-small-decoder/tree/main -- Download Mistral-Small-3.2-24B-Instruct-2506-GGUF - - gguf: https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506-GGUF/tree/main - -### Examples - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux2-dev-Q4_K_S.gguf --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\Mistral-Small-3.2-24B-Instruct-2506-Q4_K_M.gguf -r .\kontext_input.png -p "change 'flux.cpp' to 'flux2-dev.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu -``` - -flux2 example - -## Flux.2 klein 4B / Flux.2 klein base 4B - -### Download weights - -- Download FLUX.2-klein-4B - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-4B - - gguf: https://huggingface.co/leejet/FLUX.2-klein-4B-GGUF/tree/main -- Download FLUX.2-klein-base-4B - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B - - gguf: https://huggingface.co/leejet/FLUX.2-klein-base-4B-GGUF/tree/main -- Download vae - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main -- Download FLUX.2-small-decoder (full_encoder_small_decoder.safetensors) as an alternative VAE option - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-small-decoder/tree/main -- Download Qwen3 4b - - safetensors: https://huggingface.co/Comfy-Org/flux2-klein-4B/tree/main/split_files/text_encoders - - gguf: https://huggingface.co/unsloth/Qwen3-4B-GGUF/tree/main - -### Examples - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -p "a lovely cat" --cfg-scale 1.0 --steps 4 -v --offload-to-cpu --diffusion-fa -``` - -flux2-klein-4b - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -r .\kontext_input.png -p "change 'flux.cpp' to 'klein.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu --steps 4 -``` - -flux2-klein-4b-edit - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-base-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -p "a lovely cat" --cfg-scale 4.0 --steps 20 -v --offload-to-cpu --diffusion-fa -``` - -flux2-klein-base-4b - -## Flux.2 klein 9B / Flux.2 klein base 9B - -### Download weights - -- Download FLUX.2-klein-9B - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-9B - - gguf: https://huggingface.co/leejet/FLUX.2-klein-9B-GGUF/tree/main -- Download FLUX.2-klein-base-9B - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9B - - gguf: https://huggingface.co/leejet/FLUX.2-klein-base-9B-GGUF/tree/main -- Download vae - - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main -- Download Qwen3 8B - - safetensors: https://huggingface.co/Comfy-Org/flux2-klein-9B/tree/main/split_files/text_encoders - - gguf: https://huggingface.co/unsloth/Qwen3-8B-GGUF/tree/main - -### Examples - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -p "a lovely cat" --cfg-scale 1.0 --steps 4 -v --offload-to-cpu --diffusion-fa -``` - -flux2-klein-9b - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -r .\kontext_input.png -p "change 'flux.cpp' to 'klein.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu --steps 4 -``` - -flux2-klein-9b-edit - -``` -.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-base-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -p "a lovely cat" --cfg-scale 4.0 --steps 20 -v --offload-to-cpu --diffusion-fa -``` - +# How to Use + +## Flux.2-dev + +### Download weights + +- Download FLUX.2-dev + - gguf: https://huggingface.co/city96/FLUX.2-dev-gguf/tree/main +- Download vae + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main +- Download FLUX.2-small-decoder (full_encoder_small_decoder.safetensors) as an alternative VAE option + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-small-decoder/tree/main +- Download Mistral-Small-3.2-24B-Instruct-2506-GGUF + - gguf: https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506-GGUF/tree/main + +### Examples + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux2-dev-Q4_K_S.gguf --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\Mistral-Small-3.2-24B-Instruct-2506-Q4_K_M.gguf -r .\kontext_input.png -p "change 'flux.cpp' to 'flux2-dev.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu +``` + +flux2 example + +## Flux.2 klein 4B / Flux.2 klein base 4B + +### Download weights + +- Download FLUX.2-klein-4B + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-4B + - gguf: https://huggingface.co/leejet/FLUX.2-klein-4B-GGUF/tree/main +- Download FLUX.2-klein-base-4B + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4B + - gguf: https://huggingface.co/leejet/FLUX.2-klein-base-4B-GGUF/tree/main +- Download vae + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main +- Download FLUX.2-small-decoder (full_encoder_small_decoder.safetensors) as an alternative VAE option + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-small-decoder/tree/main +- Download Qwen3 4b + - safetensors: https://huggingface.co/Comfy-Org/flux2-klein-4B/tree/main/split_files/text_encoders + - gguf: https://huggingface.co/unsloth/Qwen3-4B-GGUF/tree/main + +### Examples + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -p "a lovely cat" --cfg-scale 1.0 --steps 4 -v --offload-to-cpu --diffusion-fa +``` + +flux2-klein-4b + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -r .\kontext_input.png -p "change 'flux.cpp' to 'klein.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu --steps 4 +``` + +flux2-klein-4b-edit + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-base-4b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_4b.safetensors -p "a lovely cat" --cfg-scale 4.0 --steps 20 -v --offload-to-cpu --diffusion-fa +``` + +flux2-klein-base-4b + +## Flux.2 klein 9B / Flux.2 klein base 9B + +### Download weights + +- Download FLUX.2-klein-9B + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-9B + - gguf: https://huggingface.co/leejet/FLUX.2-klein-9B-GGUF/tree/main +- Download FLUX.2-klein-base-9B + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9B + - gguf: https://huggingface.co/leejet/FLUX.2-klein-base-9B-GGUF/tree/main +- Download vae + - safetensors: https://huggingface.co/black-forest-labs/FLUX.2-dev/tree/main +- Download Qwen3 8B + - safetensors: https://huggingface.co/Comfy-Org/flux2-klein-9B/tree/main/split_files/text_encoders + - gguf: https://huggingface.co/unsloth/Qwen3-8B-GGUF/tree/main + +### Examples + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -p "a lovely cat" --cfg-scale 1.0 --steps 4 -v --offload-to-cpu --diffusion-fa +``` + +flux2-klein-9b + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -r .\kontext_input.png -p "change 'flux.cpp' to 'klein.cpp'" --cfg-scale 1.0 --sampling-method euler -v --diffusion-fa --offload-to-cpu --steps 4 +``` + +flux2-klein-9b-edit + +``` +.\bin\Release\sd-cli.exe --diffusion-model ..\..\ComfyUI\models\diffusion_models\flux-2-klein-base-9b.safetensors --vae ..\..\ComfyUI\models\vae\flux2_ae.safetensors --llm ..\..\ComfyUI\models\text_encoders\qwen_3_8b.safetensors -p "a lovely cat" --cfg-scale 4.0 --steps 20 -v --offload-to-cpu --diffusion-fa +``` + flux2-klein-base-9b \ No newline at end of file