There are two options. Start with photo-album, or not. I don't see any compelling reason to rewrite photo-album. It has a specific implementation of uploading multiple files in an archive. I think uploading a tree of files can be a more general content repository function. I want to enforce less structure on how the images are added.
The image libarary will be more flexible and simple. There will only be one type of hierarchal storage, a folder or directory. To allow futher organization of photos categories will be added. In addition all text associated with images will be indexed and searchable. So browsing for an image will be done by folder or category, or searching for keywords. It might even be better to forget folders and just make the elements of the image URL categories. An image can be in any number of categories. For example: http://example.com/images/category/image.jpg. This might make it more difficult to resolve an image URL, but ideally, images will be rendered to the filesystem,.
Hmmm, now that I think about it, this should just be more a part of a general content package that can store anything, html, templatable content, pdfs, etc. There isn't really any reason to make images something special. Upload them in a location, with a name, and it gets a URL. Assign metadata and you can search for it. Just limit search to content type if you only want to find images. This really simplifies the user interface. Its probably not ideal for a huge system, but for small and average users a consistent interface should work well.