Faces and bold shapes with strong contrast work best
How it works
A scanner locates the code with the three corner squares, builds a grid, and reads one sample near the centre of each module. Everything else in a module is free. So each module is divided into a small grid (6×6 by default). The centre cells get the QR bit, and the other cells, 89% of the area with the default grid, get a dithered black-and-white version of your picture. High error correction absorbs the occasional misread.
This is the technique Erik and Martin Demaine describe for their QR prints (erikdemaine.org/prints/QR); its best-known academic treatment is Chu, Chang, Lee & Mitra, “Halftone QR Codes”, ACM Transactions on Graphics, 2013.
Tips: short text gives a smaller code with bigger modules, which scans more easily. Raise the contrast for soft photos. Always test the final file with a phone before printing it.