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