被 App Store 截图折腾了几次后,我开源了一个 AI 截图生成工具

做过独立 App 的开发者应该都遇到过一个问题:代码写完了,应用也能正常运行了,最后却卡在了商店截图上。

App Store 和 Google Play 对截图的尺寸、数量和展示形式都有要求。截图本身不难获取,麻烦的是后续处理。

你需要给截图加上功能说明、调整排版、适配不同设备尺寸。有多语言需求的话,还要把相同的设计重新制作几遍。

这是以前我给自己的移动端 IDE NimoteCode 准备商店素材时,就没少在这上面花时间。

用 Figma 可以做,但重复劳动不少;在线截图工具虽然方便,但很多模板和导出功能需要付费。更重要的是,每次功能更新之后,可能还得重新制作一遍。

后来我就琢磨,能不能把这件事变成一个相对固定的工作流?

于是做了 NimoteShot,一个免费开源的 App Store / Google Play 截图生成工具。

GitHub:github.com/mobiledevlo...

我想解决的不是截图,而是截图之后的工作

一开始考虑过直接让 AI 生成完整的商店宣传图。

但实际做下来,这种方案有一个比较明显的问题:生成的画面不一定忠实于原始界面。

尤其是代码编辑器、终端、复杂设置页面这类信息密度比较高的 UI,AI 很容易把文字、图标或者布局处理错。

对于应用商店截图来说,这个问题不能忽略。宣传图可以有设计感,但不能把产品原本不存在的功能展示出来。

所以 NimoteShot 采用了另一种方案:

AI 负责理解截图和生成文案,实际图片交给本地模板渲染。

整个流程分成几个阶段:

  1. 上传真实的应用截图。
  2. 使用支持视觉输入的 AI 模型分析界面。
  3. 根据识别结果生成对应的功能说明和多语言文案。
  4. 选择模板、配色及目标设备。
  5. 通过本地渲染器生成最终 PNG,并打包导出。

这样 AI 不需要重新绘制应用界面,原始截图能够保留下来,文字和排版也可以单独调整。

当然,视觉模型仍然可能误读 UI,所以生成的功能描述需要开发者自己确认。

为什么没有直接使用 AI 生图?

主要是可控性。

如果每次修改一行文案,都需要重新生成整张图片,不仅增加模型调用成本,也很难保证同一套截图的视觉一致性。

NimoteShot 把内容和渲染拆开处理。

AI 分析完成后,会保存相关结果和任务配置。开发者可以继续修改标题、顺序、模板和颜色,再通过本地渲染器重新生成,而不需要每次都重新上传截图给模型。

目前项目支持:

  • PNG、JPEG、WebP 原始截图输入
  • iPhone、iPad、Android 的横竖屏导出目标
  • 英文、中文、日文、韩文和西班牙文文案
  • 4 种视觉风格和 28 组分类配色
  • 可编辑的设计配置与批量导出
  • PNG 和 ZIP 输出

这里的多语言处理不仅仅是翻译一个标题。不同语言的文字长度差异很大,实际渲染时还需要考虑字号、换行和排版空间。

所以我更倾向于让内容和模板保持独立,避免把文字直接写死在图片里。

模型可以换,渲染流程不需要跟着换

项目最初就没有打算绑定某一家 AI 服务。

目前支持 DeepSeek、Qwen、GLM、Gemini、Claude、OpenAI 兼容接口等,也提供 Ollama 本地视觉模型和 Codex CLI 工作流。

默认使用 DeepSeek Flash。

模型的主要职责是分析真实截图、提取可用于宣传的功能信息,并生成文案及设计建议。

真正生成图片的是本地渲染器。

这种拆分还有一个好处:当模型效果不符合预期时,可以更换 Provider,而不必调整整套图片生成流程。

另外,并不是所有使用场景都必须调用 AI。如果已经有明确的文案,也可以使用 Manual design 模式直接制作截图。

隐私方面也需要说明清楚:图片渲染和导出在本地完成,但选择云端 AI 模型时,截图会发送给对应的服务商进行分析。如果对数据有严格要求,可以考虑受支持的本地视觉模型方案。

除了 Web UI,还提供了 CLI

