code: def __setattr__(self, key, value):
      if key in options_builtin_fields:
          return super(Options, self).__setattr__(key, value)
  
      if self.data is not None:
          if key in self.data or key in self.data_labels:
              assert (
                  not cmd_opts.freeze_settings
              ), "changing settings is disabled"
  
              info = self.data_labels.get(key, None)
              if info.do_not_save:
                  return
  
              comp_args = info.component_args if info else None
              if (
                  isinstance(comp_args, dict)
                  and comp_args.get("visible", True) is False
              ):
                  raise RuntimeError(
                      f"not possible to set {key} because it is restricted"
                  )
  
              if (
                  cmd_opts.hide_ui_dir_config
                  and key in self.restricted_opts
              ):
                  raise RuntimeError(
                      f"not possible to set {key} because it is restricted"
                  )
  
              self.data[key] = value
              return
  
      return super(Options, self).__setattr__(key, value)
  
imports: import json
  import sys
  from dataclasses import dataclass
  import gradio
  from modules import errors
  from modules.shared_cmd_options import cmd_opts
label_desc: Use image node_id 2 for calling the Options obj's underlying member method code with example usage: obj.__setattr__(key, value) and returns: super, super