Enhance SwarmUI integration and GPU environment verification
- Updated CLI documentation to reflect the new handling of `CIVITAI_API_TOKEN`, which is now automatically passed to SwarmUI user settings during startup. - Improved the `render_access_panel` function to include additional warnings for idle-killer failures and stack errors, enhancing user feedback. - Introduced a new function `seed_swarmui_api_keys` to manage API key injection into SwarmUI, ensuring seamless integration with the Model Downloader. - Enhanced GPU environment verification logic to include fail-fast checks for critical components like CUDA, improving error handling and user notifications. - Updated tests to validate the new API key handling and access panel behavior, ensuring robustness in the integration process.
This commit is contained in:
@@ -161,8 +161,12 @@ def render_access_panel(
|
||||
notes = load_state().notes or {}
|
||||
if notes.get("idle_killer") == "failed":
|
||||
warn_bits.append(
|
||||
"idle-killer НЕ вооружён — GPU может крутиться без авто-stop"
|
||||
"idle-killer НЕ вооружён — GPU может крутиться без авто-stop → gpu-rent stop"
|
||||
)
|
||||
if notes.get("stack_vm_error"):
|
||||
warn_bits.append(f"стек VM: {str(notes['stack_vm_error'])[:140]}")
|
||||
if notes.get("gpu_env_error"):
|
||||
warn_bits.append(f"GPU-стек: {str(notes['gpu_env_error'])[:140]}")
|
||||
if notes.get("llm_error"):
|
||||
warn_bits.append(f"LLM ошибка: {str(notes['llm_error'])[:120]}")
|
||||
except Exception:
|
||||
@@ -170,8 +174,9 @@ def render_access_panel(
|
||||
|
||||
parts: list = [subtitle, Text("")]
|
||||
if warn_bits:
|
||||
parts.append(Text("⚠ ВНИМАНИЕ — биллинг / готовность", style="bold white on red"))
|
||||
for w in warn_bits:
|
||||
parts.append(Text(f"⚠ {w}", style="bold red"))
|
||||
parts.append(Text(f" • {w}", style="bold red"))
|
||||
parts.append(Text(""))
|
||||
parts.extend(
|
||||
[
|
||||
@@ -185,10 +190,11 @@ def render_access_panel(
|
||||
]
|
||||
)
|
||||
body = Group(*parts)
|
||||
border = "red" if warn_bits else "bright_blue"
|
||||
return Panel(
|
||||
body,
|
||||
title=f"[bold]{title}[/bold]",
|
||||
border_style="bright_blue",
|
||||
border_style=border,
|
||||
padding=(1, 2),
|
||||
)
|
||||
|
||||
@@ -212,6 +218,16 @@ def print_access_card(
|
||||
# Plain fallback for non-Rich loggers
|
||||
log("")
|
||||
log("══ gpu-rent · доступы ══")
|
||||
try:
|
||||
notes = load_state().notes or {}
|
||||
if notes.get("idle_killer") == "failed":
|
||||
log("⚠ idle-killer НЕ вооружён — GPU без авто-stop → gpu-rent stop")
|
||||
if notes.get("stack_vm_error"):
|
||||
log(f"⚠ стек VM: {notes['stack_vm_error']}")
|
||||
if notes.get("gpu_env_error"):
|
||||
log(f"⚠ GPU-стек: {notes['gpu_env_error']}")
|
||||
except Exception:
|
||||
pass
|
||||
for link in collect_access_links(cfg, tunneled=tunneled):
|
||||
extra = f" ({link.note})" if link.note else ""
|
||||
log(f" {link.label:14} {link.url}{extra}")
|
||||
|
||||
Reference in New Issue
Block a user