imajev
imajev 1.0 · open models for everyday business decisions

Decisions for real-world cases.

Your teams make the same judgements thousands of times a day: does this listing match its photo, is this the item we shipped, who owns this ticket, does this refund meet the policy. imajev reads the photos, records and text you already have and answers in the options you set, with a probability on each and an explicit can't tell. Your system acts when it is sure and hands the rest to a person.

Runs on your own hardwareYour data never leavesOpen weights, Apache-2.02B · 4B · 9B

Same question, same model

Change the record and see what imajev-4b answered. Every state here was actually run through the model and checked against the right answer; nothing is typed in by hand.

What sets it apart

Jev reads text only. General vision models answer in prose, from a hosted API, in seconds. imajev brings Jev's typed answers to photos, and runs on your own hardware.

listing.colorred

A photo read against your record

Checks a photo against the fields in your own data and names the field that is wrong. Trained on 72k photo-vs-record and two-photo decisions.

vs

Two photos, one decision

A reference and a target in the same request: what was shipped against what came back, a known-good part against the one on the line.

A trained can't tell

Every answer carries a probability for unknown. Asked for a white or beige bag from a closet with only a red and a black backpack, the 4B puts 0.89 on unknown instead of guessing, and it abstains on only 3 of the 258 answerable items (2B 4, 9B 2).

2B · 4B · 9BMLX · CUDA

Open, small and local

Apache-2.0 weights from 2B. Runs on a Mac or one GPU, about 0.1 s per question raw (0.3 s with 4 rotations), so photos and customer data never leave your network. The Mac (MLX) weights agree with the GPU run on 97 to 99% of ImajevBench answers (2B 97.1%, 4B 98.2%, 9B 99.3%).

POST /v1/systemone

Jev's contract, now with images

The same request and response as Jev, plus images, unknown_probability and abstained. Text-only Jev requests work unchanged.

imajevJev (TypeSafe)Jev-OmniFrontier vision APIs
photos in a requestup to 2 (reference + target)none, text onlyyes; two-photo requests not documentedyes
answer formatprobability per option you setprobability per option you setprobability per option you setgenerated text or JSON
says it can't telltrained unknown, 14 / 21 on ImajevBenchnot documentedno abstain output, so 0 / 21only if prompted
record per request32 KB (about 8k tokens)32k tokensnot documentedlarge
where it runsyour hardware, open weightshosted APIyour hardware, open weights (12B)hosted API
time per decisionabout 0.1 s raw, 0.3 s with 4 rotations (one H100, under load)not documentedabout 0.1 s (one H100)5 to 8 s
ImajevBench accuracy82.4% (4B)cannot take photos78.5%91.4% to 99.6%

Jev from docs.typesafe.ai (models page, Jev 1.13.0). Jev-Omni from its model card and our run of its own predict() API. Frontier rows and all ImajevBench numbers from our runs, 24 Sept 2026; frontier models answer by structured generation, a different interface. Jev's record limit is larger than imajev's.

One request, every answer typed

Send the evidence and the questions you care about. Each comes back as a probability over the answers you allowed, ready for an if. The code below is the exact script we ran against imajev-4b; the result is its output, with numbers rounded to three places.

result · rounded, usage abridged

Where it fits

The decisions it handles well are the high-volume, well-defined ones with a clear set of answers. Each item below opens a checked example. Also on the same endpoint: a kids' letter-tracing pad and a closet stylist; every clickable combination in the apps is checked against the right answer before it is shown.

Automate what is clear, route the rest

You choose how sure the model must be before it acts. A higher bar automates less but makes fewer mistakes; everything below it goes to a person. Pick the bar from what a mistake costs you.

50%75%99%
—of decisions made automatically
—of those automatic decisions right
—sent to a person, including when it says it can't tell

imajev-4b on the 279 ImajevBench test questions: photos, records and text, including 21 whose honest answer is can't tell. The benchmark is built to be hard, with near-identical pairs that differ in one detail, so treat these numbers as a starting point and measure on a few hundred of your own cases before you choose.

automatic, rightsent to a personautomatic, wrong

Each square is one benchmark question.

Examples, every one of them checked

