From c5ed4d7ac42fc8a9c497e4f4f028f214ed39c8a4 Mon Sep 17 00:00:00 2001 From: Ian Date: Tue, 25 Aug 2026 20:25:36 -0500 Subject: [PATCH] Ship duration control, hidden previews, job resume, and desktop file purge. The slider never left this machine, so deploy the generate UI with separate input/output hide toggles, reconnect in-progress jobs after refresh, and delete Comfy input/output files after they are saved to the library. --- .env.example | 11 +- assets/css/main.css | 36 ++++ components/ImagePickerModal.vue | 29 +-- components/SettingsModal.vue | 6 +- nuxt.config.ts | 2 +- pages/index.vue | 323 +++++++++++++++++++++++++----- scripts/comfy-host-agent.mjs | 152 +++++++++++++- server/api/generate.post.ts | 17 +- server/api/generate/active.get.ts | 33 +++ server/api/library/stills.post.ts | 2 +- server/utils/comfy.ts | 37 +++- server/utils/comfyLifecycle.ts | 50 ++++- server/utils/jobs.ts | 15 +- server/utils/library.ts | 19 +- server/utils/pending.ts | 12 +- server/utils/watch.ts | 11 +- 16 files changed, 651 insertions(+), 104 deletions(-) create mode 100644 server/api/generate/active.get.ts diff --git a/.env.example b/.env.example index 08a794b..0ed3c34 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,9 @@ PORT=3000 HOST=0.0.0.0 -COMFY_HOST=http://192.168.77.7:8188 -COMFY_PORT=8188 +# ComfyUI on the Windows desktop. 8188 is often taken (SSH / other Comfy). +# The host agent discovers the live instance (usually 8189) and proxies it on 8198. +COMFY_HOST=http://192.168.77.7:8198 +COMFY_PORT=8198 # Optional: command used when this server runs on the Comfy host COMFY_LAUNCH_CMD= # Windows host agent (scripts/comfy-host-agent.mjs) so Coolify can start Comfy remotely @@ -17,10 +19,11 @@ NUXT_OIDC_AUTHORIZE_URL=https://auth.carrgarage.com/application/o/authorize/ NUXT_OIDC_TOKEN_URL=http://192.168.77.2:9000/application/o/token/ LIBRARY_DIR=/data/library -# Private clone (xaigen): password login, isolated library, delete Comfy files after save +# Private clone (xaigen): password login, isolated library, Comfy prefix # AUTH_MODE=password # NUXT_PUBLIC_INSTANCE_NAME=xAIGen # AUTH_USERNAME= # AUTH_PASSWORD= -# PURGE_COMFY_OUTPUTS=true # COMFY_FILENAME_PREFIX=video/xAIGen +# Desktop Comfy files are deleted after a successful library save (set false to keep them) +# PURGE_COMFY_OUTPUTS=true diff --git a/assets/css/main.css b/assets/css/main.css index 705190b..485ee26 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -51,6 +51,42 @@ body { } } +.aigen-slider { + -webkit-appearance: none; + appearance: none; + height: 6px; + border-radius: 999px; + background: #27272a; + outline: none; +} + +.aigen-slider::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 16px; + height: 16px; + border-radius: 999px; + background: #fbbf24; + border: 0; + cursor: pointer; + box-shadow: 0 0 12px rgba(251, 191, 36, 0.45); +} + +.aigen-slider::-moz-range-track { + height: 6px; + border-radius: 999px; + background: #27272a; +} + +.aigen-slider::-moz-range-thumb { + width: 16px; + height: 16px; + border-radius: 999px; + background: #fbbf24; + border: 0; + cursor: pointer; +} + .sensitive-glow { animation: sensitive-pulse 2.2s ease-in-out infinite; background: diff --git a/components/ImagePickerModal.vue b/components/ImagePickerModal.vue index df94b55..5e7049b 100644 --- a/components/ImagePickerModal.vue +++ b/components/ImagePickerModal.vue @@ -25,24 +25,25 @@
-

This folder is password protected.

+

This folder is locked. You can still upload a new still to generate into it; unlock to browse saved images.

-