Столкнулся однажды с той же проблемой. Но из лени решил последовать принципу Sorl Thumbnail, который формирует пути так:
/your_media_folder/b1/08/b108d1217ae0ec3d38c1e6c174c032ce.jpg
Иными словами, каждая картинка получает в качестве имени случайный UUID и раскладывается по папкам из первых его символов. Получаем равномерную раскладку по папкам, что избавляет от беспокойства о возможном торможении файловой системы при большом количестве файлов в папке. Избавляемся от необходимости нормализовать имена файлов (а если символы кириллические в имени попадутся? все ли компоненты системы отнесутся к этому благосклонно?). Взамен же теряем соответствие между структурой файловой системы и структурой моделей Django. ПМСМ, это несущественно; может быть, у Вас ситуация иная и такой способ не подойдёт.