This blend file contains two shader node groups: NPR Diffuse NPR Specular
The Blend functions as a demo as well, so you can see how the shaders should be implemented if used together. I used spot lamps to demonstrate the sensitivity to colored lights (NPR Diffuse only).
Please be aware that these are by no means perfect and that they do require some adjustment for whatever project you place them in. I decided to share them here too, because I use them in production - that's when you need a dynamic setup like this!
NOTE: To get a texture to work normally with the NPR Diffuse shader, simply input a default colorramped version into the Color Intensity and you should be golden.
Of course, I simply cannot take full credit for all of it. I worked on this for a long time with Wasili Novratidis. For more info, other shaders and documentation, check out my website: http://www.pantherdynamics.yolasite.com/toon-shader.php
I make no warranties and you use it entirely at your own risk.