Do not mark a waiting I2V complete when the image job finishes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-28 17:58:28 -05:00
co-authored by Cursor
parent 382bd37a3e
commit 3ed1d6aa9d
4 changed files with 69 additions and 26 deletions
+28 -1
View File
@@ -3127,6 +3127,13 @@ function applyGenerationPreset(preset: GenerationPreset) {
toast(skipped
? `Loaded “${preset.name}”. Skipped ${skipped} xAIGen-only LoRA${skipped === 1 ? '' : 's'}.`
: `Loaded “${preset.name}”.`)
console.info('[aigen preset apply]', {
kind: preset.kind,
name: preset.name,
hasFile: Boolean(file.value),
inputStillId: inputStillId.value,
hasPreview: Boolean(preview.value)
})
}
function loadGenerationPreset(id: string) {
@@ -4895,6 +4902,19 @@ async function generate() {
toast('LTX Pink Cherry is not available on this instance')
return
}
console.info('[aigen generate click]', {
hasFile: Boolean(file.value),
fileName: file.value?.name || '',
fileSize: file.value?.size || 0,
fileType: file.value?.type || '',
inputStillId: inputStillId.value,
hasPreview: Boolean(preview.value),
hasInputStill: hasInputStill.value,
mode: studioMode.value,
workflow: videoWorkflow.value,
block: videoBlockReason.value || '',
promptChars: prompt.value.trim().length
})
if (videoBlockReason.value) {
toast(videoBlockReason.value)
return
@@ -4970,6 +4990,13 @@ async function generate() {
}
const downloadName = clipFileName(clipName.value.trim() || initialPrompt.split(/[.!?\n]/)[0] || 'aigen')
const chainPlan = plannedChain.value.map(part => ({ ...part }))
console.info('[aigen generate payload]', {
keys: [...body.keys()],
hasImage: body.has('image'),
stillId: inputStillId.value,
promptChars: initialPrompt.length,
workflow: videoWorkflow.value
})
const started = await $fetch<{
jobId: string
studioJobId?: string
@@ -5142,6 +5169,7 @@ function applyEditEvent(payload: Record<string, any>, hidden: boolean, folderLoc
clearActiveJob('edit')
scheduleLibraryRefresh()
void pollComfyHealth()
void refreshStudioQueue()
return
}
@@ -5174,7 +5202,6 @@ function applyVideoEvent(payload: Record<string, any>, hidden: boolean, folderLo
const complete = payload.type === 'complete' || payload.status === 'complete'
const deferred = payload.type === 'deferred' || payload.status === 'deferred'
if (videoSettledUi) return
if (payload.stillId) return
if (payload.type === 'checkpoint' && payload.clipId) {
completedChainStep.value = Math.max(completedChainStep.value, Number(payload.chainStep || chainStep.value) || 0)