code: def visualize_facial_landmarks(image, shape, colors=None, alpha=0.75):
      # create two copies of the input image -- one for the
      # overlay and one for the final output image
      overlay = image.copy()
      output = image.copy()
  
      # if the colors list is None, initialize it with a unique
      # color for each facial landmark region
      if colors is None:
          colors = [
              (19, 199, 109),
              (79, 76, 240),
              (230, 159, 23),
              (168, 100, 168),
              (158, 163, 32),
              (163, 38, 32),
              (180, 42, 220),
              (0, 0, 255),
          ]
  
      # loop over the facial landmark regions individually
      for i, name in enumerate(FACIAL_LANDMARKS_IDXS.keys()):
          # grab the (x, y)-coordinates associated with the
          # face landmark
          (j, k) = FACIAL_LANDMARKS_IDXS[name]
          pts = shape[j:k]
  
          # check if are supposed to draw the jawline
          if name == "jaw":
              # since the jawline is a non-enclosed facial region,
              # just draw lines between the (x, y)-coordinates
              for l in range(1, len(pts)):
                  ptA = tuple(pts[l - 1])
                  ptB = tuple(pts[l])
                  cv2.line(overlay, ptA, ptB, colors[i], 2)
  
          # otherwise, compute the convex hull of the facial
          # landmark coordinates points and display it
          else:
              hull = cv2.convexHull(pts)
              cv2.drawContours(overlay, [hull], -1, colors[i], -1)
  
      # apply the transparent overlay
      cv2.addWeighted(overlay, alpha, output, 1 - alpha, 0, output)
  
      # return the output image
      return output
  
imports: from collections import OrderedDict
  import numpy
  import cv2
label_desc: Use image node_id 3 for calling a global function with example usage: visualize_facial_landmarks(image, shape, colors, alpha) and returns: output