code: def make_caricature(
      image_url, saved_model_folder_url, to, *args, **kwargs
  ):
      image = load(image_url)
      model = SerializedModel.from_directory(saved_model_folder_url)
      layers = model.layer_names
      caricatures = caricature(
          image, model, layers, *args, verbose=False, **kwargs
      )
  
      results = {"type": "caricature"}
  
      save_input_url = join(to, "input.jpg")
      save(caricatures[0], save_input_url)
      results["input_image"] = save_input_url
  
      values_list = []
      for single_caricature, layer_name in zip(
          caricatures[1:], model.layer_names
      ):
          save_caricature_url = join(to, layer_name + ".jpg")
          save(single_caricature, save_caricature_url)
          values_list.append(
              {
                  "type": "image",
                  "url": save_caricature_url,
                  "shape": single_caricature.shape,
              }
          )
      results["values"] = values_list
  
      save(results, join(to, "results.json"))
  
      return results
  
file_path: lucid/lucid/recipes/caricature.py
imports: from os.path import join
  import json
  import numpy
  import tensorflow
  import scipy.ndimage
  import lucid.modelzoo.vision_models
  import lucid.optvis.objectives
  import lucid.optvis.param
  import lucid.optvis.render
  import lucid.optvis.transform
  from lucid.misc.io import show, load, save
  from lucid.misc.io.reading import read
  from lucid.misc.ndimage_utils import resize
  import lucid.misc.io.showing
  from lucid.modelzoo.vision_base import SerializedModel
label_desc: Use image node_id 4 for calling a global function with example usage: make_caricature(image_url, saved_model_folder_url, to) and returns: results