code: def get_name_provider_choices(pipeline, last_setting, group):
      """Scan the pipeline to find name providers for the given group
  
      pipeline - pipeline to scan
      last_setting - scan the modules in order until you arrive at this setting
      group - the name of the group of providers to scan
      returns a list of tuples, each with (provider name, module name, module number)
      """
      from ..setting.text.alphanumeric.name import Name
  
      choices = []
  
      for module in pipeline.modules(False):
          module_choices = [
              (
                  other_name,
                  module.module_name,
                  module.module_num,
                  module.is_input_module(),
              )
              for other_name in module.other_providers(group)
          ]
  
          for setting in module.visible_settings():
              if setting.key() == last_setting.key():
                  return filter_duplicate_names(choices)
  
              if (
                  isinstance(setting, Name)
                  and module.enabled
                  and setting != "Do not use"
                  and last_setting.matches(setting)
              ):
                  module_choices.append(
                      (
                          setting.value,
                          module.module_name,
                          module.module_num,
                          module.is_input_module(),
                      )
                  )
  
          choices += module_choices
  
      assert False, "Setting not among visible settings in pipeline"
  
label_desc: Use image node_id 3 for calling a global function with example usage: get_name_provider_choices(pipeline, last_setting, group) and returns: filter_duplicate_names