Add extension-frame refine and lossless anchor options.

Prefer clip anchor PNGs for handoffs, optionally run Bilateral+Flux cleanup before I2V, and save decoded last-frame anchors so sequential extensions accumulate less compression damage.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-09-04 07:55:46 -05:00
co-authored by Cursor
parent 5917d5bb37
commit f41ac7a826
14 changed files with 674 additions and 14 deletions
+22
View File
@@ -0,0 +1,22 @@
export const REFINEMENT_DENOISE_MIN = 0.1
export const REFINEMENT_DENOISE_MAX = 0.25
export const REFINEMENT_DENOISE_DEFAULT = 0.18
export function clampRefinementDenoise(raw: unknown, fallback = REFINEMENT_DENOISE_DEFAULT) {
const n = Number(raw)
if (!Number.isFinite(n)) return fallback
return Math.min(REFINEMENT_DENOISE_MAX, Math.max(REFINEMENT_DENOISE_MIN, Math.round(n * 100) / 100))
}
export function parseRefineExtensionFrame(raw: unknown, fallback = true) {
if (raw === undefined || raw === null || raw === '') return fallback
if (typeof raw === 'boolean') return raw
const value = String(raw).trim().toLowerCase()
if (value === 'true' || value === '1' || value === 'yes') return true
if (value === 'false' || value === '0' || value === 'no') return false
return fallback
}
export function parseSaveLosslessAnchor(raw: unknown, fallback = false) {
return parseRefineExtensionFrame(raw, fallback)
}