Flatten image edit controls and let CFG/steps be typed past the old slider caps.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-28 15:42:59 -05:00
co-authored by Cursor
parent f8db0d626a
commit a2f728fe2e
6 changed files with 151 additions and 100 deletions
+30
View File
@@ -21,6 +21,36 @@ export type ImagePresetSettings = {
negative?: string
}
export const IMAGE_STEPS_MIN = 1
export const IMAGE_STEPS_MAX = 50
export const IMAGE_CFG_MIN = 0
export const IMAGE_CFG_MAX = 20
export const IMAGE_CFG_STEP = 0.1
export const VIDEO_CFG_MIN = 0
export const VIDEO_CFG_MAX = 20
export const VIDEO_CFG_STEP = 0.1
export function clampImageSteps(raw: unknown, fallback = 20) {
const value = Number(raw)
if (!Number.isFinite(value)) return fallback
return Math.min(IMAGE_STEPS_MAX, Math.max(IMAGE_STEPS_MIN, Math.round(value)))
}
export function clampImageCfg(raw: unknown, fallback = 1) {
const value = Number(raw)
if (!Number.isFinite(value)) return fallback
const snapped = Math.round(value / IMAGE_CFG_STEP) * IMAGE_CFG_STEP
return Math.min(IMAGE_CFG_MAX, Math.max(IMAGE_CFG_MIN, Math.round(snapped * 10) / 10))
}
export function clampVideoCfg(raw: unknown, fallback = 1.5) {
const value = Number(raw)
if (!Number.isFinite(value)) return fallback
const snapped = Math.round(value / VIDEO_CFG_STEP) * VIDEO_CFG_STEP
return Math.min(VIDEO_CFG_MAX, Math.max(VIDEO_CFG_MIN, Math.round(snapped * 10) / 10))
}
export type GenerationPreset = {
id: string
name: string