diff --git a/modules_forge/forge_space.py b/modules_forge/forge_space.py index 300a81c6..b403b167 100644 --- a/modules_forge/forge_space.py +++ b/modules_forge/forge_space.py @@ -116,13 +116,15 @@ class ForgeSpace: results = [] installed = os.path.exists(self.hf_path) + requirements_filename = os.path.abspath(os.path.realpath(os.path.join(self.root_path, 'requirements.txt'))) + has_requirement = os.path.exists(requirements_filename) if isinstance(self.gradio_metas, tuple): results.append(build_html(title=self.title, installed=installed, url=self.gradio_metas[1])) else: results.append(build_html(title=self.title, installed=installed, url=None)) - results.append(gr.update(interactive=not self.is_running and not installed)) + results.append(gr.update(interactive=not self.is_running and not (installed and not has_requirement), value=("Reinstall" if (installed and has_requirement) else "Install"))) results.append(gr.update(interactive=not self.is_running and installed)) results.append(gr.update(interactive=installed and not self.is_running)) results.append(gr.update(interactive=installed and self.is_running)) @@ -137,7 +139,7 @@ class ForgeSpace: repo_type=self.repo_type, revision=self.revision, local_dir=self.hf_path, - force_download=True, + force_download=False, allow_patterns=self.allow_patterns, ignore_patterns=self.ignore_patterns )