A year ago, a single open-source AI image detector was used in production for a fact-checking pipeline, but its accuracy on real submitted images was disappointing. The same image was classified differently across reruns when preprocessing varied, and images from generators released after the model’s training cutoff were systematically misclassified.
To address these issues, an ensemble of six open-source models plus one fine-tuned model was implemented, with a layer of non-ML signals on top. The combined system has proven to be more stable in production than any single model in the set.
The ensemble approach assigns specific roles to each model, including one strong on diffusion-generated images, one strong on GAN artifacts, one focused on frequency-domain features, one trained on a different data distribution, one specialized on faces, and one general-purpose model. These models do not always agree, but disagreement between them is actually the most useful signal the ensemble produces.
When all six models agree, confidence is high, but when they split, the image goes to human review or to the fine-tuned model. The fine-tuning pipeline runs continuously, with a new snapshot whenever a major new generator is released or quality degrades on a known one. The non-ML layer, which includes C2PA metadata, generator-specific EXIF traces, compression history, and watermark signatures, also plays a crucial role in tightening the ensemble’s confidence.
However, there are still challenges to be addressed, such as images that have been through multiple compression cycles after generation, images edited post-generation, and the latest video-frame extraction generators. The question remains: what is the optimal retraining cadence and how to decide when to retire a model from the ensemble versus just adding a new one?
Photo by Quang Nguyen Vinh on Pexels
Photos provided by Pexels
