Using this layer with a GM wrapper: const GM = require('gm'); const gm = GM.subClass({ imageMagick: true }); exports.osdStamp = async (buf) => { return new Promise((resolve, reject) => { gm(buf) .fontSize(40) .drawText(10,50, 'TEST MESSAGE') .toBuffer((err, buffer) => err ? reject(err) : resolve(buffer)); }); }; Does not put text on the image -- though it does return the image (and then save it to S3)... Are the drawing functions of GraphicsMagik included in this layer?