Skip to content

v3.1.0 - Another big UX release!

Choose a tag to compare

@github-actions github-actions released this 08 Aug 21:08
140ef73

What's Changed

  • 3.1.0: workflow editing, favorite/reject, video playback, push notifications UI by @cosmicbuffalo in #73

Added

Workflow editing

  • Undo/redo in the workflow menu — per tab, with rapid edits to one widget coalescing into a single step and seed changes excluded
  • Pop a widget out into a primitive node: any STRING/INT/FLOAT/BOOLEAN widget becomes a typed core primitive wired into the input it was backing
  • Connect to inputs that are still widgets: the connection menu lists widget-backed optional inputs and materializes the real slot for you
  • Select mode: multi-select nodes and groups from the ... menu, then Copy, Create group, or Delete. Copy/paste carries whole subgraphs and works across workflow tabs
  • Set/Get node support (KJNodes): compact relay cards, a connection picker for GetNode, correct labels, and an optional "collapse Set/Get nodes" that rewires relays into direct connections
  • Missing nodes are listed in a dialog, outlined in red on the affected cards, and one tap opens the Custom Nodes Manager filtered to what you need
  • Add node / add group buttons, and unfolding a node now leaves every section open
  • One-tap PreviewImage ↔ SaveImage convert, preserving a custom filename prefix

Outputs

  • Favorite and reject any output from the queue, grid, or viewer — mutually exclusive, with a Delete rejected bulk action. Favorites, rejects, and hidden marks now live server-side against file contents, so they survive reloads and renames
  • Navigable favorites filter: with Show Favorites Only on, folders holding favorites stay visible and show how many are inside
  • The filter button turns amber while a filter is narrowing the listing, so a filtered view can't be mistaken for an empty folder
  • Bulk process: pick several outputs and run a saved workflow once per image, swapped into the LoadImage node you choose
  • Use an output as an input without duplicating it on disk

Image viewer

  • Full-screen A/B comparer for Image Comparer (rgthree) outputs, plus batch output tiling
  • Swipe down to close, alongside the existing left/right swipes
  • Live preview while Follow Queue waits, so a run you're following shows itself taking shape instead of a bare spinner

Queue

  • Video playback that needs nothing extra: videos are prepared once and served from a seekable cache, so they start fast and seek cleanly — including formats a browser won't play directly. Preparation uses PyAV, which ComfyUI already ships, and runs out of process so a malformed file can't take the server down
  • True resolution on cards, read from the file itself rather than the downscaled preview
  • Stack Outputs / Tab Outputs toggle for runs with several outputs
  • Show Prompt Preview: queued and running cards start expanded and show the input images the job will run on, so you can tell what's cooking before it finishes
  • A card fits the page on desktop, capped to the height between the top and bottom bars

Elsewhere

  • Web Push notifications: enable/test buttons and notify-on-complete/error preferences for the 3.0.2 push backend
  • Install to your home screen — the app now ships a web manifest and service worker (also what iOS requires before it will deliver notifications)
  • Two-finger trackpad swipe between panels on desktop
  • Workflow favorites sync to the server, surviving a browser-data clear
  • An opt-out preference to credit this frontend in the workflows you run

Fixed

  • Queue restoration after reload: completed runs and their previews repopulate reliably, and a temporary preview failure retries instead of deleting the saved run
  • Follow Queue with nothing in history left the viewer stuck on a spinner for good
  • Video posters after a regenerated file: replacing a video under the same name now invalidates its poster, even within the same second

Notes

  • requirements.txt still declares pywebpush>=2.0 (from 3.0.2); without it web push reports itself unavailable and everything else works

Full Changelog: v3.0.7...v3.1.0