Я могу только догадываться, что вы либо пытались использовать несовместимые размеры изображения (они все немного отличаются друг от друга), либо вы ошиблись в режимах. В любом случае, начиная с этих 2 входных изображений и этой маски:
это то, что вам нужно:
#!/usr/bin/env python3
from PIL import Image
# Load images, discard pointless alpha channel, set appropriate modes and make common size
av1 = Image.open('avatar1.png').convert('RGB').resize((500,500))
av2 = Image.open('avatar2.png').convert('RGB').resize((500,500))
mask = Image.open('mask.png').convert('L').resize((500,500))
# Composite and save
Image.composite(av1,av2,mask).save('result.png')
Кстати, вы можете сделать то же самое в командной строке в терминале с ImageMagick:
magick avatar1.png avatar2.png mask.png -composite result.png
Ключевые слова : Python, обработка изображений, PIL, Подушка, композит, маска, маскировка, купаж.