import sys from PIL import Image from PIL import ImageChops from PIL import ImageEnhance import numpy as np import random, os, cv2, code, uuid

print(“Averaging and signing 💁🏻‍♀️”) files = RENDER_OUTPUT_PATHS print(“Will average the following files: ” + str(files)) average_image = None old_image = None

for file in files:

current_image = Image.open(file)

# calculate the difference between this frame and the last
diff = ImageChops.difference(current_image, old_image if old_image else current_image)
old_image = current_image
average_image = current_image

# convert to greyscale and use that as the alpha channel
gray_image = diff.convert('L')
diff.putalpha(gray_image)

average_image = Image.blend(average_image, current_image, 0.1)
average_image = Image.alpha_composite(average_image, diff)
average_image = ImageChops.lighter(average_image, diff)

# darken the image slightly to prevent it getting washed out
average_image = average_image.point(lambda p: p * 0.9)

# possibly invert colors
if random.randint(0,1) == 1:
  image = Image.fromarray(cv2.bitwise_not(np.asarray(current_image)))

# add signature font = random.choice(range(0, 7)) average_image = Image.fromarray(cv2.putText(np.asarray(average_image), random.choice(), (random.choice(range(0, average_image.size)), random.choice(range(0, average_image.size))), font, random.uniform(0.8, 3), random.choice([(255, 255, 255), (0,0,0)]), random.choice(range(1, 3)), random.choice(range(1,8))))

average_image.save(os.environ + “average_” + str(uuid.uuid1()) + “.png”)