mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2024-11-27 06:40:10 +08:00
Merge pull request #12689 from AUTOMATIC1111/patch-config-status
Patch config status handle corrupted files
This commit is contained in:
commit
f65d0dc081
@ -8,14 +8,12 @@ import time
|
||||
import tqdm
|
||||
|
||||
from datetime import datetime
|
||||
from collections import OrderedDict
|
||||
import git
|
||||
|
||||
from modules import shared, extensions, errors
|
||||
from modules.paths_internal import script_path, config_states_dir
|
||||
|
||||
|
||||
all_config_states = OrderedDict()
|
||||
all_config_states = {}
|
||||
|
||||
|
||||
def list_config_states():
|
||||
@ -28,10 +26,14 @@ def list_config_states():
|
||||
for filename in os.listdir(config_states_dir):
|
||||
if filename.endswith(".json"):
|
||||
path = os.path.join(config_states_dir, filename)
|
||||
try:
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
j = json.load(f)
|
||||
assert "created_at" in j, '"created_at" does not exist'
|
||||
j["filepath"] = path
|
||||
config_states.append(j)
|
||||
except Exception as e:
|
||||
print(f'[ERROR]: Config states {path}, {e}')
|
||||
|
||||
config_states = sorted(config_states, key=lambda cs: cs["created_at"], reverse=True)
|
||||
|
||||
|
@ -65,7 +65,7 @@ def save_config_state(name):
|
||||
filename = os.path.join(config_states_dir, f"{timestamp}_{name}.json")
|
||||
print(f"Saving backup of webui/extension state to {filename}.")
|
||||
with open(filename, "w", encoding="utf-8") as f:
|
||||
json.dump(current_config_state, f)
|
||||
json.dump(current_config_state, f, indent=4)
|
||||
config_states.list_config_states()
|
||||
new_value = next(iter(config_states.all_config_states.keys()), "Current")
|
||||
new_choices = ["Current"] + list(config_states.all_config_states.keys())
|
||||
@ -200,8 +200,7 @@ def update_config_states_table(state_name):
|
||||
created_date = time.asctime(time.gmtime(config_state["created_at"]))
|
||||
filepath = config_state.get("filepath", "<unknown>")
|
||||
|
||||
code = f"""<!-- {time.time()} -->"""
|
||||
|
||||
try:
|
||||
webui_remote = config_state["webui"]["remote"] or ""
|
||||
webui_branch = config_state["webui"]["branch"]
|
||||
webui_commit_hash = config_state["webui"]["commit_hash"] or "<unknown>"
|
||||
@ -227,11 +226,11 @@ def update_config_states_table(state_name):
|
||||
if current_webui["commit_hash"] != webui_commit_hash:
|
||||
style_commit = STYLE_PRIMARY
|
||||
|
||||
code += f"""<h2>Config Backup: {config_name}</h2>
|
||||
code = f"""<!-- {time.time()} -->
|
||||
<h2>Config Backup: {config_name}</h2>
|
||||
<div><b>Filepath:</b> {filepath}</div>
|
||||
<div><b>Created at:</b> {created_date}</div>"""
|
||||
|
||||
code += f"""<h2>WebUI State</h2>
|
||||
<div><b>Created at:</b> {created_date}</div>
|
||||
<h2>WebUI State</h2>
|
||||
<table id="config_state_webui">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -243,16 +242,22 @@ def update_config_states_table(state_name):
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><label{style_remote}>{remote}</label></td>
|
||||
<td><label{style_branch}>{webui_branch}</label></td>
|
||||
<td><label{style_commit}>{commit_link}</label></td>
|
||||
<td><label{style_commit}>{date_link}</label></td>
|
||||
<td>
|
||||
<label{style_remote}>{remote}</label>
|
||||
</td>
|
||||
<td>
|
||||
<label{style_branch}>{webui_branch}</label>
|
||||
</td>
|
||||
<td>
|
||||
<label{style_commit}>{commit_link}</label>
|
||||
</td>
|
||||
<td>
|
||||
<label{style_commit}>{date_link}</label>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
"""
|
||||
|
||||
code += """<h2>Extension State</h2>
|
||||
<h2>Extension State</h2>
|
||||
<table id="config_state_extensions">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -299,8 +304,7 @@ def update_config_states_table(state_name):
|
||||
if current_ext.commit_hash != ext_commit_hash:
|
||||
style_commit = STYLE_PRIMARY
|
||||
|
||||
code += f"""
|
||||
<tr>
|
||||
code += f""" <tr>
|
||||
<td><label{style_enabled}><input class="gr-check-radio gr-checkbox" type="checkbox" disabled="true" {'checked="checked"' if ext_enabled else ''}>{html.escape(ext_name)}</label></td>
|
||||
<td><label{style_remote}>{remote}</label></td>
|
||||
<td><label{style_branch}>{ext_branch}</label></td>
|
||||
@ -309,10 +313,16 @@ def update_config_states_table(state_name):
|
||||
</tr>
|
||||
"""
|
||||
|
||||
code += """
|
||||
</tbody>
|
||||
</table>
|
||||
"""
|
||||
code += """ </tbody>
|
||||
</table>"""
|
||||
|
||||
except Exception as e:
|
||||
print(f"[ERROR]: Config states {filepath}, {e}")
|
||||
code = f"""<!-- {time.time()} -->
|
||||
<h2>Config Backup: {config_name}</h2>
|
||||
<div><b>Filepath:</b> {filepath}</div>
|
||||
<div><b>Created at:</b> {created_date}</div>
|
||||
<h2>This file is corrupted</h2>"""
|
||||
|
||||
return code
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user