In the website sketch.metademolab.com I seem to have been able to replicate all API requests via Postman until reaching "set_mask". I used the same inputs between Postman and Google Chrome and try to keep as many variables unchanged as possible. I even got the request for set_mask from the Google Chrome inspector, and using the same png file in Postman still lead to internal server error.
I analyzed it via JsFiddle and it seems that the PNG file and/or something in the request used in Google Chrome is much bigger. Also, JSFiddle's overview window declares that the Postman version had text/html Content-Type and Chrome had image/png Content-Type (https://ibb.co/R0v2Rvm), but nothing in the actual Headers or Raw view would suggest how this difference happened.
set mask via postman, raw view in JSFiddle: https://paste.ee/p/IKMFU
set mask via browser, raw view in JSFiddle: https://paste.ee/p/8UBjO
The png file sent to the server in browser was actually a 32-bit png that was acquired by another http call. It turns out there may be a bug in Google Chrome where, when I downloaded the alleged image sent in this request, it gave me back a 24-bit png which was 4kb, but when I try to send this 4kb png in Postman it always fails. I then converted this png into a 32-bit png by myself, sent that in Postman, and it worked