NanmiCoder/open-image-prompts

GitHub: NanmiCoder/open-image-prompts

一个开放的本地优先视觉 prompt 存档,提供可追溯的 prompt-图像参考检索与两个可安装的 Agent Skills,帮助 AI 图像创作者高效地生成和比对优质 prompt。

Stars: 150 | Forks: 18

Open Image Prompts

English · 简体中文

# 打开 Image Prompts 一个开放、本地优先的视觉 prompt 存档,包含两个可安装的 Agent Skills: - `img-gen-taste` 将简略的描述转化为清晰的艺术指导。 - `img-gen-prompts` 检索可追溯的 prompt-图像参考,并打开本地比对画廊。 通过 coding agent 进行工作?[AGENTS.md](./AGENTS.md) 提供了精简的设置、 端口和 Skill 契约。 公共数据集包含 **14,402 条源 prompt**、**25,004 张图像**、**28,802 条翻译**、**167,515 个有效的 v2 prompt 标签**,以及包含 **185 个视觉标签**的封闭式分类体系。不包含标注模型、回填工具、提供商配置、测试运行、错误日志和其他标注过程记录。这些计数由 `npm run verify:docs` 针对 `data/public-corpus.json` 进行校验。 数据集资产通过 [GitHub Releases](https://github.com/NanmiCoder/open-image-prompts/releases) 而非 Git LFS 发布:仓库克隆保持较小体积,`scripts/fetch_dataset.py` 会下载 SQLite 归档文件(约 80 MB)以及可选的月度图像包(总计约 4.3 GB),并进行 sha256 校验。有关确切的资产列表,请参阅 `data/dataset-manifest.json`。 ## 仓库与数据集资产 本仓库跟踪应用程序代码、前端、API、Skills、分类体系以及小型数据集索引。它有意**不**将 SQLite 数据库或图像文件提交到 Git 历史记录中。运行时数据会从 GitHub Releases 下载到您的本地检出目录中: ``` open-image-prompts/ ├── db/prompts.db.gz # SQLite dataset archive from Releases, gitignored ├── images/ # extracted image packs from Releases, gitignored ├── .oip/runtime/prompts.db # expanded read-only runtime SQLite, gitignored ├── data/dataset-manifest.json ├── data/public-corpus.json └── web/dims.json ``` 如果您仅克隆仓库而不获取数据集,您将只有代码,而没有进行完整预览和检索所需的本地 prompt/图像语料库。在仓库根目录下运行: ``` npm run data:pull # downloads DB + all image packs and verifies sha256 ``` 如果只需下载 DB 并跳过多 GB 的图像包: ``` npm run data:pull:db # 或 python3 scripts/fetch_dataset.py --db-only ``` 仅 DB 模式支持搜索/检索,而当缺少本地图像时,画廊会回退到原始源图像 URL。完整的本地图像预览需要下载图像包。 当数据集更新时,Git 提交通常只会更改 `data/dataset-manifest.json`、`data/public-corpus.json` 和 `web/dims.json` 等小文件。大型 `prompts.db.gz` 和 `images-YYYY-MM.tar.gz` 文件作为 Release 资产发布。重新运行 `npm run data:pull` 即可下载新的 DB,并且仅下载 sha256 发生变化的图像包。 ## 一键启动 安装 [Git](https://git-scm.com/downloads) 和 [Node.js](https://nodejs.org/) 20.19+ 或 22.12+,然后克隆仓库: ``` git clone https://github.com/NanmiCoder/open-image-prompts.git cd open-image-prompts ``` 在 macOS 或 Linux 上启动: ``` ./start.sh ``` 在 Windows 上启动: ``` start.bat ``` 您也可以在文件资源管理器中双击 `start.bat`。启动器会在需要时安装 [uv](https://docs.astral.sh/uv/),创建兼容的 Python 环境,从 GitHub Releases 下载数据集,安装前端包,并启动这两个服务。打开终端中打印的本地 URL。要跳过多 GB 的图像包(之后画廊将回退到原始源 URL),请在启动前设置 `OIP_FETCH_SKIP_IMAGES=1`。 首次启动会将压缩的 SQLite 归档文件解压到被忽略的 `.oip/runtime/` 目录中。随后的启动将重用 Python 环境,同时刷新被锁定的依赖项。 ## 数据集资产 Git 仓库不直接存储大型数据集文件。克隆操作会为您提供应用程序代码、Skills、公共元数据和 `data/dataset-manifest.json`。必须先从 GitHub Releases 下载 SQLite 数据库和图像包,完整的本地画廊才能运行。 下载完整的数据集: ``` npm run data:pull ``` 此命令会读取 `data/dataset-manifest.json`,下载 Release 资产,验证其 sha256 哈希值,并将它们放置在应用程序所需的路径中: - `db/prompts.db.gz` 是压缩的公共 SQLite 数据库。 - `images/` 接收从 `images-YYYY-MM.tar.gz` 提取的月度图像包。 - `.oip/packs/` 存储本地提取标记,以便在下一次运行时跳过未更改的包。 如果只需下载数据库并让画廊回退到原始源图像 URL: ``` npm run data:pull:db ``` 这些生成的文件被 Git 有意忽略。数据集 Release 可能会频繁更新,但仓库提交保持很小的体积:Git 跟踪代码和轻量级元数据,而 GitHub Releases 承载 `prompts.db.gz` 和图像归档。 ## 使用 Docker 运行 Docker 提供了一个隔离的 Linux 运行时环境,包含 Node.js 22 和 Python 3。镜像构建在生成运行时镜像之前,会运行公共数据检查、API/前端测试、lint 和生产构建: ``` docker build -t open-image-prompts . docker run --rm --name open-image-prompts -p 4173:4173 open-image-prompts ``` 打开 。API 在容器内部保持仅本地回环,仅通过前端代理暴露。该镜像以非特权用户 `node` 运行,并包含 `/health` 健康检查。 构建过程会从 GitHub Releases 下载 SQLite 归档(需要访问 github.com 的网络权限),并通过源 URL 回退来提供图像。同样的命令适用于 Windows/macOS 上的 Docker Desktop 以及 Linux 上的 Docker Engine。 ## 安装 Skills 列出并安装这两个 Skills: ``` npx skills add NanmiCoder/open-image-prompts --list npx skills add NanmiCoder/open-image-prompts -g ``` `img-gen-taste` 可通过其内置的样式卡立即工作。`img-gen-prompts` 使用此仓库的公共 SQLite 归档和获取的图像(`npm run data:pull` 会同时下载这两者): ``` export OIP_REPO_ROOT="$PWD" # PowerShell: $env:OIP_REPO_ROOT = (Get-Location) npm run status ``` 准备就绪的检出会报告 `"active_taxonomy_version": "oip-visual-v2"` 和 `"ready": true`。 示例: ``` python3 skills/img-gen-prompts/scripts/oip.py search \ --intent "vintage city travel poster" \ --limit 5 ``` 搜索会将精确匹配保留在 `results` 中。当精确覆盖范围较稀疏时, 独立的 `related_results` 通道可能会提供经过图像验证的参考, 这些参考仅缺少一个声明的审美偏好。它绝不会添加 vector 数据库、模型下载、API 密钥或 Python 依赖项。运行带有标签的、 双语的 72 条查询的回归基准测试(包括经过视觉审查的关联 参考),请使用: ``` npm run test:retrieval ``` 在 Windows 上,将 `python3` 替换为 `py -3`,或通过兼容的 Agent 使用该 Skill。 ## 公共数据边界 公共 DB 有意仅包含产品运行时数据: - 源 prompt 和源 URL; - 完整公共语料库的图像记录; - 双语翻译; - 有效的 `oip-visual-v2` prompt/图像标签; - 公共分类体系和 FTS 搜索索引。 它**不**包含标注候选、模型/提供商设置、运行 ID、租约、模型推理、错误路径、评估表或遗留标签分配。 请参阅 [DATASET.md](./DATASET.md)、[DATA_LICENSE.md](./DATA_LICENSE.md) 以及机器可读的 [公共语料库清单](./data/public-corpus.json)。 ## 验证检出 ``` uv sync --locked npm --prefix web ci npm test npm run lint npm run build npm run status ``` API 和 Skill 以只读 immutable 模式打开 SQLite。每个服务默认绑定 `127.0.0.1`,从不启动标注任务。前端从端口 `5173` 开始,如果被占用则转移到下一个空闲端口,并打印其实际提供服务的 URL;设置 `OIP_WEB_HOST`/`OIP_WEB_PORT` 可以固定它们,在这种情况下,端口冲突会直接抛出错误,而不是发生漂移。Skill 的画廊桥接在端口 `4173` 上具有相同的行为。 ## 许可证 应用程序代码和 Skill 指令可在 [MIT License](./LICENSE) 下获取。数据集授权和第三方内容边界在 [DATA_LICENSE.md](./DATA_LICENSE.md) 中单独记录。
标签:AI绘画, MITM代理, 二进制发布, 开源工具, 提示词工程, 暗色界面, 本地优先, 策略决策点, 请求拦截, 逆向工具