FindRomCover supports cloud providers, local servers, and custom endpoints. All of them are configured in Settings > AI Settings.... Test / Load Models discovers a provider's models at <Base URL>/models, so the endpoint must expose that path.
| Provider | Default base URL | Default model | Key required | Notes |
|---|---|---|---|---|
| OpenRouter | https://openrouter.ai/api/v1 |
google/gemma-4-26b-a4b-it |
Yes | Aggregator with hundreds of models; cheapest vision options |
| OpenAI | https://api.openai.com/v1 |
gpt-4o-mini |
Yes | Reliable JSON output; gpt-5-nano is a low-cost alternative |
| Anthropic | https://api.anthropic.com/v1 |
claude-sonnet-4-5 |
Yes | Strong visual reasoning; native Messages API |
| Gemini | https://generativelanguage.googleapis.com/v1beta |
gemini-2.5-flash |
Yes | Generous free tier; gemini-2.5-flash-lite is cheaper |
| GLM | https://api.z.ai/api/paas/v4 |
glm-4.5v |
Yes | Zhipu/Z.AI; use https://open.bigmodel.cn/api/paas/v4 for the China endpoint |
| Local | http://localhost:11434/v1 |
qwen2.5vl:7b |
No | Ollama or LM Studio; no cloud cost, slower on weak hardware |
| Custom (OpenAI-compatible) | None — enter manually | None — enter manually | Optional | Proxies, gateways, self-hosted servers |
| Custom (Anthropic-compatible) | Falls back to https://api.anthropic.com/v1 when left empty |
None — enter manually | Optional | Endpoints speaking the Anthropic Messages API |
- Create an API key at openrouter.ai/keys.
- Select OpenRouter in AI Settings, paste the key, and click Test / Load Models.
- Pick a model. The default
google/gemma-4-26b-a4b-itfollows the cover/box-art instructions reliably; see Recommended Models for cheaper and more expensive alternatives.
OpenRouter exposes modality metadata, so the model picker knows exactly which models accept image input.
- Create an API key at platform.openai.com/api-keys.
- Select OpenAI, paste the key, and click Test / Load Models.
- Choose a vision-capable model such as
gpt-4o-miniorgpt-5-nano.
The OpenAI adapter uses the shared OpenAI-compatible client. Reasoning models (o1, o3, o4, gpt-5*) are called without temperature and with max_completion_tokens; other models use temperature and max_tokens. All requests allow up to 4,096 output tokens, and JSON is parsed from the response text.
- Create an API key at console.anthropic.com.
- Select Anthropic, paste the key, and click Test / Load Models.
- Choose a model such as
claude-sonnet-4-5orclaude-haiku-4-5for lower cost.
Anthropic uses a native adapter implementing the Messages API, including image blocks.
- Create an API key at aistudio.google.com/apikey.
- Select Gemini, paste the key, and click Test / Load Models.
- Choose a model such as
gemini-2.5-flashorgemini-2.5-flash-lite.
Gemini uses a native adapter implementing generateContent with inline image data. The free tier is generous, which makes it a good starting point.
- Create an API key at z.ai.
- Select GLM, paste the key, and click Test / Load Models.
- Choose
glm-4.5vor another vision-capable GLM model.
For the China endpoint, change the Base URL to https://open.bigmodel.cn/api/paas/v4.
Run a local vision model and point FindRomCover at it. No API key is required.
Ollama
ollama pull qwen2.5vl:7b
ollama serve- Base URL:
http://localhost:11434/v1 - Model:
qwen2.5vl:7b(or another vision model you have pulled)
LM Studio
- Start the local server in LM Studio (default port 1234).
- Base URL:
http://localhost:1234/v1 - Model: the identifier shown by LM Studio.
Local models are private and free to run, but they are slower and generally less accurate than cloud models. They are a good fit for small collections or offline setups.
Use a custom provider when you have a proxy, gateway, or self-hosted server:
| Option | API style | Base URL | When to use |
|---|---|---|---|
| Custom (OpenAI-compatible) | /chat/completions |
Required — no default | Anything that speaks the OpenAI API, including Azure OpenAI gateways and LiteLLM |
| Custom (Anthropic-compatible) | /messages |
Optional — defaults to https://api.anthropic.com/v1 |
Endpoints that speak the Anthropic Messages API |
Enter the API key, Base URL, and Model manually. The Base URL and Model are required for custom providers; the API key is optional at save time because some self-hosted servers ignore it, but gateways that enforce authentication need one.
Model discovery. FindRomCover lists models by appending /models to the configured base URL and accepts either the OpenAI (data) or Gemini (models) response shape. A custom gateway must expose that endpoint, or Test / Load Models fails. If it does not, type the model ID directly into the Model field and skip the test.
OpenCode Zen is an OpenAI-compatible gateway from the OpenCode team. It currently offers MiMo-V2.5 Free, a multimodal model that accepts image input:
| Setting | Value |
|---|---|
| Provider | Custom (OpenAI-compatible) |
| Base URL | https://opencode.ai/zen/v1 |
| API Key | Zen key from opencode.ai/auth |
| Model | mimo-v2.5-free |
See Recommended Models for cost notes and caveats.
Click Test / Load Models to:
- verify the API key and base URL by contacting the provider;
- download the list of available models;
- cache the list for the selected provider and base URL for 7 days.
The cache is stored in %LocalAppData%\FindRomCover\ai-models.json, keyed by provider and lowercased base URL. If a test fails, the error is shown and the previously cached list stays loaded. Because the cache key includes the base URL, changing the base URL selects a different (usually empty) entry — click Test / Load Models to populate it.
The picker:
- shows vision-capable models only by default (based on provider modality metadata where available, and a name heuristic otherwise);
- can be filtered with the filter box — type part of a model ID to narrow the list;
- displays the number of loaded models;
- falls back to the cached list instantly on later visits.
All adapters share one abstraction with identical timeouts, JPEG downscaling, JSON parsing, and friendly error messages:
- OpenAI, GLM, Local, and Custom (OpenAI-compatible) endpoints share one adapter using
/chat/completions. - Anthropic and Custom (Anthropic-compatible) endpoints share the native Anthropic adapter using
/messages. - Gemini uses its native adapter and calls
generateContentwith inline image data.
Every client requests up to 4,096 output tokens. OpenAI reasoning models (o1, o3, o4, gpt-5*) use max_completion_tokens and omit temperature; other models use temperature and max_tokens. FindRomCover always prompts for JSON and extracts the JSON object from the response text, so models without a native JSON mode still work.
The local pick prompt asks for the official cover or box art of the exact game and allows the model to answer -1 when no candidate is genuine cover art. The API-fallback prompt is slightly more lenient: it prefers a game cover or an in-game screenshot over a photo of the physical cartridge, cart, or disc, and accepts an in-game screenshot when no cover art exists. The prompt version participates in the verdict cache key, so prompt changes invalidate old cached answers.