Specific style using shader editing nodes
For the grainy effect, well actually you could use the Cycles render engine and keep the Sampling value very low, for once you'll be glad to have grains. I don't know if it's doable in the Compositor. You can do it with an image editor (Filter &gt; Other &gt; Random Noise in Krita for example), or fake with your materials with some Noise nodes, like that:

I'm not sure it was part of your question but for the smoke itself, you can create a bezier curve, bevel it, play with the vertices Radius and Tilt values (shortcuts AltS and CtrlT):

Give it a mix between a Diffuse and Transparent node, use a Noise as factor, the Texture Coordinate UV output will allow you to follow the curve shape, use the Mapping node Scale values to stretch the noise along the good axis. In Eevee don't forget to choose Material &gt; Settings &gt; Blend Mode &gt; Alpha Blend so that the smoke is transparent: