How to combine tiers.
'progressive'
Optional ocrOCR engine for Tier 1 text extraction.
'paddle' — PaddleOCR (via ppu-paddle-ocr). Best accuracy for most scripts.'tesseract' — Tesseract.js. Wider language support, slightly lower accuracy.'none' — Skip OCR entirely (useful for photo-only pipelines).'paddle' (if installed), else 'tesseract' (if installed), else 'none'
Optional handwritingEnable handwriting recognition via TrOCR (@huggingface/transformers).
Only triggered when OCR confidence is low and content appears handwritten.
false
Optional documentAIEnable document understanding via Florence-2 (@huggingface/transformers).
Produces a DocumentLayout of the lines of text it reads, each with its box.
false
Optional embeddingEnable CLIP image embeddings (@huggingface/transformers).
Runs in parallel with other tiers — does not affect text extraction.
false
Optional cloudCloud vision LLM provider name for Tier 3 fallback.
Must match a provider known to generateText() (e.g. 'openai', 'anthropic', 'gemini').
When unset, cloud vision is disabled.
Optional cloudCloud model override. When unset, the provider's default vision model is used.
'gpt-4o', 'claude-sonnet-4-6', 'gemini-2.5-flash'
Optional cloudAPI key for the cloud vision provider. When unset, the provider's key is
read from its environment variable (OPENAI_API_KEY and so on), as
generateText does. createVisionPipeline refuses a key, and a
base URL, that comes with no cloudProvider and no cloudModel naming a
provider (openai:gpt-4o): it would go to whichever provider the
environment names.
Optional cloudBase URL for the cloud vision provider, such as a proxy or a local
OpenAI-compatible server. When unset, the provider's default is used.
Needs a named provider, as cloudApiKey does. An empty or whitespace-only
value is unset: it needs no provider, and the provider's base-URL
variable, then its default, apply as with none.
Optional cloudThe providers the cloud tier may try, in order, after cloudProvider
fails: generateText's fallbackProviders. Default [], so the image
goes to cloudProvider alone and never to another vendor whose key is in
the environment. A listed provider uses its own key from the environment,
never cloudApiKey or cloudBaseUrl.
Optional confidenceMinimum confidence to accept an OCR result without escalating to cloud.
Only applies to 'progressive' strategy — if OCR confidence is below
this threshold, the pipeline escalates to the next tier.
0.7
Optional preprocessingImage preprocessing options applied before any tier runs.
Uses sharp for resizing, grayscale conversion, sharpening,
and normalization.
Configuration for the VisionPipeline.
All fields are optional — the factory function createVisionPipeline auto-detects available providers and fills in sensible defaults.
Example