Real requests from the playground, answered by imajev-4b. Click a record value or a photo to switch to another checked run. Misses are shown too.

    Checked, not cherry-picked

    Each example comes from one of five small apps built on imajev. Every combination a visitor can click in those apps is sent to the model and compared with the right answer. Each square below is one of those runs; click it to open that exact run in the examples above.

    right answer, expected actionright answer, but under 80% sure, so sent to a personwrong answer

    The apps run imajev-4b without its calibration file. With the file the top answer never changes, but confidence is lower, so more cases go to a person at the 80% threshold; the second count on each row shows that. The text checks were written for this page and run once. The others were written while building the apps on an earlier model and rerun unchanged.

    Why a business would run it

    Your data stays with you

    Runs on your own servers, or on a Mac for small volumes. No photo, record or customer message leaves your network.

    Decisions, not paragraphs

    It answers only in the options you define, so it plugs into existing rules and workflows like any other system. Nothing to parse.

    It says when it can't tell

    A trained unknown for missing or contradictory evidence, plus a probability you threshold. People review what is unclear.

    Every decision is on the record

    Each answer is a set of probabilities over your options. Log them, audit them, and see exactly why a case was automated or escalated.

    Photos, records and text together

    Compare a photo with a record, a returned item with what was shipped, or an email with the account, in one request.

    Cheap at volume

    About 0.1 s per question raw on one GPU, tens of thousands of decisions an hour raw, about 10,000 an hour as served with four option orders, or 0.3 s with the 4 option rotations it is served with, with no per-call fees. Sizes from 2B for tight budgets to 9B.

    Where it stands

    Same protocol for every system on each chart. imajev is not the most accurate option. It is the small one that runs on your own hardware, answers a question in about 0.1 s raw (0.3 s with 4 rotations) on one GPU, and can abstain.

    ImajevBench v2.0-lite, 279 test items: photos, records and text, including 21 items whose right answer is unknown. Dot is accuracy, line the 95% cluster interval. Frontier APIs answer by structured generation, a different interface taking 5 to 8 s per item; starred ones also screened the benchmark's images. 51 contrast sets pair a scene with an edited copy whose right answer must change, become unknown, or stay; the 4B gets all of a set right in 36 of 51 (9B 35, 2B 25).
    JevBench public hard split, 111 text-only items, our runs with the jevbench harness on one H100; imajev as served, with 4 option rotations and its calibration file. Not the official leaderboard, which adds sealed items; an entry will be requested.
    Uplift

    The imajev adapter lifts Qwen3.5-4B from 70.6% to 82.4% on ImajevBench (+11.8 points; the paired test gives p = 0.0006). The 4B is level with the 9B there. On a 202-item hidden split that is never published item by item, the sizes score 74.3%, 84.2% and 84.7%.

    Abstention

    imajev-4b answers unknown correctly on 14 of 21 items. Jev-Omni, another open Jev-class model, has no abstain output: 78.5% overall, 0 of 21 unknown, and it is slightly ahead on answerable items.

    Not #1

    JevK5 and Eikos-4B (73.9%) lead every imajev size on JevBench hard, by 3 to 4 items of 111; the 4B (70.3%) is above Hopper (67.6%). A reasoning model scores 97.3%, at seconds and thousands of tokens per decision.

    How it was made

    About a million training decisions in three stages, on open base models, for $676 of rented GPU time for the whole project.

    Model
    A rank-16 LoRA on the language layers of Qwen3.5 (2B, 4B, 9B), plus a small readout over your option codes. The vision encoder is frozen.
    Never trained on
    Jev outputs, paid-API outputs or JevBench items. Every teacher is an open-weight model.
    Compute
    $676Rented GPU time for the whole project, every experiment included.
    Licence
    Adapters, readouts and code Apache-2.0, on Apache-2.0 base models.

    Per-stage results, the costs of the last stage and how to rebuild every dataset are in the report.

    Technical specification

    Three adapters on pinned Qwen3.5 base models, trained with the same recipe. Every number below comes from the run manifests, logs and billing records in the repository.

    imajev-2bimajev-4bimajev-9b
    Base model, pinned revisionQwen3.5-2B @15852e8cQwen3.5-4B @851bf6e8Qwen3.5-9B @c2022362
    Trainable parametersLoRA r=16, α=32, plus readout16,152,57631,127,04041,152,512
    Adapter file, float3262.6 MB122.0 MB160.5 MB
    Decision readoutone bias-free linear layer over 255 option codes255 × 2048255 × 2560255 × 4096
    Calibration temperature1.651.721.75
    Base download4.6 GB9.3 GB19.3 GB
    Stage 1 · 504,000 decisions

    36 licence-admitted public sources: 200,000 text decisions from 15 sources, 300,000 image decisions from 21 sources, 4,000 photo-vs-listing contradictions. Trained into the 2B and 9B.

    Stage 2 · 475,305 of 616,964 kept

    The 9B labelled candidates on new photo and text sources and on photo-vs-record and two-photo questions; 77.0% were kept because the answer held under two option orders. With 17,162 edited-photo pairs labelled by construction, the stage holds 71,630 photo-vs-record and two-photo decisions. The 4B took stages 1 and 2 as one 866,854-decision run.

    Stage 3 · two rounds, then a soft-target continuation

    Hard typed questions written by open-weight teachers and kept only when independent answerers agreed (9,368 then 4,852 kept), plus 8,532 items from licensed human reasoning sets. All three models. Then 2 epochs on 39,515 rows with probability targets (the hard questions relabelled by Qwen3.6-35B-A3B, 9,880 new hard rows, 10,570 Eikos decisions, 5,000 image replay); each shipped adapter is the weight-space average of the round-2 adapter and that continuation's best checkpoint.

    Recipe

    Cross-entropy on the readout logits over the listed options (soft targets where a record carries a distribution). AdamW, weight decay 0, linear warm-up then cosine decay to 10% of the peak rate, gradient clipping 1.0, seed 0, on 4 GPUs. Peak rate 2e-4 for first runs down to 2e-5 in the last round.

    Compute

    About $676 of rented GPU time for the whole project ($499.07 for the first three stages, about $177 for the soft-target continuation), every run included: labelling, generation, all training, all evaluations and aborted pods, on H100 and H200 pods.

    Per-source counts and licences, training runs by model, costs by use, evaluation sets and contamination checks are in the full technical specification and in section 6 of the report.

    Run it on your machine

    One server per model on POST /v1/systemone. No network calls at inference.

    Start a server

    Call it like Jev

    TypeSafe's own example request, sent to your server instead of api.typesafe.ai. Photos go as multipart files.

    ModelUse it whenImajevBenchJevBench hardUnknown rightBase download
    imajev-2bmemory or latency is the constraint71.7%60.4%5 / 214.6 GB
    imajev-4bthe default for almost everything82.4%70.3%14 / 219.3 GB
    imajev-9bknowledge-heavy text, when memory is not tight82.1%69.4%15 / 2119.3 GB

    The full contract, the act-or-escalate pattern, fitting your own calibration and how to reproduce every number are in the report's developer section.

    Limits

    No reasoning at inference

    One forward pass by design. Multi-step arithmetic and judging answer quality trail reasoning models.

    An empty field can read as "no"

    With a blank payment note, the 4B answered "not paid" instead of unknown. Unknown is trained for missing evidence, not guaranteed.

    Scribbles read as letters

    On the tracing pad it reads 20 of 20 traced letters and numbers correctly but calls 8 of 10 scribbles a letter. In 6 of those the confidence is low and the app asks for another try; in 2 it tells the child they drew an A.

    Over-confident without calibration

    Raw ECE on hard text items is 0.16 to 0.19. Use the calibration file there, or fit one on your own data.

    The 2B rarely abstains

    5 of 21 unknown items on ImajevBench, against 14 for the 4B and 15 for the 9B.

    Real photo pairs are the hardest task

    Two photos with a known edit are near-perfect (98% on our pairs probe), but natural pairs of real photos scored 41.8% on an earlier 4B checkpoint; not yet re-run on the release.

    English, two photos, a preview benchmark

    ImajevBench images are AI-generated and model-audited, with no human audit yet.