How to define node affinities only for certain types of instances?

Not sure if I’m explaining this correctly. My use case is the following:
I have a Jupyterhub server running with several available types of instances, PoC example below.

Let’s assume that the Powerful DS Tenant needs a GPU-enabled node, but the rest should be using standard machines.

I’m aware that the Kubespawner has configurations for affinities, but they are applicable to all instances at the same time. However, I want to be able to schedule certain types of instances on specific nodes and schedule other types of instances on other nodes.

In short: how can I define (node) affinities on a instance type basis?