Files
ComfyUI_frontend/plan.md
2026-01-24 14:01:35 -08:00

2.7 KiB

Implementation Plan: Active Job Previews in Assets Sidebar

Goal

Expose mid-generation preview thumbnails (KSampler-style) in Assets sidebar active job cards and list items, honoring the existing preview setting (no new setting).

Scope

Frontend files:

  • src/components/sidebar/tabs/AssetsSidebarGridView.vue
  • src/components/sidebar/tabs/AssetsSidebarListView.vue
  • src/platform/assets/components/ActiveMediaAssetCard.vue
  • src/platform/assets/components/AssetsListItem.vue
  • Supporting composables/stores/utils as needed

Backend files:

  • ../ComfyUI (local backend) settings + jobs/preview metadata
  • ../cloud (cloud backend) settings defaults

Plan

  1. Investigate current preview signal paths

    • Locate where live previews are received (websocket b_preview_with_metadata).
    • Identify mapping from preview metadata to job/task (prompt_id, display_node_id).
    • Verify existing job display data includes iconImageUrl only for completed jobs.
  2. Use existing preview setting

    • Gate live previews on Comfy.Execution.PreviewMethod.
    • Treat none as disabled; default, auto, latent2rgb, taesd as enabled.
    • No new setting or backend defaults.
  3. Create a live-preview mapping store/composable

    • Subscribe to websocket preview events and capture latest preview image per prompt_id.
    • Use prompt_id from preview metadata to associate preview with running job.
    • Store latest preview URL per job, and revoke old object URLs to avoid leaks.
    • Respect the new setting: no capture/use when disabled.
  4. Extend job list items with live preview URL

    • In useJobList, read the live-preview store and add a new field (e.g., livePreviewUrl) to JobListItem.
    • Ensure only active/running jobs and when preview setting enabled receive the preview.
    • Keep iconImageUrl for completed jobs intact.
  5. Wire UI components

    • ActiveMediaAssetCard: prefer livePreviewUrl for running jobs; fallback to iconImageUrl.
    • AssetsSidebarListView: pass livePreviewUrl to AssetsListItem for active jobs.
    • AssetsListItem: allow explicit preview URL override for job rows without affecting asset rows.
  6. Backend support

    • ComfyUI: verify preview websocket metadata includes prompt_id (already present) and preview method is respected.
    • Cloud: no settings changes expected; confirm preview metadata is available in websocket.
  7. Tests

    • Add/extend unit tests for job list (useJobList) to validate preview field wiring and setting gating.
    • No settings default tests expected.
  8. Manual verification checklist

    • Start a generation; confirm active job cards/list items show live previews.
    • Toggle setting off; confirm previews disappear.
    • Completed jobs still show final preview where applicable.