From 84fc5446d2290b57fdfec1d075d54899f1c54713 Mon Sep 17 00:00:00 2001 From: leejet Date: Fri, 17 Apr 2026 01:42:14 +0800 Subject: [PATCH] fix: skip empty prompt segments around attention range (#1429) --- src/conditioner.hpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/conditioner.hpp b/src/conditioner.hpp index e7e1d0f4..9f4d4552 100644 --- a/src/conditioner.hpp +++ b/src/conditioner.hpp @@ -1673,14 +1673,18 @@ struct LLMEmbedder : public Conditioner { size_t max_length = 100000000) { std::vector> parsed_attention; if (attn_range.first >= 0 && attn_range.second > 0) { - parsed_attention.emplace_back(text.substr(0, attn_range.first), 1.f); + if (attn_range.first > 0) { + parsed_attention.emplace_back(text.substr(0, attn_range.first), 1.f); + } if (attn_range.second - attn_range.first > 0) { auto new_parsed_attention = parse_prompt_attention(text.substr(attn_range.first, attn_range.second - attn_range.first)); parsed_attention.insert(parsed_attention.end(), new_parsed_attention.begin(), new_parsed_attention.end()); } - parsed_attention.emplace_back(text.substr(attn_range.second), 1.f); + if (attn_range.second < text.size()) { + parsed_attention.emplace_back(text.substr(attn_range.second), 1.f); + } } else { parsed_attention.emplace_back(text, 1.f); }