Я смог сделать это для небольшого количества изображений. Я не уверен, что это могло бы сделать 1008 * с большим количеством изображений, так как все перемешалось бы. В любом случае, дайте мне знать, если это поможет. Я использую версию подушки 7.0.0 здесь.
import os
import itertools as it
from PIL import Image
alpha = 0.5
list_of_imgs = sorted(os.listdir('images'))
for k,g in it.groupby(l,key=lambda x: x.split('_')[0]):
img = Image.open('images/{}'.format(next(g)),'r').convert('RGBA')
x,y = img.size
g_list = list(g)
for i,item in enumerate(g_list):
next_img = Image.open('images/{}'.format(item)).convert('RGBA')
if i == 0:
new_img = Image.blend(next_img,img,alpha)
else:
new_img = Image.blend(next_img,new_img,alpha)
next_img.paste(new_img, (0,0,x,y), mask=new_img)
new_img.save(f'images/{k}.png',format='png')
Результат для трех изображений (собака / щенок, горная вершина, маяк):