Keep queued extension chains running after refresh instead of saving the first clip as final.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2531,6 +2531,33 @@ function applyVideoEvent(payload: Record<string, any>, hidden: boolean, folderLo
|
||||
}
|
||||
|
||||
if (complete && (payload.clipId || payload.filename)) {
|
||||
const total = Math.max(1, Number(payload.chainTotal || 0) || 0, Number(chainTotal.value || 0) || 0)
|
||||
const step = Math.max(1, Number(payload.chainStep || 0) || 0, Number(chainStep.value || 0) || 0)
|
||||
if (total > 1 && step < total) {
|
||||
completedChainStep.value = Math.max(completedChainStep.value, step)
|
||||
loadLibrary().catch(() => null)
|
||||
const dest = folders.value.find(folder => folder.id === folderId.value)
|
||||
const locked = dest
|
||||
? Boolean(dest.protected && !dest.unlocked)
|
||||
: (folderLocked || payload.folderLocked === true)
|
||||
if (!watchingLibrary.value && !locked && payload.clipId) {
|
||||
currentClipId.value = payload.clipId
|
||||
videoUrl.value = clipVideoUrl(payload.clipId)
|
||||
concealOutput.value = hidden || payload.hideThumbnail === true
|
||||
}
|
||||
statusMessage.value = `Shot ${step} of ${total} saved, but the remaining shots did not start.`
|
||||
progress.value = Math.min(Number(payload.progress || progress.value || 99), 99)
|
||||
toast(`Shot ${step} of ${total} saved. Remaining shots did not run — extend this clip from the library.`)
|
||||
videoBusy.value = false
|
||||
statusBusy.value = false
|
||||
stopTimer('video')
|
||||
stopListen('video')
|
||||
clearActiveJob('video')
|
||||
activeDraftId = ''
|
||||
void pollComfyHealth()
|
||||
videoSettledUi = true
|
||||
return
|
||||
}
|
||||
videoSettledUi = true
|
||||
const dest = folders.value.find(folder => folder.id === folderId.value)
|
||||
const locked = dest
|
||||
|
||||
Reference in New Issue
Block a user