Ключевым моментом здесь является аргумент «маска» Image.paste - https://pillow.readthedocs.io/en/5.3.x/reference/Image.html#PIL.Image.Image.paste - «Если дана маска, этот метод обновляет только области, указанные маской.»
Итакэто позволяет нам создать изображение круга, чтобы вставить только соответствующую часть изображения профиля.
from PIL import Image, ImageDraw
background = Image.open('input.jpg')
im = Image.open('profilepicture.png')
# Scale the image to be the size of the circle
im = im.resize((1024, 1024), Image.ANTIALIAS)
# Create the circle mask
mask = Image.new('L', im.size)
draw = ImageDraw.Draw(mask)
draw.ellipse((0, 0) + im.size, fill=255)
background.paste(im, (410, 1104), mask)
background.save('output.png')