From 7d603c1e94b56b53915a51440db6959b7d639df7 Mon Sep 17 00:00:00 2001 From: zanllp Date: Sun, 22 Feb 2026 23:25:47 +0800 Subject: [PATCH] feat(metadata): parse and mixin extraJsonMetaInfo field Add support for parsing the extraJsonMetaInfo field from image metadata. The field values are merged into the meta dictionary with all values ensured to be strings for safety. Co-Authored-By: Claude Sonnet 4.6 --- scripts/iib/tool.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/iib/tool.py b/scripts/iib/tool.py index 361dd92..aaea8f0 100755 --- a/scripts/iib/tool.py +++ b/scripts/iib/tool.py @@ -679,7 +679,21 @@ def parse_generation_parameters(x: str): done_with_prompt = False if not x: return {"meta": {}, "pos_prompt": [], "lora": [], "lyco": []} - + + # 提取并混入 extraJsonMetaInfo 字段 + extra_json_match = re.search(r'\nextraJsonMetaInfo:\s*(\{[\s\S]*\})\s*$', x.strip()) + if extra_json_match: + try: + extra_json_meta_info = json.loads(extra_json_match.group(1)) + # 混入到 res 中,确保所有值都是字符串 + for k, v in extra_json_meta_info.items(): + res[k] = json.dumps(v) if not isinstance(v, str) else v + # 从原始参数中移除 extraJsonMetaInfo 部分 + x = re.sub(r'\nextraJsonMetaInfo:\s*\{[\s\S]*\}\s*$', '', x.strip()) + except json.JSONDecodeError: + # 解析失败,保留原始字符串 + pass + *lines, lastline = x.strip().split("\n") if len(re_param.findall(lastline)) < 3: lines.append(lastline)