Well done. One question, though: Shouldn't the commands be a list instead of an object? I would think you would want to be sure to keep order for image processing. For instance, I don't want my image down-sized for the web until after all the processing is done to it.
The Ecmascript spec leaves the object attribute iteration order undefined (though it appears most implementations iterate in the order attributes are added).