Baltor Get started

Models

LightOnOCR-2-1B

By lightonai. 1.0 billion parameters, a context window of 16,384 tokens and the licence apache-2.0.

Facts

Released
2026-01-16 the day the repository was first published on Hugging Face Hugging Face, read
Licence
apache-2.0 the licence the model card declares Hugging Face, read
Open weights
Yes the weights are published in this Hugging Face repository Hugging Face, read
Parameters
1.0 billion counted from the safetensors weight files Hugging Face, read
Active parameters
Unknown
Knowledge cutoff
Unknown
Context window
  • 16,384 tokens the maximum position embeddings in the model configuration model configuration, read
Longest output
Unknown
Tool calling
Unknown
Structured output
Unknown
Reasoning controls
Unknown
Inputs and outputs
text, image in, text out Hugging Face, read
Good for
  • Vision: Hugging Face files it under image-text-to-text Hugging Face, read

Prices

Prices in US dollars per million tokens, as each source lists them
ProviderInputOutputContextAs ofSource
NanoGPT direct0.178 USD0.346 USD32,768models.dev, read

Run it on your own hardware

Weights are the sizes of the files a source lists, or an estimate from the parameter count where none does. Memory is an estimate: weights plus KV cache plus 512 MiB and 5 percent of the weights for runtime buffers. Check it against your hardware.

QuantizationWeightsMemory at 8,192 tokensMemory at 32,768 tokens
F16 estimate1.9 GiB3.3 GiBBeyond its context
Q8_0 estimate1.0 GiB2.4 GiBBeyond its context
Q4_0 estimate0.5 GiB1.9 GiBBeyond its context

Start it with a local runtime

  • vLLM
    vllm serve lightonai/LightOnOCR-2-1B
  • SGLang
    sglang serve --model-path lightonai/LightOnOCR-2-1B --port 30000

Use it from your harness

Set up for NanoGPT with the model lightonai/LightOnOCR-2-1B. Each endpoint page has the same setup for its own address.

OpenCode

Put this in opencode.json in your project folder:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "nano-gpt": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "NanoGPT",
      "options": {
        "baseURL": "https://nano-gpt.com/api/v1",
        "apiKey": "{env:NANO_GPT_API_KEY}"
      },
      "models": {
        "lightonai/LightOnOCR-2-1B": {
          "name": "LightOnOCR-2-1B"
        }
      }
    }
  }
}
  • OpenCode reads any OpenAI-compatible address through the @ai-sdk/openai-compatible package, and an address that speaks the Responses API through @ai-sdk/openai.

From OpenCode documentation, read .

Pi

Put this in ~/.pi/agent/models.json:

{
  "providers": {
    "nano-gpt": {
      "baseUrl": "https://nano-gpt.com/api/v1",
      "api": "openai-completions",
      "apiKey": "$NANO_GPT_API_KEY",
      "models": [
        {
          "id": "lightonai/LightOnOCR-2-1B"
        }
      ]
    }
  }
}
  • The apiKey field can name an environment variable as $NAME.

From Pi documentation, read .

Codex

Codex speaks only the Responses API, and NanoGPT documents no Responses address. A gateway that offers one can sit in between.

  • Codex speaks the Responses API only: responses is the one supported wire API of a custom provider. Ollama and LM Studio are built in and start with --oss.

From Codex documentation, read .

Claude Code

Claude Code sends Anthropic Messages requests, and NanoGPT documents no such address. A gateway that translates to that API can sit in between.

  • Claude Code sends Anthropic Messages requests to ANTHROPIC_BASE_URL. Anthropic says it does not support routing Claude Code to models other than Claude through any gateway, so some features may not work with another model.

From Claude Code documentation, read .

Published results

These are results other people published. Baltor did not run them and does not rank models by them.