420a421 > no_frame_optimization = im.encoderinfo.get("no_frame_optimization", im.info.get("no_frame_optimization")) 443,447c444,445 < previous = im_frames[-1] < if _get_palette_bytes(im_frame) == \ < _get_palette_bytes(previous['im']): < delta = ImageChops.subtract_modulo(im_frame, < previous['im']) --- > if no_frame_optimization: > bbox = im_frame.getbbox() 449,457c447,461 < delta = ImageChops.subtract_modulo( < im_frame.convert('RGB'), previous['im'].convert('RGB')) < bbox = delta.getbbox() < if not bbox: < # This frame is identical to the previous frame < if duration: < previous['encoderinfo']['duration'] += \ < encoderinfo['duration'] < continue --- > previous = im_frames[-1] > if _get_palette_bytes(im_frame) == \ > _get_palette_bytes(previous['im']): > delta = ImageChops.subtract_modulo(im_frame, > previous['im']) > else: > delta = ImageChops.subtract_modulo( > im_frame.convert('RGB'), previous['im'].convert('RGB')) > bbox = delta.getbbox() > if not bbox: > # This frame is identical to the previous frame > if duration: > previous['encoderinfo']['duration'] += \ > encoderinfo['duration'] > continue