Commit bb6b128 for stable-diffusion.cpp

commit bb6b128b2daf92e2c80919a311da6267369a4039
Author: leejet <leejet714@gmail.com>
Date:   Tue Oct 27 00:24:43 2026 +0800

    fix: avoid repeated seeks when skipping small GGUF metadata values (#2223)

diff --git a/src/model_io/gguf_reader_ext.h b/src/model_io/gguf_reader_ext.h
index f02fe3c..bf183f7 100644
--- a/src/model_io/gguf_reader_ext.h
+++ b/src/model_io/gguf_reader_ext.h
@@ -60,7 +60,12 @@ private:
         if (count > remaining_bytes_ / element_size)
             return false;
         uint64_t size = count * element_size;
-        fin.seekg(static_cast<std::streamoff>(size), std::ios::cur);
+        // Seeking discards the read buffer, making arrays of short tokenizer strings expensive to skip.
+        if (size <= 64 * 1024) {
+            fin.ignore(static_cast<std::streamsize>(size));
+        } else {
+            fin.seekg(static_cast<std::streamoff>(size), std::ios::cur);
+        }
         if (!fin.good())
             return false;
         remaining_bytes_ -= size;