corrections as specified in PR conversation

This commit is contained in:
resonantsky
2026-03-23 16:19:33 +02:00
parent 312d909739
commit 0ee33ea60e
2 changed files with 19 additions and 82 deletions
+7 -18
View File
@@ -11,24 +11,13 @@ from scripts.rocm import rocm_profiles # pylint: disable=no-name-in-module
def _check_rocm() -> bool:
try:
from modules import shared
if getattr(shared.cmd_opts, 'use_rocm', False):
return True
except Exception:
pass
try:
if installer.torch_info.get('type') == 'rocm':
return True
except Exception:
pass
try:
import torch
if hasattr(torch.version, 'hip') and torch.version.hip is not None:
return True
except Exception:
pass
return False
from modules import shared
if getattr(shared.cmd_opts, 'use_rocm', False):
return True
if installer.torch_info.get('type') == 'rocm':
return True
import torch # pylint: disable=import-outside-toplevel
return hasattr(torch.version, 'hip') and torch.version.hip is not None
is_rocm = _check_rocm()
+12 -64
View File
@@ -13,38 +13,35 @@ class Script(scripts_manager.Script):
return False
def ui(self, _is_img2img):
from scripts.rocm import rocm_mgr, rocm_vars # pylint: disable=no-name-in-module
if not shared.cmd_opts.use_rocm and not installer.torch_info.get('type') == 'rocm': # skip ui creation if not rocm
with gr.Accordion('ROCm: Advanced Config', open=False, elem_id='rocm_config'):
gr.HTML("<p><b>ROCm is not installed.</b> This section is disabled.</p>")
return []
from scripts.rocm import rocm_mgr, rocm_vars # pylint: disable=no-name-in-module
config = rocm_mgr.load_config()
var_names = []
components = []
def _make_component(name, meta, cfg):
val = cfg.get(name, meta["default"])
if meta["widget"] == "checkbox":
widget = meta["widget"]
if widget == "checkbox":
dtype_tag = meta.get("dtype")
label = f"[{dtype_tag}] {meta['desc']}" if dtype_tag else meta["desc"]
return gr.Checkbox(label=label, value=(val == "1"), elem_id=f"rocm_var_{name.lower()}")
elif meta["widget"] == "dropdown":
if widget == "dropdown":
choices = rocm_mgr._dropdown_choices(meta["options"])
display = rocm_mgr._dropdown_display(val, meta["options"])
return gr.Dropdown(label=meta["desc"], choices=choices, value=display, elem_id=f"rocm_var_{name.lower()}")
else: # textbox
return gr.Textbox(label=meta["desc"], value=rocm_mgr._expand_venv(val), lines=1)
return gr.Textbox(label=meta["desc"], value=rocm_mgr._expand_venv(val), lines=1)
def _info_html():
d = rocm_mgr.info()
ts = "<style>#rocm_info_table table{width:100%;border-collapse:collapse;font-size:12px} #rocm_info_table td,#rocm_info_table th{padding:2px 8px;border-bottom:1px solid var(--sd-panel-border-color)} #rocm_info_table th{text-align:left;color:var(--sd-muted-color);font-weight:normal} #rocm_info_table td:first-child{color:var(--sd-muted-color);width:38%}</style>"
rows = []
def section(title):
rows.append(f"<tr><th colspan='2' style='padding-top:6px;color:var(--highlight-color)'>{title}</th></tr>")
rows.append(f"<tr><th colspan='2' style='padding-top:6px;text-align:left;color:var(--sd-main-accent-color)'>{title}</th></tr>")
def row(k, v):
rows.append(f"<tr><td>{k}</td><td>{v}</td></tr>")
rows.append(f"<tr><td style='color:var(--sd-muted-color);width:38%;padding:2px 8px;border-bottom:1px solid var(--sd-panel-border-color)'>{k}</td><td style='padding:2px 8px;border-bottom:1px solid var(--sd-panel-border-color)'>{v}</td></tr>")
section("ROCm / HIP")
for k, v in d.get("rocm", {}).items():
row(k, v)
@@ -59,66 +56,17 @@ class Script(scripts_manager.Script):
row("path", udb.get("path", ""))
for fname, finfo in udb.get("files", {}).items():
row(fname, finfo)
return ts + f"<table>{''.join(rows)}</table>"
return f"<table style='width:100%;border-collapse:collapse'>{''.join(rows)}</table>"
with gr.Accordion('ROCm: Advanced Config', open=False, elem_id='rocm_config'):
gr.HTML("""<style>
#rocm_btn_apply button { background: var(--button-primary-background-fill) !important; color: var(--button-primary-text-color) !important; border-color: var(--button-primary-border-color) !important; }
#rocm_btn_apply button:hover { background: var(--button-primary-background-fill-hover) !important; border-color: var(--button-primary-border-color) !important; }
#rocm_btn_delete button { color: var(--color-error) !important; border-color: var(--color-error) !important; background: transparent !important; }
#rocm_btn_delete button:hover { background: color-mix(in srgb, var(--color-error) 12%, transparent) !important; }
/* Strip all block/group backgrounds and borders inside rocm_config */
#rocm_config .block,
#rocm_config .form,
#rocm_config .gradio-group {
background: transparent !important;
box-shadow: none !important;
border: none !important;
padding: 0 !important;
margin: 0 !important;
gap: 0 !important;
}
#rocm_config fieldset { border: none !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; background: transparent !important; }
/* No horizontal overflow on the container */
#rocm_config { overflow-x: hidden !important; }
/* Smaller text for dense solver checkbox lists */
#rocm_config .gradio-checkbox label { font-size: 11px !important; line-height: 1.4 !important; }
/* CSS-only tooltips — script tags are sanitized by Gradio */
#rocm_btn_info, #rocm_btn_apply, #rocm_btn_reset, #rocm_btn_clear, #rocm_btn_delete,
#rocm_btn_rdna2, #rocm_btn_rdna3, #rocm_btn_rdna4 { position: relative !important; overflow: visible !important; }
#rocm_btn_info::after { content: "Reload DB and device version info"; }
#rocm_btn_apply::after { content: "Save and apply current settings to runtime"; }
#rocm_btn_reset::after { content: "Reset all settings to built-in defaults"; }
#rocm_btn_clear::after { content: "Remove all MIOpen/HIP vars from runtime env"; }
#rocm_btn_delete::after { content: "Delete saved config + wipe MIOpen user DB cache"; }
#rocm_btn_rdna2::after { content: "Apply RDNA2 (RX 6000 series) solver profile"; }
#rocm_btn_rdna3::after { content: "Apply RDNA3 (RX 7000 series) solver profile"; }
#rocm_btn_rdna4::after { content: "Apply RDNA4 (RX 9000 series) solver profile"; }
#rocm_btn_info::after, #rocm_btn_apply::after, #rocm_btn_reset::after,
#rocm_btn_clear::after, #rocm_btn_delete::after,
#rocm_btn_rdna2::after, #rocm_btn_rdna3::after, #rocm_btn_rdna4::after {
display: block; position: absolute; top: calc(100% + 4px); left: 0;
background: var(--background-fill-secondary, #2a2a2a);
color: var(--body-text-color, #ddd);
border: 1px solid var(--border-color-primary, #555);
padding: 3px 8px; border-radius: 4px; font-size: 11px;
white-space: nowrap; pointer-events: none;
opacity: 0; transition: opacity 0.15s; z-index: 999;
}
#rocm_btn_info:hover::after, #rocm_btn_apply:hover::after, #rocm_btn_reset:hover::after,
#rocm_btn_clear:hover::after, #rocm_btn_delete:hover::after,
#rocm_btn_rdna2:hover::after, #rocm_btn_rdna3:hover::after, #rocm_btn_rdna4:hover::after { opacity: 1; }
</style>""")
with gr.Row():
gr.HTML("<p>Advanced configuration for ROCm users.</p><br><p>Set your database and solver selections based on GPU profile or individually.</p><br><p>Enable cuDNN in Backend Settings to activate MIOpen.</p>")
with gr.Row():
btn_info = gr.Button("Refresh Info", variant="primary", elem_id="rocm_btn_info", size="sm")
btn_apply = gr.Button("Apply", elem_id="rocm_btn_apply", size="sm")
btn_apply = gr.Button("Apply", variant="primary", elem_id="rocm_btn_apply", size="sm")
btn_reset = gr.Button("Defaults", elem_id="rocm_btn_reset", size="sm")
btn_clear = gr.Button("Clear vEnv", elem_id="rocm_btn_clear", size="sm")
btn_delete = gr.Button("Delete UserDb", elem_id="rocm_btn_delete", size="sm")
btn_clear = gr.Button("Clear Run Vars", elem_id="rocm_btn_clear", size="sm")
btn_delete = gr.Button("Delete UserDb", variant="stop", elem_id="rocm_btn_delete", size="sm")
with gr.Row():
btn_rdna2 = gr.Button("RDNA2 (RX 6000)", elem_id="rocm_btn_rdna2")
btn_rdna3 = gr.Button("RDNA3 (RX 7000)", elem_id="rocm_btn_rdna3")