Gradient multi color each face?
You can use faces normals to obtain the colors of the faces (more or less randomly) and use UV input to give them a little gradient effect (or some lamps also).

For the color :


Use "texture coordinate" and "normal" as input
Add a vector mapping (this is usefull after to tune the faces orientation by rotating x, y or z and change the colors)
Separate the coordinates 
Add a color ramp to each so that you can modulate each intensity
Combine them and use it as a color input for the shader


For the little gradient effect :


Use "UV" input of the texture coordinate input
Separate and use X or Y (U or V)
Add a color ramp to tune the value


Use both by mixing them and link to the shader.



This is not the exact same colors as your picture, but the same kind of effect. You'll probably have to tune : color ramps, orientations, eventually inverting X, Y, Z...