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!

  • fullsquare@awful.systems
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    2 days ago

    somehow i think that there should be a way to match edges of these blocks and unscramble the image this way. note that the more of unscrambled image you have the easier it should get. however, if you took every block and dispersed its pixels (xor something) into all new blocks, that would be much harder

    • emmowo@lemmy.worldOP
      link
      fedilink
      arrow-up
      3
      ·
      2 days ago

      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!

    • Klear@piefed.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 days ago

      The scraper would have to know the image is scrabled to do that, and if they knew, they could just use the script.

      • fullsquare@awful.systems
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        2 days ago

        as it is now, edges aligning with grid would be a clue. this doesn’t happen when image looks like static

        • Klear@piefed.world
          link
          fedilink
          English
          arrow-up
          4
          ·
          2 days ago

          Again, a clue is only useful if you’re looking for clue, and if you’re looking for a clue, you already have the solution.