Added R (reload), Shift+0-9 (columns), Ctrl+S (save), Escape (close),
Double-click (favorite). Fixed F description (fullscreen, not auto-fit).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Preset dropdown with Load/Save buttons at the top of the upscale
settings section. Loads preset pipelines + hires prompt config and
re-renders the section. Saves current config to shared presets file.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New 'Run Settings' section in Builder UI with a job number input.
When set > 0, the generation loop skips all jobs before that number.
Useful for resuming at a specific point without relying on
auto-detection. Flows through session settings to the orchestrator.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CASE 2 auto-load now only triggers when no session is loaded yet,
not when the user is manually browsing a different session. Prevents
a running generation in one tab from hijacking the dashboard in
another tab.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Modal overlay with click-outside-to-close. JS file added to
html_generator.py load order after logic_ui.js.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Modal with scope toggle (single/all favorites), preset load/save/delete,
config summary display, progress bar with polling, and cancel support.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Purple button positioned between favorite star and revise button on
the right side. Appears on hover, calls openUpscaleModal(imageId).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Async upscale API: POST starts a background job, GET polls status,
POST cancels. Supports single image and all-favorited modes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Background thread loads models, runs full pipeline chains, saves
upscaled images, updates manifests, and sends progress events.
Supports single image and all-favorited modes with cancel support.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Stored at output/benchmarks/USCG-upscale-presets.json following the
custom resolutions pattern. Shared between Builder UI and Dashboard.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When run_upscales_at_end is enabled, inline upscale is skipped and
jobs are queued. After generation completes (before cleanup), the
deferred phase loads base images from disk, VAE-encodes them, and
runs full pipeline chains. Includes resume support, interrupt handling,
and progress reporting with phase="upscaling".
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Added to JS convertStateToConfigs() and Python generate_config()
session settings dict.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New checkbox with description and warning text. Defaults to off.
Migration ensures existing configs get the new field.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fields like vae, seed_behavior, model_type, attention_mode,
model_prompt_prefix/suffix, sampling overrides, lora_omit_triggers,
and trigger append settings are now always included with defaults
instead of being conditionally omitted. This prevents data loss when
sessions are reloaded from manifests with toggled-off sections.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the session <select> dropdown with a searchable scrollable list.
Sessions already come sorted by most recent from the backend. Added
search input that filters sessions by name in real time.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New filter buttons for Steps, CFG, and Upscale (combined mode + model
name). Applied in both the new-items filter path and the full
executePipeline filter path.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Scale to fit all columns across viewport width, center horizontally,
and position the top row just below the header bar instead of using
a hardcoded 20px offset.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
autoFitZoom() now measures header and json-container heights to
calculate actual available viewport space. Fits to both width and
height constraints and centers vertically in the remaining space.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace set() with ordered list dedup for batch encoding so prompts
generate in the order they're written in the config array
- Track cumulative upscale duration so the time metric includes both
generation and all upscale steps instead of just the last upscale
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Slider in Label Mode settings (6-16px range) controls overlay text size.
Uses CSS custom property for instant updates. Persisted to localStorage.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Labels now display strength values (e.g. "loraName:1.0:0.8") instead
of just the filename, matching the config_json format.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move torch and safetensors imports inside huggingface_vae_decode() so
CivitAI and Distribution functions still work if those packages are
missing. Update stale "Uses urllib" comments to reference the gateway.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
test_worker_connection, notify_workers_to_start, and stop_all_workers
now use gateway functions. No more inline urllib imports.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All 6 urllib call patterns (download, register, claim, submit,
heartbeat, fail) now use gateway functions from network_utils.py.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GET, POST JSON, POST multipart, and streaming download functions for
LAN-only worker coordination between ComfyUI instances.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
HF_ENDPOINTS now imported from network_utils as single source of truth.
Tensor serialization and query string construction moved to gateway.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Allowlisted endpoints with validation. Handles tensor serialization,
query string construction, and HTTP transport.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Centralizes all outbound network requests into a single module for
easier Comfy Registry security review. Starts with CivitAI API.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Keep diffusers as a dependency but without a version constraint to
avoid conflicts with other custom nodes that may need different versions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove diffusers from requirements.txt to avoid conflicts with other
custom nodes that may pin older versions. Wrap the import in remote_vae.py
with try/except so the node loads fully even without diffusers — only
Remote VAE features are unavailable, with a clear error message guiding
users on how to fix it.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Re-add AI-CONTEXT.md, ProjectStructure.md, README.md, and Roadmap.md
to git tracking. Only docs/plans/ remains gitignored as local-only.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace flat upscale configs with pipeline/steps/repeat architecture:
- Pipelines run independently from base image
- Steps chain sequentially within a pipeline
- Steps support repeat count for iterative refinement
Add "Save Pre-Upscaled Output" option to also keep the base image.
Add "Adjust Prompt During HiRes Fix" with prepend/append/replace
behaviors. HiRes-adjusted prompts are batch pre-encoded for efficiency.
Results written to manifest metadata and exposed as label overlays.
Fix fmtVal scoping error in buildLabelOverlay (was referenced outside
the upscale block where it was defined).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
computeLabelGlobalValues() now runs after loadSession() assigns data
so unique-only filtering works immediately. processNewData() calls
refreshLabelOverlays() so existing card labels update when new images
change what's unique.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New nodes now show the session landing page instead of auto-loading
"my_session". Uses _configured_from_workflow flag to distinguish fresh
nodes from saved workflows. Also fixes session cards Y-axis overflow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ProjectStructure.md, README.md, Roadmap.md, AI-CONTEXT.md, and docs/
are local development references — not needed in the repo.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Three bugs fixed:
1. Upscaled images used bare 'filename=...' instead of full '/view?filename=...&type=output&subfolder=...' URL format, causing 404s in dashboard
2. Upscaled manifest entries missing 'id' and 'rejected' fields, causing holes in dashboard grid
3. Base (non-upscaled) images were still saved to pending_batch when upscaling was enabled — now only upscaled final versions appear in output
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Skip upscale combos that require a model when none is selected.
Use effective_size=2.0 for model_only mode instead of 1.0 which
would resize the model output back to original resolution.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>