Stop resampling the extend start frame every hop
upload() ran fitStill (ffmpeg scale+pad) on every image except hero, including the start/handoff still. Four chained extends resampled the anchor frame four times and destroyed identity even with the hero reference and lock text intact. - upload(): only fit when the still's aspect truly differs from the job canvas (needsFit); never fit hero or start regardless. - Track handoffSource (anchor|extract) and whether the start frame was fitted; surface both in job metadata and Details. - extendSelected(): re-binding an already-selected clip on task switch must not stomp the user's overridden locks/settings back to the clip's saved values (regression introduced by the last hotfix push). - Add tests/studio2-extend-fit.test.mjs: two extends at identical width/height reach Comfy with the anchor PNG byte-identical, no ffmpeg fit. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -44,6 +44,9 @@ export function extendSelected(form, clip, xaigen = false) {
|
||||
const next = { ...form, mode: 'extend', engine: xaigen && form.engine === 'ltx' ? 'ltx' : 'minimax' }
|
||||
const target = clip?.id ? clip : null
|
||||
if (!target?.id) return next
|
||||
// Already bound to this clip: switching task must not stomp the user's overrides
|
||||
// (locks, CFG, etc.) by re-copying the clip's saved settings over them.
|
||||
if (form.startClipId === target.id) return next
|
||||
try { return bindClip(next, target, xaigen) }
|
||||
catch { return { ...next, startClipId: target.id } }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user