          if not self.tk_vars.action_command.get():
              return
          category, command = self.tk_vars.action_command.get().split(",")
  
          if self.tk_vars.running_task.get():
              self.task.terminate()
          else:
              self.command = command
              args = self.prepare(category)
              self.task.execute_script(command, args)
          self.tk_vars.action_command.set("")
 
</s> remove         category, command = self.tk_vars.action_command.get().split(",")
 </s> add         category, command = self._tk_vars.action_command.get().split(",") </s> remove             self.command = command
            args = self.prepare(category)
            self.task.execute_script(command, args)
        self.tk_vars.action_command.set("")

    def generate_command(self, *args):
        """ Generate the command line arguments and output """
        if not self.tk_vars.generate_command.get():
 </s> add             self._command = command
            fs_args = self._prepare(T.cast(T.Literal["faceswap", "tools"], category))
            self._task.execute_script(command, fs_args)
        self._tk_vars.action_command.set("")

    def _generate_command(self,  # pylint:disable=unused-argument
                          *args: tuple[str, str, str]) -> None:
        """ Callback for when the Generate button is pressed. Process command line options and
        output the cli command

        Parameters
        ----------
        args:
            tuple[str, str, str]
                Tkinter variable callback args. Required but unused
        """
        if not self._tk_vars.generate_command.get(): </s> remove     def action_command(self, *args):
        """ The action to perform when the action button is pressed """
        if not self.tk_vars.action_command.get():
 </s> add         Parameters
        ----------
        args:
            tuple[str, str, str]
                Tkinter variable callback args. Required but unused
        """
        if not self._tk_vars.action_command.get(): </s> remove         command = self.command if not command else command
 </s> add         command = self._command if not command else command
        assert command is not None </s> remove         pathexecscript = os.path.join(self.pathscript, script)
 </s> add         pathexecscript = os.path.join(os.path.realpath(os.path.dirname(sys.argv[0])), script)
        if self._tk_vars.running_task.get():
            self._task.terminate()
          if not self.tk_vars.action_command.get():
              return
          category, command = self.tk_vars.action_command.get().split(",")
  
        if self._tk_vars.running_task.get():
            self._task.terminate()
        if self._tk_vars.running_task.get():
            self._task.terminate()
          else:
              self.command = command
              args = self.prepare(category)
              self.task.execute_script(command, args)
          self.tk_vars.action_command.set("")
keep keep keep keep replace replace keep keep keep keep keep
 bugfix: GUI force stdout/stderr reading to utf-8 
lib/gui/wrapper.py