Kontoauszug
Nano Banana 2.1Our prompt: Change the closing balance from 2,589.93 to 8,589.93 euros.




A number nobody asked to change: the salary credit now reads 2,630.59 instead of 2,639.59. The AI also added an empty row.
Holograin flags payslips, bank statements and bills that an AI image generator has redrawn from a scan or a phone photo.
Demo vereinbarenOriginal

After one AI prompt

An applicant's payslip says 2,639.59 euros a month. They photograph it, open an image app and type: change the net pay to 3,639.59. Thirty seconds later they upload the same payslip with a better number.
No PDF editor's fingerprint, no box pasted over a figure, no digit in the wrong font. The generator did not patch the page. It drew a new one.
What it cannot do is draw like a scanner or a phone camera. It leaves its own texture, invisible to the eye, and Holograin is trained to find it.
Every name and number on this payslip is fictitious. We asked Nano Banana, Google's image model, to change the net pay.


Scores run from 0 to 100. Above 50 a page is flagged, which happens to 1 genuine document in 100.
We asked for one number. The AI redrew the whole page. Same spot on both versions, magnified, original on top.


The change we asked for: same font, same size, same place.


A change nobody asked for: an invented payroll line that pushed every row below it down.


The rest of the page, redrawn. Magnified six times, an untouched word looks the same to the eye. Holograin measures the difference in the pixels.
The arithmetic broke too: 2,862.38 minus 222.79 is still 2,639.59, and Holofin checks that. A careful fraudster fixes the sum. What the generator leaves in the pixels stays.
Three more fictitious documents, one prompt each. Every score is shown as measured.
Our prompt: Change the closing balance from 2,589.93 to 8,589.93 euros.




A number nobody asked to change: the salary credit now reads 2,630.59 instead of 2,639.59. The AI also added an empty row.
Our prompt: Change the reference tax income from 31,846 to 48,846 euros.




A clean edit. The only visible tell: the calculation below still adds up to 31,846.
Our prompt: Change the invoice date from 14/10/2026 to 30/10/2026.




An empty row appeared in the middle of the charges.
Our prompt: Change the invoice date from 14/10/2026 to 30/10/2026.


A generator Holograin never saw in training. Nothing a reader would notice: only the date changed. Holograin still flags it.
At a setting that wrongly flags 1 genuine document in 100, Holograin catches 9 in 10 AI re-rendered documents after upload.
Generic AI-image detectors learn from photographs and miss documents. Holograin learned from 1,448 AI edits of real French financial documents, and its threshold is set on 1,061 genuine pages: a detector that keeps flagging honest applicants is one your team learns to ignore.
These come from our larger test set: each channel has its own threshold, set on about 825 genuine pages from that channel, and the AI pages come from documents never seen in training.
| How the image reached us | AI re-renders caught |
|---|---|
| The image as the generator returned it | 96% |
| After upload to Holofin | 90% |
| After WhatsApp recompression | 85% |
| After a phone screenshot | 97% |
| A generator kept out of training (GPT-5.4 image), after upload | 95% |
A general AI model either accuses your genuine customers or misses the fakes.
HolograinHolofin
Gemini 4 ArgonGoogle
GPT-6.1 Sol ProOpenAI
Off-the-shelf open-source detectorCommunity Forensics
Left to their own judgement, Gemini 4 flagged 45 genuine documents in 100; GPT-6.1 missed 60 fakes in 100.
Method, 31 October 2026: every detector saw the same 200 pages after upload to Holofin, 100 re-rendered by five AI generators (Nano Banana 2.1, Gemini 2.5 and 3.1 image, GPT-5 image mini, GPT-5.4 image) and 100 genuine customer documents, none used in training. The general models read each page with a fraud analyst's prompt and gave a probability. F1, which combines catching fakes and not accusing genuine customers (1.0 is perfect): Holograin 0.91 at its production setting, Gemini 4 Argon 0.77 and GPT-6.1 Sol Pro 0.57 on their own verdict. A general model also sends every document to its provider; Holograin runs on Holofin's servers. The 90% and 1% higher on this page come from our larger test set, about 825 genuine pages per channel.
Holograin is one check in Holofin's fraud engine, never a verdict on its own.
Before conversion
Holograin
Metadata can be stripped. The texture a generator leaves in the pixels cannot.
Around it
A careful fraudster crops the one figure to change, edits that small square and pastes it back into the original scan. The rest of the page is genuine, and the square is too small to stand out from ordinary scan noise.
We measured it. On edits pasted back this way, Holograin catches close to nothing at the 1% threshold.
Holofin's other checks catch them: a digit in the wrong font, a column out of line, a total that no longer adds up. That is why Holograin is one signal, never the whole verdict.
Fragen
Google's Gemini image models, Nano Banana among them, and OpenAI's image models. On GPT-5.4 image, kept out of training entirely, it still catches 95% of re-rendered pages after upload.
About 1 in 100, for each way a document can reach us. A flag goes to a reviewer; it never rejects a file on its own.
Mostly not. Holograin still catches 85% of AI re-rendered pages after WhatsApp recompression, and 97% after a phone screenshot.
No. Holograin was neither trained nor measured on identity documents. They go through Holofin's dedicated identity checks.