_create_image_links() had a hardcoded IMAGE_EXTENSIONS set that only
linked .png/.jpg/.jpeg/.webp/.bmp files into the external_images/ symlink
directory. Videos discovered by the scanner were added to the manifest
but never linked, causing ComfyUI's /view endpoint to return 404 for
every video.
Now imports MEDIA_EXTENSIONS from directory_scanner.py so images and
videos share the same allowlist — single source of truth.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- load_checkpoint() needs target_model_name, ckpt_name, use_remote_vae
positional args — was being called with just model_name
- Preset save endpoints now validate for empty request body before
JSON parsing to avoid "Expecting value" errors
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New preset system for config arrays: save/load all samplers,
schedulers, steps, CFG, models, LoRAs, VAEs, prompts, and all
other settings as reusable presets. Stored in USCG-config-section-presets.json.
Preset dropdown with Load/Save/Delete in the Config Arrays header bar.
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>
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>
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>
- Removed standalone edit button (editor accessible via dropdown menu)
- Dropdown and Clear on their own row, custom WxH inputs on a second row
- Custom resolutions file moved to benchmarks/USCG-custom-resolutions.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replaced tiny native <select> with large custom dropdown button
- 3-level nested submenu: Model Type > Orientation (Landscape/Portrait/Square) > Sizes
- Massively expanded built-in presets: SD1.5, SDXL, Illustrious/Pony, Flux, Wan/Video, HiRes/Upscale
- Custom Resolutions Editor modal for creating persistent user-defined resolutions
organized into named categories
- Custom resolutions saved to ComfyUI output/USCG-custom-resolutions.json
- Custom category always appears first in the dropdown menu
- Edit button (pencil emoji) for quick access to the custom editor
- Backend: GET/POST /configbuilder/custom_resolutions endpoints
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Root cause: Two issues prevented the landing page from showing.
1. __init__.py get_session_html endpoint returned 404 when session
didn't exist, so the iframe never received any content. Now returns
full template with empty manifest so landing page JS can display
available sessions.
2. web/dashboard.js never auto-loaded on node creation - the iframe
started empty (black box). Now auto-calls forceLoadSession after
node creation so the dashboard immediately shows either the session
grid or the landing page with session cards.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Topbar: Changed Load Session to Reload Session with refresh icon
- Settings cog: Added session picker dropdown in SESSION section
- New endpoint: GET /config_tester/list_sessions returns sessions with
metadata (name, item count, first image, modification time)
- Landing page: Shows session cards with thumbnails when no session loaded
- Click any card or use dropdown to load a session
- Landing page auto-hides when session data loads
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>