logo NodeSeekbeta

「gpt-image-2调用WebUI面板」好久不见,也是迎来了 v1.3.0

前言

主贴:https://www.nodeseek.com/post-710889-1

仓库:https://github.com/Z1rconium/gpt-image-linux

欢迎 star、fork、issue 和 pr。

demo:https://gpt-image-linux.onrender.com

更新重点从基础图片生成,扩展到大型图库管理、AI 辅助工作流、云端备份,并系统性强化性能与安全边界。

1. 功能性更新

图片反推提示词

  • v1.2.0 为图库图片加入 AI 描述、提示词反推、内容分析和批量分析。
  • v1.3.0 新增独立的“图片反推”入口:用户可上传或拖入一张本地图片,由视觉模型生成可直接用于图片生成的提示词。
  • 支持中文、英文输出,可复制结果、应用到当前提示词或保存为提示词片段。
  • 上传图片仅在当前请求中处理,不会自动写入 Gallery。

AI Assistant

  • 新增提示词改写、质量检查、多版本扩展和生成参数推荐。
  • 可根据任务状态诊断失败原因,并给出可执行的处理建议。
  • 新增图片编辑规划,可根据编辑目标、原图数量和目标尺寸生成编辑方案。
  • 提供独立健康检查,方便确认模型、API 地址和密钥配置是否可用。
  • AI Assistant 与 Prompt Optimizer 复用连接配置,同时允许单独指定视觉模型。

提示词优化体验

  • 新增可拖动的“快速优化”助手。
  • 用户可以用自然语言说明修改意图,对比原始与优化后的提示词,再决定接受或放弃。
  • 优化结果不会未经确认直接覆盖现有内容。
  • 修复悬浮窗口拖动偏移和位置不稳定问题。

大型图库管理

  • 引入游标分页、深页锚点和更完整的筛选能力,支持按提示词、模型、预设、尺寸、日期和收藏状态查找图片。
  • 支持“选择当前筛选结果”,可跨页执行收藏、删除、下载、导出及 AI 分析。
  • 新增图库前后翻页、筛选状态保持、缩略图状态管理和公共图片 URL 配置。
  • 自动识别并清理孤立文件、失效缩略图和过期任务记录。
  • 改进收藏按钮、确认对话框、焦点管理、跳转主内容和屏幕阅读器语义。

导入、导出与任务管理

  • ZIP 导出升级为可追踪的后台任务,提供实时进度和失败状态。
  • 支持直接流式输出 ZIP,无需等待完整压缩包先写入磁盘。
  • ZIP 导入改为异步任务,可显示校验、导入、跳过和失败数量。
  • 生成任务历史支持过滤与 seek pagination,处理大量任务记录时更加稳定。
  • 后台任务状态持久化,服务重启后能够识别并处理未完成或中断的任务。

2. 性能更新

大型图库查询

  • 使用游标和 seek pagination 减少传统深分页产生的大量数据库扫描。
  • 引入分页锚点缓存:首次访问深层页面后,后续访问可直接从邻近锚点定位。
  • 针对 5 万至 10 万条图库记录增加专项性能基线测试。
  • 将总数、容量统计和筛选选项拆分为可选查询,避免每次翻页都执行高成本聚合。

实时状态推送

  • Gallery 和生成任务的 SSE 从“每个浏览器连接独立轮询”调整为共享轮询与订阅队列。
  • 减少并发用户较多时的重复 SQLite 查询。
  • SSE 连接使用全局租约管理,可跨多个 Granian worker 统一执行连接上限。
  • 增加连接续租、过期回收和异常指标,降低失效连接长期占用资源的风险。

导入导出和缩略图

  • ZIP 导出采用流式传输和分块处理,降低大批量导出时的内存与临时磁盘压力。
  • 对进度更新进行节流,减少频繁写库和前端刷新。
  • 缩略图生成统一为按文件读取,并增加全局 CPU 并发限制,避免多 worker 同时处理大图造成负载峰值。
  • 前端后台刷新加入错误退避和请求取消机制,页面切换时不再保留多余请求。

R2 同步

  • R2 检查和上传支持并发执行,并同步调整连接池容量。
  • 默认按批次处理图库记录,避免一次性加载完整图库和远端对象列表。
  • 小规模同步优先使用并发 HEAD 检查;大规模完整核对则采用远端列表与回退策略。
  • 保存已确认的远端同步状态,后续增量任务可减少重复比较。

3. 安全性更新

外部连接与 SSRF 防护

  • R2 端点必须使用 HTTPS,禁止在 URL 中携带用户名、密码、查询参数或 fragment。
  • 默认只允许标准 Cloudflare R2 域名;自定义兼容端点必须显式加入 allowlist。
  • 禁止使用 IP 字面量作为 R2 地址,并检查 DNS 解析结果是否指向私有、保留、回环或其他非公网地址。
  • 统一 IPv4、IPv6 和 IPv4-mapped IPv6 的地址判定,减少地址编码绕过空间。
  • 上游 API 跳转会重新执行目标地址校验,避免通过重定向绕过主机限制。

密钥与配置保护

  • 敏感配置默认要求使用 ${ENV_VAR_NAME} 引用,不再默认允许将明文密钥保存到 SQLite。
  • 配置快照不再记录环境变量中的秘密值。
  • 访问密钥、Cookie 安全属性、IP allowlist、CSRF、可信代理及外连 allowlist 等安全配置明确标记为需要重启生效,避免运行时出现部分 worker 配置不一致。
  • AI 任务诊断默认不发送原始提示词,并对 token、Authorization、Cookie、密码等敏感字段进行脱敏。

上传与压缩包安全

  • 图片反推接口实施文件大小、请求体、图片格式、像素数量和解码校验。
  • 图片采用分块读取并限制最大体积,防止超大请求持续占用内存。
  • ZIP 导入继续防御路径穿越,并新增重复路径、重复图片引用检查。
  • 对压缩包大小、解压后大小、压缩比、元数据大小、记录数量和最终写入图片总量分别设置上限。
  • 对 NDJSON 元数据逐行限量读取,避免恶意元数据一次性消耗大量内存。

并发与资源保护

  • 生成任务、SSE、缩略图、AI Assistant 和 R2 同步均设有独立并发上限。
  • AI Assistant 限制单次响应大小、图片预处理尺寸及批量分析数量。
  • 多 worker 通过 SQLite 租约协调后台任务,减少重复执行、资源超配和任务状态竞争。

效果展示(图片反推Prompt并融入流程)

Pl9kRnQmS1KaDak6XG7WC3GB5ZBFqDYD.webp
faj7sdMjfs7i2biFoUwWOBKtBYudcfJE.webp
wQMStMuxLXYTvKpIeirREHXm1cVaEbF2.webp
UnROhZvCWvNfNmtcRs6YWMaZ3BGYcyXy.webp
m9XXJimNWbYnDHsCOSohGLZJPIldvDrm.webp

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有63940位seeker

🎉欢迎新用户🎉