前言
主贴: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并融入流程)





佬,查询管理记录脚本不能用了吗
@toam #1 后端没了,仓库还在,之前发过当时最新的管理记录db
我也分享一个自己写的吧。 https://gen.67.si
感谢大佬开源,让我有了借鉴的机会。如果我借鉴了,会挂上大佬的名字的
跟风,分享个自己魔改的
https://github.com/doudou770/flyreq-image-studio
demo:
https://image.flyreq.com/
贴图:

bd
@move132 #3 这个好
nb