From d83511ce4f06ba9e3e303f7919a63b16a1df68f0 Mon Sep 17 00:00:00 2001 From: akleine Date: Thu, 30 Jul 2026 07:40:53 +0200 Subject: [PATCH] fix: PhotoMaker: avoid GGML_ASSERT if trigger word 'img' was not found in prompt Before this little patch: [DEBUG] bpe_tokenizer.cpp:208 - split prompt "man is playing a guitar" to tokens ["man", "is", "playing", "a", "guitar", ] /home/usr/stable-diffusion.cpp/src/extensions/photomaker_extension.cpp:99: GGML_ASSERT(it != tokens.end()) failed ... [Inferior 1 (process 3985) detached] ./0_NEWTON_MAN_FRU: Zeile 11: 3985 Abort (core dumped) ./sd-cli -m ~/SD_models/sdxl/zavychromaxl_v100.safetensors --vae ~/SD_models/sdxl/sdxl_vae.safetensors --clip-on-cpu --steps 20 -v --seed 44 --cfg-scale 5 --photo-maker ~/SD_models/loras_sdxl/photomaker-v1.safetensors --pm-id-images-dir ./assets --pm-style-strength 5 -p "man is playing a guitar" Now: [WARN ] photomaker_extension.cpp:231 - PhotoMaker trigger word 'img' was not found in prompt [WARN ] photomaker_extension.cpp:232 - Turn off PhotoMaker for this request ...and continue here and write output file --- src/extensions/photomaker_extension.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extensions/photomaker_extension.cpp b/src/extensions/photomaker_extension.cpp index 78c5cdb9b..48b023f99 100644 --- a/src/extensions/photomaker_extension.cpp +++ b/src/extensions/photomaker_extension.cpp @@ -56,7 +56,7 @@ tokenize_photomaker_trigger(FrozenCLIPEmbedderWithCustomWords& clip_conditioner, true); std::vector class_token_mask; for (int i = 0; i < tokens.size(); i++) { - class_token_mask.push_back(class_idx + 1 <= i && i < class_idx + 1 + trigger_token_count); + class_token_mask.push_back(class_idx >= 0 && class_idx + 1 <= i && i < class_idx + 1 + trigger_token_count); } return std::make_tuple(tokens, weights, class_token_mask);