from PIL import Image src = "squaremcp_storyboard.png" # save the generated grid image with this name out = "squaremcp_launch.gif" poster_out = "squaremcp_launch_poster.png" img = Image.open(src).convert("RGB") w, h = img.size # 2 rows x 4 columns cols, rows = 4, 2 frame_w = w // cols frame_h = h // rows frames = [] for r in range(rows): for c in range(cols): left = c * frame_w top = r * frame_h right = left + frame_w bottom = top + frame_h frame = img.crop((left, top, right, bottom)) frames.append(frame) frames[0].save(poster_out, format="PNG") frames[0].save( out, save_all=True, append_images=frames[1:], duration=1200 ) print(f"Saved {out}") print(f"Saved {poster_out}")