NimoteShot 使用 Python 实现,提供本地 Web 界面和 CLI 两种使用方式。

目前支持 Linux、macOS 和 Windows,需要 Python 3.11 或更新版本。

在 Linux 或 macOS 上可以通过以下命令启动:

bash 复制代码
git clone https://github.com/mobiledevloperlab/nimoteshot.git
cd nimoteshot
./install.sh

安装完成后,会启动本地 Web 服务,默认访问地址是:

arduino 复制代码
http://127.0.0.1:8765

这个服务只监听本机回环地址,没有设计成直接暴露到公网的服务。

除了可视化界面,也可以通过 CLI 运行。例如:

css 复制代码
.venv/bin/python scripts/nimoteshot.py generate \
  --brand "My App" \
  --description "A mobile editor with SSH, Git, and terminal tools" \
  --style editorial \
  --provider qwen \
  --locales zh-CN

这里需要提前配置对应 Provider 的模型访问凭据。

每次生成任务都会保留原始截图、配置、预览和导出结果。任务配置可以再次编辑,使用相同的渲染流程重新生成图片。

这也是我保留 CLI 的原因。

对于个人开发者来说,手动生成几张截图问题不大。但如果一个应用有多个版本、多个语言,后续希望把截图制作接入发布流程,命令行和可复用配置会更有价值。

目前项目已经具备 CLI 和任务配置重渲染能力,但还没有把它包装成一个完整的 CI/CD 商店素材发布系统。

目前还有哪些不足?

项目刚开源,还有不少地方值得继续完善。

首先是模板。

目前提供了几种基础风格和配色组合,但不同类型的应用对宣传图的要求差异很大。工具类、效率类、社交类应用,不应该完全使用相同的排版逻辑。

其次是 AI 对界面的理解能力。

目前的视觉分析可以帮助提取内容,但对于信息密集、功能复杂的截图,仍然需要人工检查文案是否准确。

还有一个值得继续优化的方向是多语言排版。简单的文本替换不难,真正麻烦的是在不同语言下保持整体设计一致。

这些问题我更希望通过真实的应用案例逐步改进,而不是一开始就堆很多模板和配置选项。

最后

NimoteShot 最初只是为了解决我自己发布 NimoteCode 时遇到的问题。

做着做着发现,这其实是很多独立开发者都会重复经历的工作:截图、写文案、排版、适配尺寸、导出,然后下一个版本重新来一遍。

如果能把其中重复的部分自动化,至少可以把更多时间留给产品本身。

目前项目已经在 GitHub 开源,采用 AGPLv3+ 许可证。工具本身可以免费使用,云端模型 API 可能产生独立费用。

项目地址:

github.com/mobiledevlo...

如果你也做过 App Store 或 Google Play 截图,欢迎试试~

有实际使用中遇到的问题,可以直接提 Issue 或 PR。

我会继续维护这个项目。

相关推荐
一只爱撸猫的程序猿1 小时前
全球出货第二,却不在 AI 的默认推荐里:一份悖论解剖报告
人工智能·python·产品
高洁011 小时前
大模型检索增强生成(RAG)的技术原理与架构设计
人工智能·深度学习·机器学习·django·迁移学习
数聚天成DeepSData1 小时前
两份名录里的同名机构,主键该怎么合并
人工智能·深度学习·机器学习·数据集·deepsdata
海宇数据1 小时前
零信任架构实战:基于海宇双人婚姻评估查询构建自动化配偶签约一致性审查网关
人工智能·ai·工具分享
miofly1 小时前
GitHub 今日推荐|Edge0:让大号 MoE 模型在一台 Mac 上流式跑起来
python·开源·github
悟天特斯1 小时前
安防一体化:从“各管各的“到“全局联动“
java·大数据·网络·人工智能·物联网
l1t1 小时前
DeepSeek总结的AI 智能体应该用哪种语言搜索其记忆:SQL 还是 SPARQL?
数据库·人工智能·sql
霸道流氓气质2 小时前
AI 翻译插件:翻译记忆级联复用、术语混合检索与结构化质量门禁的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
克莱斯勒ya2 小时前
机器人官网及机器人相关设计学习视频下载
人工智能