Add manual image groups to the library

This commit is contained in:
Towsty
2026-09-07 20:16:01 -05:00
parent 174d40a7dc
commit eeff12cdab
5 changed files with 164 additions and 9 deletions
+7
View File
@@ -30,6 +30,9 @@ export type LibraryStill = {
promptPre?: string
promptPost?: string
familyId?: string
manualGroupId?: string
manualGroupName?: string
manualGroupIndex?: number
parentStillId?: string
chainIndex?: number
settings?: StillGenerationSettings
@@ -289,11 +292,13 @@ export function clipFamilyKey(clip: LibraryClip) {
}
export function stillFamilyKey(still: LibraryStill) {
if (still.manualGroupId) return `still-group:${still.folderId}:${still.manualGroupId}`
if (still.familyId) return `still-family:${still.folderId}:${still.familyId}`
return `still-solo:${still.id}`
}
export function sortStillParts(a: LibraryStill, b: LibraryStill) {
if (a.manualGroupId && a.manualGroupId === b.manualGroupId) return (a.manualGroupIndex || 0) - (b.manualGroupIndex || 0)
const chainDelta = (b.chainIndex || 0) - (a.chainIndex || 0)
if (chainDelta) return chainDelta
return b.createdAt - a.createdAt
@@ -301,6 +306,7 @@ export function sortStillParts(a: LibraryStill, b: LibraryStill) {
export function chronologicalStills(parts: LibraryStill[]) {
return [...parts].sort((a, b) => {
if (a.manualGroupId && a.manualGroupId === b.manualGroupId) return (a.manualGroupIndex || 0) - (b.manualGroupIndex || 0)
const chain = (a.chainIndex || 0) - (b.chainIndex || 0)
if (chain) return chain
return a.createdAt - b.createdAt
@@ -344,6 +350,7 @@ export function collectionTitle(group: ClipGroup) {
}
export function stillCollectionTitle(group: StillGroup) {
if (group.head.manualGroupId) return group.head.manualGroupName || 'Image group'
const named = group.parts.map(part => familyBaseName(part.name || '')).find(Boolean)
return named || stillTitle(group.head)
}