I think this is what what you meant when you said construct different diff view model for image and file view model.  As a person who has been working with heave server side web app programming any time relaying any data or logic to client side is discouraged unless it is absolutely necessary.  With previous implementation, client is completely oblivious of image or text file diff operation or not and let server make decision for clients.  I feel like general node.js's approach is relying too heavy on clients.  Am I correct in saying that?