This method seems a little too general to me.  Since you're using this to configure `self.transforms` and `self.seed_fn`, why not make this explicit by using named kwargs?
```
def replace(self, seed_fn=None, transforms=None)
```
I think this would provide some protection against people setting attributes you don't expect or support (such as misspelling `seedfn` and wondering why they're not getting the results they expect from the query).