Save each Comfy run as a new clip even if the output filename repeats.
Purging desktop files let MiniMax reuse MiniMax_H3_00001_, so the next job returned the previous clip. Ignore stale events from the last job so a second generate cannot paste the first video over the new one.
This commit is contained in:
@@ -18,6 +18,7 @@ export interface JobEvent {
|
||||
queueRunning?: number
|
||||
queuePending?: number
|
||||
folderLocked?: boolean
|
||||
jobId?: string
|
||||
}
|
||||
|
||||
export interface Job {
|
||||
@@ -89,6 +90,7 @@ export function listJobs() {
|
||||
|
||||
export function jobSnapshot(job: Job) {
|
||||
return {
|
||||
jobId: job.id,
|
||||
type: 'snapshot' as const,
|
||||
status: job.status,
|
||||
message: job.message,
|
||||
@@ -108,6 +110,7 @@ export function jobSnapshot(job: Job) {
|
||||
}
|
||||
|
||||
export function emitJob(job: Job, event: JobEvent) {
|
||||
event.jobId = job.id
|
||||
if (event.message) job.message = event.message
|
||||
if (typeof event.progress === 'number') job.progress = event.progress
|
||||
if (typeof event.step === 'number') job.step = event.step
|
||||
|
||||
@@ -637,9 +637,6 @@ export async function saveClip(params: {
|
||||
const catalog = readCatalog(params.ownerKey)
|
||||
const folder = catalog.folders.find(item => item.id === params.folderId) || catalog.folders[0]
|
||||
if (!folder) throw createError({ statusCode: 400, statusMessage: 'No library folder available' })
|
||||
if (params.comfyFilename && catalog.clips.some(clip => clip.comfyFilename === params.comfyFilename)) {
|
||||
return catalog.clips.find(clip => clip.comfyFilename === params.comfyFilename) as LibraryClip
|
||||
}
|
||||
const clip: LibraryClip = {
|
||||
id: crypto.randomUUID(),
|
||||
folderId: folder.id,
|
||||
|
||||
@@ -91,6 +91,7 @@ export async function completePendingIfReady(pending: PendingJob) {
|
||||
status: 'complete' as const,
|
||||
message: pending.folderLocked ? 'Saved to the locked folder. Unlock it to view.' : 'Video ready',
|
||||
progress: 100,
|
||||
jobId: pending.jobId,
|
||||
clipId: clip.id,
|
||||
filename: pending.folderLocked ? undefined : video.filename,
|
||||
subfolder: pending.folderLocked ? undefined : video.subfolder,
|
||||
|
||||
Reference in New Issue
Block a user