<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ocr on AiSlackin</title><link>https://aislackin.com/tags/ocr/</link><description>Recent content in Ocr on AiSlackin</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 30 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://aislackin.com/tags/ocr/index.xml" rel="self" type="application/rss+xml"/><item><title>quill-of-hermes: LAN OCR that eats PDFs and multi-page TIFFs</title><link>https://aislackin.com/posts/2026-07-30-quill-of-hermes-lan-ocr/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><guid>https://aislackin.com/posts/2026-07-30-quill-of-hermes-lan-ocr/</guid><description>&lt;p&gt;OCR as a service usually means cloud APIs, per-page billing, and your documents on someone else&amp;rsquo;s disk. This is the local counterargument: a FastAPI wrapper around &lt;a href="https://github.com/01-ai"&gt;OvisOCR2&lt;/a&gt; running GGUF via llama.cpp&amp;rsquo;s &lt;code&gt;llama-mtmd-cli&lt;/code&gt;, serving your LAN. POST an image, a PDF, or a multi-page TIFF; get back clean Markdown.&lt;/p&gt;&#10;&lt;p&gt;The design decisions worth noting: each page is sent to the model independently and results are joined with a horizontal rule, so a 50-page PDF degrades gracefully instead of failing whole. Jobs are serialized to keep the GPU sane, there&amp;rsquo;s a five-minute timeout per page so one bad scan can&amp;rsquo;t wedge the queue, and temp files are cleaned unconditionally. The service deliberately stays separate from llama-swap because multimodal &lt;code&gt;llama-server&lt;/code&gt; support for this model wasn&amp;rsquo;t proven — &lt;code&gt;llama-mtmd-cli&lt;/code&gt; was.&lt;/p&gt;</description></item></channel></rss>