How can I tag objects in the scene in a way that a full screen shader can read that tag?

I’m trying to build a kind of experimental art pipeline for a 2D game.
The sketch below summarizes what I want in terms of workflow.

Every sprite in the game will be painted grayscale.
But I also want them to have some tag which later will be mapped to a Gradient Map.
I’m thinking those gradient maps will be contained in a Post Processing shader, which needs to read these Tags from the objects to mask the correct Gradient Map to the correct pixels on the screen.

I don’t want to do the Gradient Mapping on a per-object basis, because at some point I’ll want the objects to move between regions of different Gradients, or even be affected by more than one Gradient. If, for example, half of the body of a character is in shadow and the other half is lit.

I also don’t want to use the Layers in the project, since they’ll be used for gameplay purposes.

I think I have most of it figured out, but the tagging part is the one I can’t wrap my head around. Any insights are appreciated.