There is 3 kind of dyes; water based, oil based and acrylic. Each of them have their own characteristic to suit your dyeing purposes. To avoid color fading, after application of water based and oil based dye, you need to be careful to not expose the leather to humidity and scratching the surface.
Acrylic dye is more resistant to fading and will cover up most of the defect of the leather surface but it will also remove the natural grain of the leather. To protect even more the surface, you should apply some finishes for waterproofing and to prevent color fading.