Different distribution families for different channels / controls

Two ideas:

You can achieve a lot with TruncatedNormal, by playing with upper and lower, if you set lower=[-np.inf, 0], upper=[0, np.inf], you get a negative prior for the first channel and positive for the second.

Otherwise you can try to concatenate two variables and use the coords for that Deterninistic

x = pm.Normal("x")
y = pm.LogNormal("y")
beta = pm.Deterministic("beta", pm.math.stack([x, y]), dims="channel”)

Hopefully no part of the model class cares if beta is a Deterministic or pure RV