As far as I’m aware, there’s no module for doing posterization directly in darktable. It can be achieved in Tone Curve and perhaps other modules, though it’s not quick.
Here are a few simple experiments with posterization -
A dedicated module for creative effects could generate a transforming curve internally and apply this to one, two or all three channels of an image. It would be a function with steps.
The user would choose the number of levels (steps) of posterization. The first might start at (0,0) or maybe it would be useful to specify an offset as above.
Each step could be a horozontal and a vertical - (a) ; or these could be angled (b). And a further user-supplied “smoothing” value could choose between no smoothing (a) and some degree of smoothing (c).
The channels to be posterized would be R, G, B, L, a, b. Others? hz etc? I see in Tone Curve you can apply to an individual Lab channel but not individual RGB I think, at least not in my experiments. Is there are reason for that? I’m at the limits of my understanding here, however I’m guessing a module can transform the input space/channels to another config for the posterization, then transform back for the next module in the pipe. Presumably posterization would be best later than Filmic. I don’t know what 5 (say) levels would mean in an unbounded space.
As with most modules, you would be able to work with masks.
I think that’s about it. Do you think this could be a useful addition to dt?