1. A computer-implemented method comprising: accessing a plurality of images; identifying a filter to apply to the images; scaling a set of images obtained from the plurality of images to a thumbnail resolution; requesting one or more thumbnail canvases from a texture repository, the thumbnail canvas request associated with the filter and the thumbnail resolution, the texture repository configured to generate a canvas responsive to the filter and thumbnail resolution when the filter and thumbnail resolution does not exist in a stored plurality of canvases, wherein requesting the one or more thumbnail canvases from the texture repository comprises: generating, at an image manipulation application, a first request for a first thumbnail canvas to be applied to a first thumbnail image, the first request specifying a first target resolution corresponding to a first resolution of the first thumbnail image and a first target texture identifier, and subsequent to the first request, generating, at the image manipulation application, a second request for a second thumbnail canvas to be applied to a second thumbnail image, the second request specifying a second target resolution corresponding to a second resolution of the second thumbnail image and a second target texture identifier, the first target resolution equal to the second target resolution; filtering the scaled set of images using the filter by applying the one or more thumbnail canvases to the scaled set of images; providing a user the filtered set of images using a display; selecting a filtered thumbnail image from the filtered set of images responsive to a user input; identifying the image in the plurality of images associated with the selected filtered thumbnail image; requesting a full size canvas from the texture repository, the full size canvas request associated with the filter and a resolution associated with the identified image size; and filtering the identified image using the image filter by applying the full size canvas to the identified image.