code: def run_settings_single(self, value, key):
      if not opts.same_type(value, opts.data_labels[key].default):
          return gr.update(visible=True), opts.dumpjson()
  
      if value is None or not opts.set(key, value):
          return gr.update(value=getattr(opts, key)), opts.dumpjson()
  
      opts.save(shared.config_filename)
  
      return get_value_for_setting(key), opts.dumpjson()
  
file_path: stable-diffusion-webui/modules/ui_settings.py
imports: import gradio
  from modules import ui_common, shared, script_callbacks, scripts, sd_models, sysinfo, timer
  from modules.call_queue import wrap_gradio_call
  from modules.shared import opts
  from modules.ui_components import FormRow
  from modules.ui_gradio_extensions import reload_javascript
  from concurrent.futures import ThreadPoolExecutor, as_completed
label_desc: Use image node_id 2 for calling the UiSettings obj's underlying member method code with example usage: obj.run_settings_single(value, key) and returns: get_value_for_setting,  opts, gr,  opts, gr,  opts