I Googled NHD-12864AZ and found https://www.newhavendisplay.com/nhd12864azfswfbw-p-477.html
It is always wise to post a link tho the actual item that you have bought. It removes all doubt and guesswork. Meaning that you get accurate replies.
The display uses a NT7108C controller which is similar to KS0108.
So I would search the U8g2 Wiki for "108" e.g.
KS0108 128X64
Controller "ks0108", Display "128x64" [Description]
U8G2_KS0108_128X64_1(rotation, d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2 [, reset]) [page buffer, size = 128 bytes]
U8G2_KS0108_128X64_2(rotation, d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2 [, reset]) [page buffer, size = 256 bytes]
U8G2_KS0108_128X64_F(rotation, d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2 [, reset]) [full framebuffer, size = 1024 bytes]
You mention AiP31108 which Google finds datasheet https://www.newhavendisplay.com/appnotes/datasheets/LCDs/AiP31108.pdf
Which is also a KS0108 style controller.
I would run all of the U8g2 examples with the U8G2_KS0108_128X64_1() constructor.
Quite honestly, most applications can afford 1024 bytes for a full 128x64 buffer. In which case you can try the U8G2_KS0108_128X64_F() constructor.
When looking for a library or constructor, it is the controller part number that is important. e.g. KS0108
The NHD is probably only relevant for weird and wonderful versions e,g. if Newhaven has non-standard hardware or is abusing the controller.
David.