update poses

This commit is contained in:
mike
2026-06-22 19:00:19 +02:00
parent c0d863ee09
commit 9e99c85134
6 changed files with 691 additions and 77 deletions

View File

@@ -28,6 +28,7 @@ def migrate_schema():
"ALTER TABLE person ADD COLUMN IF NOT EXISTS has_clothing BOOLEAN DEFAULT NULL",
"ALTER TABLE person ADD COLUMN IF NOT EXISTS content_type TEXT DEFAULT 'image'",
"ALTER TABLE person ADD COLUMN IF NOT EXISTS faceswap_source_video TEXT",
"ALTER TABLE person ADD COLUMN IF NOT EXISTS archived BOOLEAN DEFAULT FALSE",
]:
cur.execute(sql)
conn.commit()
@@ -39,7 +40,7 @@ def upsert_person(filename, filepath=None, name=None, group_id=None, tags=None,
embedding=None, clip_description=None, prompt=None, pose=None,
sort_order=None, group_name=None, hidden=None,
has_background=None, source_refs=None, has_clothing=None,
content_type=None, faceswap_source_video=None):
content_type=None, faceswap_source_video=None, archived=None):
conn = get_db_connection()
cur = conn.cursor()
try:
@@ -47,8 +48,8 @@ def upsert_person(filename, filepath=None, name=None, group_id=None, tags=None,
INSERT INTO person (filename, filepath, name, group_id, tags, embedding,
clip_description, prompt, pose, sort_order, group_name, hidden,
has_background, source_refs, has_clothing,
content_type, faceswap_source_video)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
content_type, faceswap_source_video, archived)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
ON CONFLICT (filename) DO UPDATE
SET filepath = COALESCE(EXCLUDED.filepath, person.filepath),
name = COALESCE(EXCLUDED.name, person.name),
@@ -65,12 +66,23 @@ def upsert_person(filename, filepath=None, name=None, group_id=None, tags=None,
source_refs = COALESCE(EXCLUDED.source_refs, person.source_refs),
has_clothing = COALESCE(EXCLUDED.has_clothing, person.has_clothing),
content_type = COALESCE(EXCLUDED.content_type, person.content_type),
faceswap_source_video = COALESCE(EXCLUDED.faceswap_source_video, person.faceswap_source_video);
faceswap_source_video = COALESCE(EXCLUDED.faceswap_source_video, person.faceswap_source_video),
archived = COALESCE(EXCLUDED.archived, person.archived);
""", (filename, filepath, name, group_id,
json.dumps(tags) if tags else None,
embedding, clip_description, prompt, pose, sort_order, group_name, hidden,
has_background, source_refs, has_clothing,
content_type, faceswap_source_video))
content_type, faceswap_source_video, archived))
conn.commit()
finally:
cur.close()
conn.close()
def set_archived(filename, archived: bool):
conn = get_db_connection()
cur = conn.cursor()
try:
cur.execute("UPDATE person SET archived = %s WHERE filename = %s", (archived, filename))
conn.commit()
finally:
cur.close()
@@ -101,15 +113,17 @@ def get_person(filename):
cur.close()
conn.close()
def list_persons():
def list_persons(include_archived=False):
conn = get_db_connection()
cur = conn.cursor()
try:
cur.execute("""
where = "" if include_archived else "WHERE archived IS NOT TRUE"
cur.execute(f"""
SELECT filename, name, group_id, clip_description,
prompt, pose, sort_order, group_name, hidden, has_background, source_refs,
has_clothing, content_type, faceswap_source_video
has_clothing, content_type, faceswap_source_video, archived
FROM person
{where}
""")
return cur.fetchall()
finally: