code: def create_settings(self):
      #
      # The superclass (ImageProcessing) defines two
      # settings for image input and output:
      #
      # -  x_name: an ImageNameSubscriber which "subscribes" to all
      #    ImageNameProviders in prior modules. Modules before yours will
      #    put images into CellProfiler. The ImageNameSubscriber gives
      #    your user a list of these images which can then be used as inputs
      #    in your module.
      # -  y_name: an ImageName makes the image available to subsequent
      #    modules.
      super(ImageTemplate, self).create_settings()
  
      #
      # reST help that gets displayed when the user presses the
      # help button to the right of the edit box.
      #
      # The superclass defines some generic help test. You can add
      # module-specific help text by modifying the setting's "doc"
      # string.
      #
      self.x_name.doc = """\
  This is the image that the module operates on. You can choose any image
  that is made available by a prior module.
  
  **ImageTemplate** will do something to this image.
  """
  
      #
      # Here's a choice box - the user gets a drop-down list of what
      # can be done.
      #
      self.gradient_choice = Choice(
          text="Gradient choice:",
          # The choice takes a list of possibilities. The first one
          # is the default - the one the user will typically choose.
          choices=[
              GRADIENT_DIRECTION_X,
              GRADIENT_DIRECTION_Y,
              GRADIENT_MAGNITUDE,
          ],
          # The default value is the first choice in choices. You can
          # specify a different initial value using the value keyword.
          value=GRADIENT_MAGNITUDE,
          #
          # Here, in the documentation, we do a little trick so that
          # we use the actual text that's displayed in the documentation.
          #
          # {GRADIENT_MAGNITUDE} will get changed into "Gradient magnitude"
          # etc. Python will look in keyword arguments for format()
          # for the "GRADIENT_" names and paste them in where it sees
          # a matching {GRADIENT_...}.
          #
          doc="""\
  Choose what to calculate:
  
  -  *{GRADIENT_MAGNITUDE}*: calculate the magnitude of the gradient at
     each pixel.
  -  *{GRADIENT_DIRECTION_X}*: get the relative contribution of the
     gradient in the X direction (.5 = no contribution, 0 to .5 =
     decreasing with increasing X, .5 to 1 = increasing with increasing
     X).
  -  *{GRADIENT_DIRECTION_Y}*: get the relative contribution of the
     gradient in the Y direction.
  """.format(
              **{
                  "GRADIENT_MAGNITUDE": GRADIENT_MAGNITUDE,
                  "GRADIENT_DIRECTION_X": GRADIENT_DIRECTION_X,
                  "GRADIENT_DIRECTION_Y": GRADIENT_DIRECTION_Y,
              }
          ),
      )
  
      #
      # A binary setting displays a checkbox.
      #
      self.automatic_smoothing = Binary(
          text="Automatically choose the smoothing scale?",
          value=True,  # The default value is to choose automatically
          doc="The module will automatically choose a smoothing scale for you if you leave this checked.",
      )
  
      #
      # We do a little smoothing which supplies a scale to the gradient.
      #
      # We use a float setting so that the user can give us a number
      # for the scale. The control will turn red if the user types in
      # an invalid scale.
      #
      self.scale = Float(
          text="Scale",
          value=1,  # The default value is 1 - a short-range scale
          minval=0.1,  # We don't let the user type in really small values
          maxval=100,  # or large values
          doc="""\
  This is a scaling factor that supplies the sigma for a gaussian that's
  used to smooth the image. The gradient is calculated on the smoothed
  image, so large scales will give you long-range gradients and small
  scales will give you short-range gradients.
  """,
      )
  
file_path: CellProfiler/src/frontend/cellprofiler/modules/plugins/imagetemplate.py
imports: import numpy
  import scipy.ndimage
  from cellprofiler_core.module import ImageProcessing
  from cellprofiler_core.setting import Binary
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.text import Float
label_desc: Use image node_id 1 for calling the ImageTemplate obj's underlying member method code with example usage: obj.create_settings() without return types