Overhaul Studio controls and add image batch from one still.
Video and Image pickers, thumbwheels, aspect icons, and a Scale to MP paddle; extra prompts default to batch so each run starts from the original image. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -47,6 +47,7 @@ export interface StudioJobPayload {
|
||||
shotLoraStacks?: import('~/utils/loras').LoraStackItem[][]
|
||||
negative?: string
|
||||
passes?: { prompt: string }[]
|
||||
passMode?: 'batch' | 'chain'
|
||||
referenceStillId?: string
|
||||
referenceStillFilename?: string
|
||||
scaleToTotalPixels?: boolean
|
||||
@@ -781,7 +782,9 @@ async function startStudioEditJob(item: StudioJob) {
|
||||
chainIndex: 0,
|
||||
chainStep: 1,
|
||||
chainTotal: 1 + ((mode === 'edit' || mode === 'compose') ? (payload.passes?.length || 0) : 0),
|
||||
chainLabel: (mode === 'edit' || mode === 'compose') && payload.passes?.length ? 'Pass 1' : undefined,
|
||||
chainLabel: (mode === 'edit' || mode === 'compose') && payload.passes?.length
|
||||
? (payload.passMode === 'chain' ? 'Pass 1' : 'Batch 1')
|
||||
: undefined,
|
||||
passes: payload.passes,
|
||||
...persistLoraFields(payload.loraStack || payload.loraName)
|
||||
}
|
||||
@@ -796,6 +799,7 @@ async function startStudioEditJob(item: StudioJob) {
|
||||
mask,
|
||||
prompt: payload.prompt,
|
||||
passes: payload.passes || [],
|
||||
passMode: payload.passMode === 'chain' ? 'chain' : 'batch',
|
||||
negative: payload.negative || '',
|
||||
steps: payload.steps,
|
||||
seed: live.library?.seed || payload.seed,
|
||||
@@ -804,7 +808,7 @@ async function startStudioEditJob(item: StudioJob) {
|
||||
snofsClip: payload.snofsClip ?? 0,
|
||||
consistencyModel: payload.consistencyModel ?? (mode === 'generate' || payload.engine === 'krea' ? 0 : 0.7),
|
||||
consistencyClip: payload.consistencyClip ?? (mode === 'generate' || payload.engine === 'krea' ? 0 : 0.7),
|
||||
megapixels: payload.scaleMegapixels ?? 1,
|
||||
megapixels: payload.scaleToTotalPixels === false ? 0 : (payload.scaleMegapixels ?? 1),
|
||||
strength: payload.refineStrength,
|
||||
aspect: payload.aspect || 'auto',
|
||||
width: payload.width,
|
||||
@@ -848,7 +852,7 @@ async function startStudioEditJob(item: StudioJob) {
|
||||
chainIndex: 0,
|
||||
chainStep: 1,
|
||||
chainTotal: 1 + passes.length,
|
||||
chainLabel: passes.length ? 'Pass 1' : undefined,
|
||||
chainLabel: passes.length ? (payload.passMode === 'chain' ? 'Pass 1' : 'Batch 1') : undefined,
|
||||
passes,
|
||||
...persistLoraFields(payload.loraStack || payload.loraName)
|
||||
}
|
||||
@@ -860,6 +864,7 @@ async function startStudioEditJob(item: StudioJob) {
|
||||
reference,
|
||||
prompt: payload.prompt,
|
||||
passes,
|
||||
passMode: payload.passMode === 'chain' ? 'chain' : 'batch',
|
||||
negative: payload.negative || '',
|
||||
steps: payload.steps,
|
||||
seed: live.library?.seed || payload.seed,
|
||||
|
||||
Reference in New Issue
Block a user