class_docstr: Create output filenames that work nicely with multiple input files from
  multiple directories (processing multiple subjects with one command)
  
  Use information from input files, out_dir and out_fnames to generate
  correct outputs which can come from long lists of multiple or single
  inputs.
code: def set_inputs(self, *args):
      self.file_existence_check(args)
      self.input_args = list(args)
      for inp in self.input_args:
          if type(inp) == str:
              self.inputs.append(sorted(glob(inp)))
          if type(inp) == list and all(isinstance(s, str) for s in inp):
              nested = [
                  sorted(glob(i)) for i in inp if isinstance(i, str)
              ]
              self.inputs.append(
                  list(itertools.chain.from_iterable(nested))
              )
  
imports: import inspect
  import itertools
  import numpy
  import os
  from glob import glob
  from dipy.workflows.base import get_args_default
label_desc: Use image node_id 2 for calling the IOIterator obj's underlying member method code with example usage: obj.set_inputs() without return types