They appear to use "com.google.firebase:firebase-ml-vision-face-model:20.0.1" to detect the faces.
The actual blur appears to be done here: https://github.com/signalapp/Signal-Android/blob/514048171bf...
Not sure what "ScriptIntrinsicBlur" stands for exactly, it appears to come from the android SDK itself: import android.renderscript.RenderScript;
EDIT: https://developer.android.com/reference/kotlin/android/rende...
It's a gaussian blur filter with a radius of 25px if I understand the code correctly.
EDIT: come to think of it, you can generate random noise using a palette from the color in the blur area (say, take four or five colors and mix them).
Applying convolutional blur for anonymizing is very very risky. Because you might end up with something either invertible or nearly so.
Thanks for digging.