code: def makeOutputFileName(
      input, outputDir=None, extension=None, overWrite=False, suffix=""
  ):
      """Generates a suitable file name for writing output.
  
      Often tools will want to take a file, do some kind of transformation to it,
      and write it out again. This function determines an appropriate name for the
      output file, through one or more of the following steps:
  
      - changing the output directory
      - appending suffix before file extension
      - replacing the file extension
      - suffixing the filename with a number (``#1``, ``#2``, etc.) to avoid
        overwriting an existing file.
  
      Args:
          input: Name of input file.
          outputDir: Optionally, a new directory to write the file into.
          suffix: Optionally, a string suffix is appended to file name before
              the extension.
          extension: Optionally, a replacement for the current file extension.
          overWrite: Overwriting an existing file is permitted if true; if false
              and the proposed filename exists, a new name will be generated by
              adding an appropriate number suffix.
  
      Returns:
          str: Suitable output filename
      """
      dirName, fileName = os.path.split(input)
      fileName, ext = os.path.splitext(fileName)
      if outputDir:
          dirName = outputDir
      fileName = numberAddedRE.split(fileName)[0]
      if extension is None:
          extension = os.path.splitext(input)[1]
      output = os.path.join(dirName, fileName + suffix + extension)
      n = 1
      if not overWrite:
          while os.path.exists(output):
              output = os.path.join(
                  dirName, fileName + suffix + "#" + repr(n) + extension
              )
              n += 1
      return output
  
label_desc: Use image node_id 1 for calling a global function with example usage: makeOutputFileName(input, outputDir, extension, overWrite, suffix) and returns: output