Show Flux and Krea as Image v2 engine cards, and run Krea on edit, compose, and refine.

Krea image-to-image uses encode plus denoise graphs, not Klein reference latents, and still fails closed if the Krea models are missing.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-29 07:29:31 -05:00
co-authored by Cursor
parent ab5477c999
commit 5fe91e6bae
12 changed files with 608 additions and 119 deletions
+11 -8
View File
@@ -12,6 +12,8 @@ import {
IMAGE_V2_TURBO_CFG,
IMAGE_V2_TURBO_STEPS,
IMAGE_V2_KREA_CFG,
IMAGE_V2_KREA_COMPOSE_DENOISE,
IMAGE_V2_KREA_EDIT_DENOISE,
IMAGE_V2_KREA_STEPS,
IMAGE_V2_DENOISE_DEFAULT,
clampImageV2Denoise,
@@ -180,13 +182,7 @@ export default defineEventHandler(async (event) => {
const hideInput = parseBool(fields.hideInput)
const hideThumbnail = parseBool(fields.hideThumbnail)
const requestedEngine = parseImageV2Engine(fields.engine, 'flux')
if (requestedEngine === 'krea' && mode !== 'generate') {
throw createError({
statusCode: 400,
statusMessage: 'Krea is available on Generate first.'
})
}
const engine = mode === 'generate' ? requestedEngine : 'flux'
const engine = requestedEngine
const turbo = parseBool(fields.turbo)
const steps = engine === 'krea'
? clampImageSteps(fields.steps, IMAGE_V2_KREA_STEPS)
@@ -207,7 +203,14 @@ export default defineEventHandler(async (event) => {
const v2Task = (
mode === 'generate' ? 't2i' : mode === 'refine' ? 'refine' : mode === 'edit' ? 'scene' : task
) as ImageV2Task
const refineStrength = mode === 'refine' ? clampImageV2Denoise(fields.strength, IMAGE_V2_DENOISE_DEFAULT) : undefined
const refineStrength = mode === 'generate'
? undefined
: engine === 'krea' || mode === 'refine'
? clampImageV2Denoise(
fields.strength,
mode === 'compose' ? IMAGE_V2_KREA_COMPOSE_DENOISE : mode === 'edit' ? IMAGE_V2_KREA_EDIT_DENOISE : IMAGE_V2_DENOISE_DEFAULT
)
: undefined
const generateConsistencyModel = clampImageV2Strength(
fields.consistency_model,
mode === 'generate' || engine === 'krea' ? 0 : IMAGE_V2_CONSISTENCY_MODEL