P1 · 6 min read · November 2026
One 320×213 Image Through Two AI Pipelines: Ours and FLUX.2 [klein] (Measured 2026-11-02)
The same 320×213 JPEG, the same prompt, two routes: our own pipeline and Cloudflare Workers AI running FLUX.2 [klein] 4B. What came back, with sizes, hashes and one honest caveat.
flux 2 klein · image to image · ai image enhancement · workers ai · comparison · measurement
Comparisons are cheap to write and expensive to trust. This one is short on purpose: one input, one prompt, two routes, and every number below came out of a job run on 2026-11-02.
The input
A 320×213 JPEG, 12,287 bytes, SHA-256 starting `901bb72b4750`. It is one of the low-resolution examples our own site serves, a pile of book covers with heavy compression on the spine text.

Route A — our pipeline
Model `flux-klein`, four inference steps, seed 42, WebP output, no width or height forced. The prompt asked to keep the subject, framing, colours and lighting and to rebuild texture without adding objects.
Result: a 1024×1024 WebP of 309,502 bytes, SHA-256 starting `0fd398414935`.

Look at the spines. The scene, the colour blocking and the pile survive; the Chinese and English titles do not. The model did not read them, it drew something that looks like lettering. This is the caveat we print next to every example on the site, and here it is visible in one image: enhancement is reconstruction, not recovery. If the picture has information you must preserve — a serial number, a price tag, a face — check it at 100% before you ship anything.
Route B — FLUX.2 [klein] 4B on Workers AI
Same prompt, same 320×213 input, sent as a multipart request to `@cf/black-forest-labs/flux-2-klein-4b` with the original JPEG in `input_image`. The endpoint answered in about two seconds with a 1024×1024 JPEG of 614,235 bytes.

That is not the book pile. The response is a clean studio photograph of a grey cylindrical container — it is what a text-to-image call produces from "restore this compressed product photo…", and it bears no relation to the input pixels. So the call we made did not execute image-to-image. We are not publishing it as "what FLUX klein does": it is what that endpoint did with that request, and the useful half of it is the lesson.
Check that the model actually consumed your input. Send one image, look at the output, and if it is unrelated to the input, your request was treated as text-to-image and every conclusion you were about to draw about "editing quality" would have been wrong. This is not a verdict on FLUX.2 [klein]'s editing ability; it is a verdict on one call.
Why we did not run FLUX.3 [klein]
FLUX.3 [klein] exists: the repository was published on 2026-10-16 and reports 5,548,681,984 parameters in BF16, gated access, and a licence marked "other". We have no GPU on this machine and no granted access to the repository, so we could not run it, and a comparison without a run would be fiction. If you have a card that fits 5.5B weights, the shape of the test above is the test to repeat.
What this comparison does and does not say
It says: on this input, our pipeline kept the scene and rewrote the lettering; a Workers AI call to the 4B klein build returned an unrelated image and therefore was not an edit at all.
It does not say that one model is better than another, it is not a benchmark, and it is not a quality ranking. Two routes, one image, one prompt, all parameters published, all hashes published. Repeat it and you should be able to reach the same two files.
The free example on our site runs the same pipeline, with the same caveat printed on the page — try it before you upload anything of your own.
Try the free AI image tool · Check the source-linked GPU evidence