Meanwhile I spent some time to do a more systematic research of what the currently available models can do.
The models that produce good results without pre-processing of the source images are:
- 4x_Fatality_01_265000_G
- 4x_rebout_325k
- rebout_interp
-
4x_Lady0101_v3_340000
- 4x_Lady0101_v3_blender
- 4x_SpongeBob_235000_G
None of these produce acceptable sprite results if used on their own, but can get quite good if interpolated with one another.
Previously I relied mostly on guesswork when interpolating models (using alpha = 0.5 most of the time) but more extensive testing showed that at certain levels (in particular close to the said middle value of 0.5) the models may actually disrupt one another, negating the efficiency with which images are processed. For a quick example, here's the same sprite upscaled with Fatality (left), Rebout Interp (right) and an alpha 0.5 interpolation of the two (centre):

You can clearly see that the priest's staff is a clean diagonal line in all but the centre image where it has become jittery.
With this in mind I conducted further tests using alpha values in the range of 0.1 to 0.3, or, conversely, from 0.7 to 0.9. Note that the alpha values are completely reversible, meaning that an X/Y interpolation at 0.3 is the exact same thing as Y/X interpolation at 0.7. (For clarity in notation, when I say X/Y I mean that in net_interp.py, X is the model in the net_ESRGAN_path and Y in net_PSNR_path).
Here's the same priest sprite with Fatality/Rebout interpolated at 0.3:

Another catch is that each model has its own peculiarities:
- Fatality results are overly sharp and with noticeable ringing
- rebout_interp fuzzies edges and produces colour banding
- Lady is rather blurry
For NPC flats, I mentioned above that the Lady models seem to work good. I picked two sprites that have issues with different models to illustrate the results using alpha = 0.7.
I'd probably say that the
4x_Lady0101_v3_blender interpolations with
rebout_interp and
4x_SpongeBob_235000_G are the closest to the original image.