code: def image_entropy_points(im, settings):
      landscape = im.height < im.width
      portrait = im.height > im.width
      if landscape:
          move_idx = [0, 2]
          move_max = im.size[0]
      elif portrait:
          move_idx = [1, 3]
          move_max = im.size[1]
      else:
          return []
  
      e_max = 0
      crop_current = [0, 0, settings.crop_width, settings.crop_height]
      crop_best = crop_current
      while crop_current[move_idx[1]] < move_max:
          crop = im.crop(tuple(crop_current))
          e = image_entropy(crop)
  
          if e > e_max:
              e_max = e
              crop_best = list(crop_current)
  
          crop_current[move_idx[0]] += 4
          crop_current[move_idx[1]] += 4
  
      x_mid = int(crop_best[0] + settings.crop_width / 2)
      y_mid = int(crop_best[1] + settings.crop_height / 2)
  
      return [PointOfInterest(x_mid, y_mid, size=25, weight=1.0)]
  
imports: import cv2
  import requests
  import os
  import numpy
  from PIL import ImageDraw
  from modules import paths_internal
  from pkg_resources import parse_version
label_desc: Use image node_id 5 for calling a global function with example usage: image_entropy_points(im, settings) and returns: list, list