Мне кажется, что до момента начала работы скрипта необходимо полностью прогрузить все фотографии. Т.е. сначала идет полная загрузка фотографий, а потом уже старт скрипта. А то что все работает после перезагрузки - просто второй раз браузер "достает" картинки из кэша. Если картинка не загружена или загружена не полностью, то скрипт не может определить размер изображения.