Give video extensions the same pre-text, prompt, and post-text fields as the main form.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -3,6 +3,8 @@ import { join } from 'node:path'
|
||||
import { getJob, listJobs, type Job } from '~/server/utils/jobs'
|
||||
import { parsePostedLoraStack, persistLoraFields } from '~/server/utils/loras'
|
||||
import type { LoraStackItem } from '~/utils/loras'
|
||||
import { persistPromptWrappers } from '~/utils/promptParts'
|
||||
import type { QueuedExtension } from '~/server/utils/library'
|
||||
|
||||
export type ShotQueueStatus = 'idle' | 'running' | 'paused' | 'complete' | 'error'
|
||||
export type ShotSegmentStatus = 'pending' | 'running' | 'complete' | 'error'
|
||||
@@ -10,6 +12,8 @@ export type ShotSegmentStatus = 'pending' | 'running' | 'complete' | 'error'
|
||||
export interface ShotQueueSegment {
|
||||
index: number
|
||||
prompt: string
|
||||
promptPre?: string
|
||||
promptPost?: string
|
||||
duration: number
|
||||
status: ShotSegmentStatus
|
||||
clipId?: string
|
||||
@@ -187,7 +191,7 @@ export async function createShotQueue(params: {
|
||||
loraName?: string
|
||||
loraStack?: LoraStackItem[]
|
||||
initial: { prompt: string; duration: number; permanenceRefs?: import('~/utils/globalLocks').PermanenceRef[]; loraName?: string; loraStack?: LoraStackItem[] }
|
||||
extensions: { prompt: string; duration: number; permanenceRefs?: import('~/utils/globalLocks').PermanenceRef[]; loraName?: string; loraStack?: LoraStackItem[] }[]
|
||||
extensions: QueuedExtension[]
|
||||
jobId?: string
|
||||
}): Promise<ShotQueue> {
|
||||
const now = Date.now()
|
||||
@@ -231,7 +235,8 @@ export async function createShotQueue(params: {
|
||||
duration: item.duration,
|
||||
status: 'pending' as const,
|
||||
permanenceRefs: item.permanenceRefs,
|
||||
...persistLoraFields(item.loraStack || item.loraName)
|
||||
...persistLoraFields(item.loraStack || item.loraName),
|
||||
...persistPromptWrappers(item)
|
||||
}))
|
||||
]
|
||||
}
|
||||
@@ -473,10 +478,16 @@ export function listOwnersWithQueues() {
|
||||
.filter(owner => existsSync(queuesPath(owner)))
|
||||
}
|
||||
|
||||
export function remainingFromQueue(queue: ShotQueue): { prompt: string; duration: number; permanenceRefs?: import('~/utils/globalLocks').PermanenceRef[]; loraName?: string; loraStack?: LoraStackItem[] }[] {
|
||||
export function remainingFromQueue(queue: ShotQueue): QueuedExtension[] {
|
||||
return queue.segments
|
||||
.filter(segment => segment.index > 0)
|
||||
.map(segment => ({ prompt: segment.prompt, duration: segment.duration, permanenceRefs: segment.permanenceRefs, ...persistLoraFields(segment.loraStack || segment.loraName) }))
|
||||
.map(segment => ({
|
||||
prompt: segment.prompt,
|
||||
duration: segment.duration,
|
||||
permanenceRefs: segment.permanenceRefs,
|
||||
...persistLoraFields(segment.loraStack || segment.loraName),
|
||||
...persistPromptWrappers(segment)
|
||||
}))
|
||||
}
|
||||
|
||||
export function lastCompletedIndex(queue: ShotQueue) {
|
||||
@@ -491,6 +502,7 @@ export function liveSegmentPrompt(queue: ShotQueue, extensionIndex: number) {
|
||||
prompt: segment?.prompt || '',
|
||||
duration: segment?.duration || 5,
|
||||
permanenceRefs: segment?.permanenceRefs,
|
||||
...persistLoraFields(segment?.loraStack || segment?.loraName)
|
||||
...persistLoraFields(segment?.loraStack || segment?.loraName),
|
||||
...persistPromptWrappers(segment)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user