aliensmn's picture
Mirror from https://github.com/sammykumar/ComfyUI-SwissArmyKnife
0997c23 verified

Restart Button Implementation

Overview

Added a red restart button to the ComfyUI topbar menu that allows users to restart the ComfyUI server.

Files Created/Modified

1. nodes/restart_api.py (NEW)

  • Created a new API endpoint /swissarmyknife/restart (POST)
  • Handles server restart by sending SIGTERM signal
  • Gracefully shuts down and exits the process

2. __init__.py (MODIFIED)

  • Imported and registered the restart API routes
  • The restart endpoint is now available when ComfyUI starts

3. web/js/swiss-army-knife.js (MODIFIED)

  • Added new extension comfyui_swissarmyknife.restart_button
  • Defined restart command with ID swissarmyknife.restart
  • Added command to topbar menu under "Swiss Army Knife" menu
  • Injected CSS styles to make the button red
  • Includes confirmation dialog before restarting
  • Shows toast notifications for restart status

4. web/css/restart-button.css (NEW)

  • Standalone CSS file for restart button styling (optional, styles are also injected via JS)

Features

Button Appearance

  • Red background (#dc3545) with white text
  • Bold font for prominence
  • Hover effect - darker red (#c82333)
  • Active effect - even darker red (#bd2130)
  • 🔴 emoji prefix for visual indication

User Experience

  1. User clicks "Swiss Army Knife" → "🔴 Restart ComfyUI Server" in topbar
  2. Confirmation dialog appears
  3. If confirmed, sends POST request to /swissarmyknife/restart
  4. Shows "Server Restarting" toast notification
  5. Waits 2 seconds then reloads the page
  6. ComfyUI server restarts in background

Error Handling

  • Shows error toast if restart fails
  • Falls back to alert() if toast notifications unavailable
  • Logs all events to browser console

Usage

After ComfyUI restarts with this extension:

  1. Look for "Swiss Army Knife" in the topbar menu
  2. Click to expand the menu
  3. Click "🔴 Restart ComfyUI Server"
  4. Confirm the restart
  5. Wait for server to restart and page to reload

Notes

  • Restart works by sending SIGTERM to the server process
  • Requires ComfyUI to be running under a process manager or restart script for automatic restart
  • If running manually, the server will shut down and need manual restart
  • The 2-second delay before page reload allows the server to begin shutdown