I wrote a small test of an idea that I had, and the thumbnail to this is an example of one of the images it produces.
Basically, it scrambles an image into block regions visually, and then optionally XOR's the image data with a secret to create an encrypted image which AI struggles to properly recognize, and makes the image become junk for training. Users with this tool for this can then compute the original image for themselves.
This has the massive benefit of not adding extra information into the image, so it can 'blend in' with real images as well.
This process (with encryption) is reversible in a visually imperceptible way at lower 'magic' sizes (which this image pushes due to vibrancy), while taking time for any motivated scrapers to brute-force.
you can test this yourself with a block size of 128 and magic of 35. The code and some more information is available at https://codeberg.org/emmowo/scrapescramble
In the future, I might implement this as a bit of JS you can add to your websites (or as a browser extension) as a means of making all visitors passively decode the image without needing to use an external app.
This implementation is just a proof-of-concept, so tonnes can be done to increase the complexity of 'cracking' these images later on. This is meant to be more of a deterrence than outright prevention, but it does have some use for it.
Either way, feedback would be nice!
That would increase complexity, but I kind of like the ability to gauge what the image was probably supposed to be. It seems like AI can't identify objects as easily even when the changes aren't really that drastic.
Currently I am experimenting with using a 'phrase' to encrypt the image in chunks as well, which has shown some really promising results!