Add per-image iteration settings and steps/CFG sweeps

This commit is contained in:
Towsty
2026-09-06 17:02:42 -05:00
parent 0c6a035d04
commit 666c922f40
12 changed files with 370 additions and 59 deletions
+5 -4
View File
@@ -14,7 +14,7 @@ export const LOAD_GENERATION_PAYLOAD_KEY = 'aigen-load-generation-payload'
export type QueuedInspectKind = 'video' | 'edit' | 'music'
export type QueuedInspectSource = 'studio' | 'live'
export type QueuedShotDraft = {
export type QueuedShotDraft = import('~/utils/imageIterations').ImageIteration & {
prompt: string
duration: number
loraName?: string
@@ -48,7 +48,8 @@ export type QueuedInspectPayload = {
loraName?: string
loraStack?: LoraStackItem[]
negative?: string
passes?: { prompt: string }[]
passes?: import('~/utils/imageIterations').ImageIteration[]
passMode?: 'batch' | 'chain'
imagePipeline?: 'v1' | 'v2'
v2Mode?: string
v2Task?: string
@@ -99,7 +100,7 @@ export function queuedJobEditable(job: { source?: string; status?: string }) {
export function queuedJobShots(payload: QueuedInspectPayload, kind: string): QueuedShotDraft[] {
if (kind === 'edit') {
const first = { prompt: payload.prompt || '', duration: 0 }
const rest = (payload.passes || []).map(item => ({ prompt: item.prompt || '', duration: 0 }))
const rest = (payload.passes || []).map(item => ({ ...item, prompt: item.prompt || '', duration: 0 }))
return rest.length ? [first, ...rest] : [first]
}
if (kind === 'music') return []
@@ -126,7 +127,7 @@ export function applyQueuedShots(kind: string, shots: QueuedShotDraft[], payload
}
if (kind === 'edit') {
next.prompt = shots[0]?.prompt || ''
next.passes = shots.slice(1).map(item => ({ prompt: item.prompt || '' }))
next.passes = shots.slice(1).map(({ duration, ...item }) => ({ ...item, prompt: item.prompt || '' }))
return next
}
next.prompt = shots[0]?.prompt || ''