Как сгруппировать изображения?
Плохо искали. Masonry
Мы для этого писали свою функцию, которая на клиенте их выравнивает. 
Метод работы функции следующий: 
- все картинки имеют одинаковую высоту в ряду, либо вычисляем по большей
- считаем на сколько надо увеличить ряд, чтобы он встал по ширине 
- увеличиваем ряд, оставшиеся 1-5 пикселей раскидываем между самыми маленькими изображениями в ряду 
Мы делали без кропа исходных картинок.