koboldcpp/tools
Pascal 6471e3c090
UI/jpeg exif orientation (#24196)
* ui: bake jpeg exif orientation into uploaded images

stb_image in mtmd ignores exif metadata, so rotated smartphone photos
reach the model with raw pixel orientation. The webui now reads the
exif orientation tag at send time and feeds it into the existing
capImageDataURLSize canvas pass: the browser applies the rotation when
decoding, so capped images come out upright for free, and images under
the cap threshold get a single plain redraw when orientation > 1.

At most one re-encode ever happens per image. Upright jpegs with
capping disabled pass through untouched, bit perfect.

Adds jpeg-orientation.ts with a minimal exif parser working on a
bounded base64 prefix (both endianness, returns 1 on any malformed
input) and unit tests against handcrafted jpeg byte streams.

* ui: move jpeg exif constants into lib/constants

* ui: add browser test for jpeg orientation and capping

Covers capImageDataURLSize end to end in chromium with real Pillow
generated jpeg fixtures across exif orientations 1/3/5/6/8: upright
quadrant colors checked pixel-wise, expected dimensions with and
without capping, no orientation tag left in the output, and strict
passthrough when nothing needs rewriting.
2026-06-12 10:20:27 +02:00
..
batched-bench cmake : add install() for impl libraries + fix apple builds (#23511) 2026-05-22 11:46:26 +03:00
cli mtmd : add video input support (#24269) 2026-06-08 14:40:12 +03:00
completion completion : remove useless statics (#24226) 2026-06-06 12:16:16 +02:00
cvector-generator libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
export-lora libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
fit-params cmake : add install() for impl libraries + fix apple builds (#23511) 2026-05-22 11:46:26 +03:00
gguf-split libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
imatrix Move duplicated imatrix code into single common imatrix-loader.cpp (#22445) 2026-06-04 17:45:40 +02:00
llama-bench Support -fa auto in llama-bench (#23714) 2026-05-31 02:03:57 +05:30
mtmd graph: Fix granite speech model inference by applying embedding scale when deepstack is not used (#24357) 2026-06-09 19:46:27 +02:00
parser libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
perplexity perplexity : fix format specifier in LOG_ERR (#23788) 2026-05-28 10:34:58 +03:00
quantize docs: Update quantization readme (#24133) 2026-06-05 12:21:26 +02:00
results libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
rpc fix: rpc-server cache may not work in Windows environments (#22394) 2026-04-27 17:25:09 +03:00
server server: skip unused log lines on router mode (#24463) 2026-06-11 11:36:35 +02:00
tokenize libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
tts logs : reduce (#23021) 2026-05-14 13:05:52 +03:00
ui UI/jpeg exif orientation (#24196) 2026-06-12 10:20:27 +02:00
CMakeLists.txt cmake: skip cvector-generator and export-lora when CPU backend is disabled (#24053) 2026-06-04 13:13:19 +03:00