Snake Skin Scales Texture

Hi! I'd like to put some sort of realistic looking scales onto a snake model I'm trying to make. I've tired doing this multiple ways but it's proving pretty difficult, even to some on my friends which are much better than me!

I was thinking of making each scale some geometry which is supprisingly fine preformance wise so that's not an issue however it does 'scale' weirdly when I'm deforming the mesh as I'm also trying to use this for animation and wouldn't mind getting some close up shots.

I've also tried making the scale texture using Substance Painter however I don't think that's going to work particuarly well as, well lets just say painting each scale to create the patterns by hand is a nightmare!

So yeah, I know Simon Thommes has created an awesome procedural material for it but I'm still unsure on how to make the scales different colours for the patterns accross it's body. I was thinking of creating a mask for it but that would still mean painting it by hand which takes far too long for me!

Thanks for reading through anyways and to any help I may get with this!

Matt :)