I have a dirs and subdirs that contain images (525 images all together in 15 folders).
Using GNU tools, from the parent directory:
find . -type f -iname '*.jpg' -printf '%s %p\0' | sort -z -k1,1rn | xargs -0 -n1
find . -type f -iname '*.jpg' -printf '%s %p\0' finds all
.jpg files (case insensitively), and outputs the filesize in bytes as first field and filename as second field, with each record separated by NUL, this is required to handle filenames with newlines in them
sort -z -k1,1rn sorts the NUL separated records based on first field numerically, reversed so the filenames with higher sizes will show at the top
xargs -0 -n1 prints the filenames with with descending size