Another option would be to hide your images until they are loaded. You can do this by using a directive as an attribute (similar to how ng-cloak works but with added functionality). Your directive would look something like this, first hiding the element when angular compiles, and then showing it when the document is ready / images have loaded, etc.
angular.module('app').directive('fadeUpWhenReady', ['$document', function ($document) {
  return { 
    restrict: 'A',
    compile: function (element, attr) {
      element.css({
        "opacity": 0,
        "-webkit-transform":  "translateY(100px)",
        "-moz-transform":     "translateY(100px)",
        "-o-transform":       "translateY(100px)",
        "-ms-transform":      "translateY(100px)",
        "transform":          "translateY(100px)",
        "-webkit-transition": "all 0.5s cubic-bezier(0.345, 0, 0.25, 1)",
        "-moz-transition":    "all 0.5s cubic-bezier(0.345, 0, 0.25, 1)",
        "-o-transition":      "all 0.5s cubic-bezier(0.345, 0, 0.25, 1)",
        "-ms-transition":     "all 0.5s cubic-bezier(0.345, 0, 0.25, 1)",
        "transition":         "all 0.5s cubic-bezier(0.345, 0, 0.25, 1)"
      });
      $document.ready( function() {
        element.css({
          "opacity": 1,
          "-webkit-transform":  "translateY(0)",
          "-moz-transform":     "translateY(0)",
          "-o-transform":       "translateY(0)",
          "-ms-transform":      "translateY(0)",
          "transform":          "translateY(0)"
        });
      });
    }
  };
}]);
Finally, you just use it as an attribute in an element you'd like to hide, for example:
<img ng-src = "{{ img.url }}" fade-up-when-ready />
Note that if your element is inside an ui-view, it'll compile twice. Once when the page initially loads, and a second time when the ui-view comes in the screen.