The first thing I did when I got SD was trying out every built in node. You'll learn a few things by just looking at how Allegorithmic made them. (Use warp a lot)

When making the granite substance I wanted to have a flowing layered look. The node Fur 2 is a good starting point. The spherical warp pattern is very noticible so up the Waves Scale parameter to 1. Disorder and Rotation will allow for some non flowy granite patterns, but for now leave them untouched. Attach a levels node to raise the brightness.

Using a blur and a warp you can push out the white parts, squashing the blacks more into thin strips instead of streaky blobs.

Set the blur intensity to 1. Play with the warp to get a value you like, I used 0.03. For the levels see image:

Warp is a very, very handy tool. I use it a lot.

The resulting image still has some sharp looking lines in it. Recreate this part, only substitute the blur with a Blur HQ greyscale node. This creates two variations for the user to choose from. Finally, attach both ends to a blend node. Set the blend type to switch. You can now expose the blend opacity as a user parameter. It will default to a float parameter so you set it with a slider. If you create a simple function you can have the user param be a boolean button.

I chained another two warps to create some variance in the layred stone flow. A plasma warp and a perlin warp. The plasma warp will create smudges while the perlin warp will add some turbulence to the stone flows. 100 is a good starting distance for the plasma node. For the perlin distance a good starting value is 80. Since the plasma and perline outputs are very high in contrast only a tiny bit of warp is needed. I use a default warp value of 0.01 for both the plasma and perlin warps. Which warp you do first is up to you. You could create both variants and have a user param choose which one to use.

To create the stone facets chain another two warps. For both facet warps attach a Crystal node. It has a very good facetty stone look and since the gradients are linear each individual facet will have a different offset, adding to the random but deliberate look of the flowy granite. Todo: in depth explanation on how the warp node works.

For the first Crystal node I keep the disorder value at 0 and have a user param for the Crystal warp intensity. The Crystal warp intensity changes the contrast, which in turn determines the noisiness of the facet edges with the Warp node. The warp node intensity will determine the offset from the base flowy stone layers for each facet. With a warp of 0.0 the flowy base pattern will be noticible. At a high warp you'll only vaguely notice the flowy pattern.

For the second Crystal node I keep the Crystal warp intensity at 0 while exposing the disorder as a user param. The low Crystal warp intensity will make the second set of facets have a cleaner facet edge compared to the first set. The disorder setting will create a different crystal pattern. As with most procedural generation a small increase/decrease in disorder will create a slightly different pattern while a large disorder change will create a totally different pattern. A substantial higher disorder for the second Crystal is desired.

For the Warp node intensities, any value works. Keep one on the low end (0.1+), and the other on the high end (1.0). This will create a major facets with less noticible minor facets effect.

Finally chain it to an output node and you're done!