Keep last-frame continuity when character stills are attached.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-30 08:21:57 -05:00
co-authored by Cursor
parent 5d828afbd7
commit 0fa64ea765
10 changed files with 29 additions and 51 deletions
+4 -4
View File
@@ -11,13 +11,13 @@ export function identityBoilerplate(extraRefs: number | number[] = 0) {
const secondary = extras.length === 0
? ''
: extras.length === 1
? ` <Picture ${extras[0]}> is another view of that same person for identity only, not a second character.`
: ` ${extras.map(n => `<Picture ${n}>`).join(' and ')} are extra views of that same person for identity only, not additional characters.`
return `<Picture 1> is the identity lock for a single main subject: exact face, hair, body, and clothing.${secondary} Do not spawn extra people from reference stills. If this subject leaves the frame, they must return as the same person from <Picture 1>.`
? ` <Picture ${extras[0]}> is that same person for face, hair, and body only — not a second character and not a wardrobe change.`
: ` ${extras.map(n => `<Picture ${n}>`).join(' and ')} are extra views of that same person for face, hair, and body only — not additional characters and not a wardrobe change.`
return `<Picture 1> is the current frame: keep this pose, clothes, place, and who is in shot. Do not reset the outfit to an earlier still.${secondary} Do not spawn extra people from reference stills. If this subject leaves the frame, they return as the person from the extra stills, wearing whatever Picture 1 already shows.`
}
export function looksLikeIdentityPrompt(text: string) {
return /^<Picture 1> is the (identity lock|primary identity anchor|exact facial identity)/i.test(String(text || '').trim())
return /^<Picture 1> is the (current frame|identity lock|primary identity anchor|exact facial identity)/i.test(String(text || '').trim())
}
export function buildIdentityPrompt(actionPrompt: string, extraRefs: number | number[] = 0) {
+1 -1
View File
@@ -26,7 +26,7 @@ export const IMAGE_V2_STRENGTH_MIN = 0
export const IMAGE_V2_STRENGTH_MAX = 2
export const IMAGE_V2_STRENGTH_STEP = 0.05
export const IMAGE_V2_SNOFS_LORA = 'klein_snofs_v1_4.safetensors'
export const IMAGE_V2_SNOFS_LORA = 'xaigen-klein_snofs_v1_4.safetensors'
export const IMAGE_V2_CONSISTENCY_LORA = 'Flux2-Klein-9B-consistency-V2.safetensors'
export const IMAGE_V2_DENOISE_DEFAULT = 0.35
export const IMAGE_V2_DENOISE_MIN = 0.15