Skip to content

fix(GPTImageGen): 修复 Edit 模式多图输入时 JSON 数组字符串无法解析的问题#315

Merged
lioensky merged 1 commit into
lioensky:mainfrom
infinite-vector:fix/gptimagegen-multiimage-array-compat
May 8, 2026
Merged

fix(GPTImageGen): 修复 Edit 模式多图输入时 JSON 数组字符串无法解析的问题#315
lioensky merged 1 commit into
lioensky:mainfrom
infinite-vector:fix/gptimagegen-multiimage-array-compat

Conversation

@infinite-vector
Copy link
Copy Markdown
Contributor

问题

通过 VCP 工具调用 GPTEditImage 传入多张图片时,image 参数以 JSON 数组
字符串的形式传入(如 '["path1.png", "path2.jpg"]'),而非 JS 原生数组。

这是因为 VCP 的「始」「末」参数解析器将所有参数值视为字符串。

导致 Array.isArray(imageInput) 返回 false,整个 JSON 数组字符串(包括
方括号和引号)被当作单个文件路径处理——该路径显然不存在,报错。

此外在 Windows 环境下,文件路径中的反斜杠 \ 不是合法的 JSON 转义序列,
直接 JSON.parse() 也会失败。

修复方案

  • const imageInput 改为 let imageInput,允许重新赋值
  • 新增自动检测逻辑:若 imageInput 是以 [ 开头的字符串,则:
    1. 先将反斜杠 \ 预处理为 \\(兼容 Windows 路径)
    2. 尝试 JSON.parse 解析为数组
    3. 成功则替换 imageInput 为解析后的数组
    4. 失败则静默回退为单路径处理(无破坏性变更)

改动范围

  • Plugin/GPTImageGen/GPTImageGen.js:改动 1 个关键字 + 新增 10 行兼容代码
  • README.md:GPTEditImage 文档补充多图数组格式说明和调用示例

测试情况

  • 单图输入(字符串路径):✅ 行为不变
  • 多图输入(含 Windows 路径的 JSON 数组字符串):✅ 正确解析
  • 多图输入(含 URL 的 JSON 数组字符串):✅ 正确解析

@lioensky lioensky merged commit 7d95662 into lioensky:main May 8, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants