Wouldn’t it work in the same way?
I.e. if you have your indices, you could create a SubsetRandomSampler or alternatively a Subset 91 passing the indices for train, valid and test, and create the three datasets with separate transformations.
As long as you are loading your samples lazily, you shouldn’t run into trouble of cloning the data etc.
Let me know, if that would work for you.