• tal@lemmy.today
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    2 days ago

    I don’t, and to be blunt, I don’t think that there is going to be any approach that is effective in the long run. I can think of many technical approaches, but it’s fundamentally playing a game of whack-a-mole; the technology is changing, so trying to identify flaws in it is hard. And false negatives may be a serious problem, because now you’ve got a website saying that something is a real photograph. Under some cases, it may be useful to identify a particular image as being generated, but I think that it will very much be an imperfect, best-effort thing, and to get harder over time.

    I am pretty sure that we’re going to have a combination of computer vision software and generative AIs producing 3D images at some point, and a lot of these techniques go out the window then.

    I’m also assuming that you’re talking images generated to look like photographs here.

    • Looking for EXIF metadata flagging the image as being AI-generated. Easiest approach, but this is only going to identify images that doesn’t have someone intentionally trying to pass off generated images as real.

    • It’s possible for a generated image to produce image elements that look very similar in its training set. Taking chunks of the image and then running TinEye-style fuzzy hashing on it might theoretically turn up some image that was in its training set, which would be a giveaway. I don’t know the degree to which TinEye can identify portions of images; it can do it to some degree. If I had to improve on Tineye, I’d probably do something like an edge-detection, vectorization, and then measure angles between lines and proportional distance to line intersections.

    • Identifying lighting issues. This requires computer vision software. Some older models will produce images with elements that have light sources coming from different directions. I’m pretty sure that Flux, at least, has some level of light-source identification run on its source material, else I don’t see how it could otherwise achieve the images it does.

    • Checking to see whether an image is “stable” with a given model. Normally, images are generated by an iterative process, and typically, the process stops when the image is no longer changing. If you can come up with exactly the same model and settings used to generate the image, and the person who generated the image ran generation until it was stable, and they’re using settings and a model that converge on a stable output, then an image being perfectly stable is a giveaway. The problem is that there are a vastly-proliferating number of models out there, not to mention potential settings, and no great way to derive those from the image. Also, you have to have access to the model, which won’t be the case for proprietary services (unless you are that proprietary service). You might be able to identify an image created by a widely-used commercial service like Midjourney, but I don’t think that you’re going to have as much luck with the huge number of models on civitai.com or similar.

    • One approach that was historically used to identify manipulated images was looking for images with image compression artifacts — you can see non-block-aligned JPEG compression artifacts, say. You might be able to do that with some models that have low quality images used as training data, but I’m skeptical that it’d work with better ones.

    • You can probably write software to look for some commonly-seen errors today, like malformed fingers, but honestly, I think that that’s largely trying to look for temporary technical flaws, as these will go away.