Simulator params with different shapes

I am using sample_smc to find the parameters of a black-box function using a Simulator RV. The parameters to the simulator function have different shapes, but when I try to do this is causes a numpy broadcast error.

This is a simplified example:

with pm.Model():
    a = pm.Uniform('a', 0, 1, shape=8)
    b = pm.Uniform('b', 0, 2, shape=8)
    c = pm.Uniform('c', 0, 3, shape=5)
    d = pm.Uniform('d', 0, 4, shape=5)
    simulator = pm.Simulator('simulator', f, params=[a, b, c, d], observed=obs_data)
    idata = pm.sample_smc()

and the error message is:

ValueError: Could not broadcast dimensions. Incompatible shapes were [(ScalarConstant(ScalarType(int64), data=8),), (ScalarConstant(ScalarType(int64), data=8),), (ScalarConstant(ScalarType(int64), data=5),), (ScalarConstant(ScalarType(int64), data=5),)].

Is there a canonical way to include parameters of different shapes? I know I can work around this by making them all the same shape and only using the bits I need, but is there a better way than that?

You may need to pass ndim=1 in that case, since by default we assume the Simulator is a scalar variable in the simplest case