From 4653108baf09e5a20075474f58fc7a5b79ddcc8a Mon Sep 17 00:00:00 2001 From: kang Date: Mon, 18 May 2026 07:22:23 +0800 Subject: [PATCH] auto-save 2026-05-18 07:22 (~2) --- .memory/worklog.json | 40 ++++++++++++++++++++-------------------- api/main.py | 21 ++++++++++++++++----- 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/.memory/worklog.json b/.memory/worklog.json index a235186..55cf794 100644 --- a/.memory/worklog.json +++ b/.memory/worklog.json @@ -1,25 +1,5 @@ { "entries": [ - { - "files_changed": 3, - "hash": "c53d27d", - "message": "auto-save 2026-05-15 17:00 (~3)", - "ts": "2026-05-15T17:00:51+08:00", - "type": "commit" - }, - { - "files_changed": 4, - "message": "Codex 会话活跃 · 最近命令:codex · 4 项未提交变更 · 最近提交:auto-save 2026-05-15 17:00 (~3)", - "ts": "2026-05-15T09:04:48Z", - "type": "session-heartbeat" - }, - { - "files_changed": 5, - "hash": "f3230ff", - "message": "auto-save 2026-05-15 17:06 (+1, ~4)", - "ts": "2026-05-15T17:06:22+08:00", - "type": "commit" - }, { "files_changed": 6, "hash": "6c9806c", @@ -3254,6 +3234,26 @@ "type": "session-heartbeat", "message": "Codex 会话活跃 · 最近命令:codex · 分支 main · 7 项未提交变更 · 最近提交:auto-save 2026-05-18 07:00 (~2)", "files_changed": 7 + }, + { + "ts": "2026-05-18T07:06:00+08:00", + "type": "commit", + "message": "auto-save 2026-05-18 07:05 (~8)", + "hash": "5fde9f3", + "files_changed": 8 + }, + { + "ts": "2026-05-18T07:10:27+08:00", + "type": "commit", + "message": "fix: send product angle refs as image inputs", + "hash": "05283ae", + "files_changed": 2 + }, + { + "ts": "2026-05-17T23:13:45Z", + "type": "session-heartbeat", + "message": "Codex 会话活跃 · 最近命令:codex · 分支 main · 1 项未提交变更 · 最近提交:fix: send product angle refs as image inputs", + "files_changed": 1 } ] } diff --git a/api/main.py b/api/main.py index d7e985b..d34e336 100644 --- a/api/main.py +++ b/api/main.py @@ -1258,6 +1258,12 @@ SUBJECT_VIEW_LABELS: dict[str, str] = { "action_sit": "坐姿动作", "action_hold": "手持动作", "action_use": "使用动作", + "bust_front": "肩颈半身正面近景", + "bust_left_45": "肩颈左前 45° 近景", + "bust_right_45": "肩颈右前 45° 近景", + "back_neck_detail": "后颈/肩背特写", + "bust": "半身近景", + "back_detail": "背部特写", } @@ -1268,15 +1274,19 @@ def _subject_view_labels(kind: SubjectKind, requested: list[str] | None = None) key = "".join(ch for ch in str(raw).strip().lower() if ch.isalnum() or ch == "_") if key and key not in normalized: normalized.append(key) - return [(key, SUBJECT_VIEW_LABELS.get(key, key.replace("_", " "))) for key in normalized[:12]] + return [(key, SUBJECT_VIEW_LABELS.get(key, key.replace("_", " "))) for key in normalized[:10]] if kind == "living": return [ ("front", "正面站立"), - ("back", "背面站立"), - ("left", "左侧站立"), - ("right", "右侧站立"), ("three_quarter_left", "左前 45° 站立"), + ("left", "左侧站立"), + ("back", "背面站立"), + ("right", "右侧站立"), ("three_quarter_right", "右前 45° 站立"), + ("bust_front", "肩颈半身正面近景"), + ("bust_left_45", "肩颈左前 45° 近景"), + ("bust_right_45", "肩颈右前 45° 近景"), + ("back_neck_detail", "后颈/肩背特写"), ] return [ ("front", "正面"), @@ -2616,7 +2626,7 @@ def _image_edit_call( models_cycle = [GPT_IMAGE_MODEL] model = GPT_IMAGE_MODEL image_paths = image_path if isinstance(image_path, list) else [image_path] - image_paths = [path for path in image_paths if path and path.exists()][:6] + image_paths = [path for path in image_paths if path and path.exists()][:10] if not image_paths: raise RuntimeError("image edit reference image missing") img_bytes_list = [_prepare_image_edit_bytes(path, max_side) for path in image_paths] @@ -3650,6 +3660,7 @@ class GenerateSubjectAssetsReq(BaseModel): size: AssetSize = "source" source_frame_indices: list[int] | None = None views: list[str] | None = None + character_id: str = "" subject_style: Literal["transparent_human", "source_actor"] = "transparent_human" reconstruction_mode: Literal["same", "similar"] = "same" prompt: str = ""