auto-save 2026-05-18 07:22 (~2)

This commit is contained in:
2026-05-18 07:22:23 +08:00
parent 05283aed52
commit 4653108baf
2 changed files with 36 additions and 25 deletions

View File

@@ -1,25 +1,5 @@
{ {
"entries": [ "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, "files_changed": 6,
"hash": "6c9806c", "hash": "6c9806c",
@@ -3254,6 +3234,26 @@
"type": "session-heartbeat", "type": "session-heartbeat",
"message": "Codex 会话活跃 · 最近命令codex · 分支 main · 7 项未提交变更 · 最近提交auto-save 2026-05-18 07:00 (~2)", "message": "Codex 会话活跃 · 最近命令codex · 分支 main · 7 项未提交变更 · 最近提交auto-save 2026-05-18 07:00 (~2)",
"files_changed": 7 "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
} }
] ]
} }

View File

@@ -1258,6 +1258,12 @@ SUBJECT_VIEW_LABELS: dict[str, str] = {
"action_sit": "坐姿动作", "action_sit": "坐姿动作",
"action_hold": "手持动作", "action_hold": "手持动作",
"action_use": "使用动作", "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 == "_") key = "".join(ch for ch in str(raw).strip().lower() if ch.isalnum() or ch == "_")
if key and key not in normalized: if key and key not in normalized:
normalized.append(key) 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": if kind == "living":
return [ return [
("front", "正面站立"), ("front", "正面站立"),
("back", "背面站立"),
("left", "左侧站立"),
("right", "右侧站立"),
("three_quarter_left", "左前 45° 站立"), ("three_quarter_left", "左前 45° 站立"),
("left", "左侧站立"),
("back", "背面站立"),
("right", "右侧站立"),
("three_quarter_right", "右前 45° 站立"), ("three_quarter_right", "右前 45° 站立"),
("bust_front", "肩颈半身正面近景"),
("bust_left_45", "肩颈左前 45° 近景"),
("bust_right_45", "肩颈右前 45° 近景"),
("back_neck_detail", "后颈/肩背特写"),
] ]
return [ return [
("front", "正面"), ("front", "正面"),
@@ -2616,7 +2626,7 @@ def _image_edit_call(
models_cycle = [GPT_IMAGE_MODEL] models_cycle = [GPT_IMAGE_MODEL]
model = GPT_IMAGE_MODEL model = GPT_IMAGE_MODEL
image_paths = image_path if isinstance(image_path, list) else [image_path] 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: if not image_paths:
raise RuntimeError("image edit reference image missing") raise RuntimeError("image edit reference image missing")
img_bytes_list = [_prepare_image_edit_bytes(path, max_side) for path in image_paths] 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" size: AssetSize = "source"
source_frame_indices: list[int] | None = None source_frame_indices: list[int] | None = None
views: list[str] | None = None views: list[str] | None = None
character_id: str = ""
subject_style: Literal["transparent_human", "source_actor"] = "transparent_human" subject_style: Literal["transparent_human", "source_actor"] = "transparent_human"
reconstruction_mode: Literal["same", "similar"] = "same" reconstruction_mode: Literal["same", "similar"] = "same"
prompt: str = "" prompt: str = ""