{"id":51091303,"url":"https://github.com/papperrollinggery/zhijuan-prompt-card","last_synced_at":"2026-06-24T02:30:38.817Z","repository":{"id":364836579,"uuid":"1247414152","full_name":"papperrollinggery/zhijuan-prompt-card","owner":"papperrollinggery","description":"Local-first Chrome extension that turns images into generator-ready prompts.","archived":false,"fork":false,"pushed_at":"2026-06-21T17:46:33.000Z","size":9627,"stargazers_count":17,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-21T19:17:44.572Z","etag":null,"topics":["ai-tools","byok","chrome-extension","image-to-prompt","local-first","manifest-v3","openai-compatible","prompt-engineering","react","typescript","vision-models","vite"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/papperrollinggery.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-23T09:29:40.000Z","updated_at":"2026-06-21T17:46:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/papperrollinggery/zhijuan-prompt-card","commit_stats":null,"previous_names":["papperrollinggery/zhijuan-prompt-card"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/papperrollinggery/zhijuan-prompt-card","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fzhijuan-prompt-card","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fzhijuan-prompt-card/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fzhijuan-prompt-card/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fzhijuan-prompt-card/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/papperrollinggery","download_url":"https://codeload.github.com/papperrollinggery/zhijuan-prompt-card/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fzhijuan-prompt-card/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34714992,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-tools","byok","chrome-extension","image-to-prompt","local-first","manifest-v3","openai-compatible","prompt-engineering","react","typescript","vision-models","vite"],"created_at":"2026-06-24T02:30:38.180Z","updated_at":"2026-06-24T02:30:38.811Z","avatar_url":"https://github.com/papperrollinggery.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zhijuan Prompt Card\n\n**English** | [简体中文](README.zh-CN.md)\n\n![License](https://img.shields.io/badge/license-Apache--2.0-blue)\n![Chrome Extension](https://img.shields.io/badge/Chrome-Extension-4285F4)\n![Manifest V3](https://img.shields.io/badge/Manifest-V3-34A853)\n![Local-first](https://img.shields.io/badge/local--first-yes-2EA043)\n![Telemetry](https://img.shields.io/badge/telemetry-none-2EA043)\n\nLocal-first Chrome extension that turns images, screenshots, and page regions into generator-ready prompts through your own OpenAI-compatible vision endpoint.\n\n![Zhijuan Prompt Card product overview](docs/assets/readme/imagegen/readme-banner.png)\n\n## Why Use It\n\nMost image-to-prompt tools mix analysis text, model metadata, and generator instructions into the same output. Zhijuan Prompt Card is focused on the handoff: select a visual reference, extract the useful reconstruction language, then copy or open a clean prompt in the generator you already use.\n\nThe extension does not ship a hosted Zhijuan AI service. You bring your own compatible endpoint, key, and model.\n\n## Highlights\n\n- Pick images from a page, right-click image elements, capture a page region, or upload a local file.\n- Generate Chinese prompts, English prompts, generator-facing JSON prompts, negative prompts, and style tags.\n- Preserve visible text, layout hierarchy, subject anchors, camera cues, material behavior, and source-fidelity constraints when the model can infer them from the image.\n- Keep a local visual history with thumbnails and copyable prompt outputs.\n- Open prompts in ChatGPT, Gemini, Midjourney, Jimeng, Lovart, Codex, or a custom generator URL.\n- Store configuration and history locally in Chrome storage.\n- Use your own OpenAI-compatible Chat Completions vision endpoint.\n\n## Workflow\n\n![Zhijuan Prompt Card workflow](docs/assets/readme/imagegen/readme-workflow.png)\n\n```text\nImage / Page Region / Local File\n-\u003e Zhijuan Prompt Card\n-\u003e Your OpenAI-compatible Vision Endpoint\n-\u003e Structured Prompt Output\n-\u003e Copy / Open in Generator\n```\n\n## Generator Output\n\nZhijuan Prompt Card separates copy-ready prompt text from internal structured data.\n\n| Output | Purpose |\n|---|---|\n| English | Primary recreation prompt for external image generators |\n| Chinese | Chinese-language prompt for review, editing, and Chinese workflows |\n| JSON | Structured generator-facing reconstruction prompt with adaptive modules, atmosphere, subject, composition, style, color, text, constraints, and auxiliary description fields |\n| Negative | Drift blockers and quality constraints |\n| Tags | Compact style and material descriptors |\n\nSince v0.3.3, normal copy, history copy, and Open in generator use a generator-safe prompt. Internal schema metadata such as `schema_version: \"reconstruction_v2\"` stays in structured exports and no longer becomes default generator text unless it is genuinely visible in the source image.\n\nSince v0.3.4, uploaded image dimensions are used as source-frame evidence, so portrait, landscape, and square inputs keep their orientation and aspect ratio in both natural-language prompts and generator-facing JSON.\n\nGenerator-facing JSON is structured, not prompt-first. It uses generator-ready fields such as `task`, `adaptive_modules`, `subject`, `composition`, `style`, `atmosphere`, `color_palette`, `materials_texture`, `text_elements`, `constraints`, and `description`; internal schema fields still stay out, and structure fields that conflict with the compiled generator description are filtered before copy.\n\n## Install\n\n### From GitHub Release\n\nThe Chrome Web Store and Edge Add-ons builds are not published yet. Use the release zip for normal testing.\n\n1. Download the latest `zhijuan-prompt-card-\u003cversion\u003e.zip` from [Releases](https://github.com/papperrollinggery/zhijuan-prompt-card/releases/latest).\n2. Unzip the archive.\n3. Open `chrome://extensions` or `edge://extensions`.\n4. Enable Developer Mode.\n5. Click **Load unpacked**.\n6. Select the unzipped folder that contains `manifest.json`.\n7. Open the extension options and configure your endpoint, API key, and model.\n\n### From Source\n\nRequirements:\n\n- Node.js 20+\n- npm 10+\n- Chrome 120+ or recent Microsoft Edge\n- An OpenAI-compatible vision endpoint\n\n```bash\nnpm ci\nnpm run typecheck\nnpm run build\n```\n\nThen load the generated `dist/` folder as an unpacked extension.\n\n## Configure\n\nOpen the extension options page and set:\n\n| Field | Meaning |\n|---|---|\n| Base URL | OpenAI-compatible API base URL, for example `http://127.0.0.1:3777/v1` |\n| API Key | Your provider or local adapter key |\n| Model | A vision-capable chat model |\n| Default Generator | The external generator opened by the handoff button |\n| Language | Default UI/output language preference |\n\n### Recommended Setup: BridgeDeck\n\n[BridgeDeck](https://github.com/papperrollinggery/bridgedeck) is an optional local OpenAI-compatible bridge adapter maintained separately. It is useful when you want Zhijuan Prompt Card to call a local bridge endpoint instead of wiring every model provider directly into the extension.\n\nBridgeDeck can expose a `/v1` API shape that the extension can use as its vision endpoint while the extension itself stays local-first and provider-neutral. BridgeDeck is not bundled with Zhijuan Prompt Card and is not required.\n\nExample local configuration:\n\n```text\nBase URL:\nhttp://127.0.0.1:8876/v1\n\nAPI Key:\nlocal-bridge\n\nModel:\ngpt-5.5\n```\n\nIf BridgeDeck is not running locally, replace these values with your own compatible vision endpoint. `gpt-5.5` is a BridgeDeck model alias in the maintainer workflow. Users can use any compatible multimodal vision model. The extension does not include model access, API credits, or a Zhijuan forwarding server by default.\n\nSee [Model Compatibility](docs/MODELS.md) for tested adapters and reporting guidance.\n\n## Privacy Model\n\n![Local-first privacy boundary](docs/assets/readme/imagegen/readme-local-first.png)\n\n- No bundled Zhijuan cloud endpoint.\n- No hidden telemetry.\n- API keys stay in Chrome extension storage.\n- Prompt history and thumbnails stay in `chrome.storage.local`.\n- Images are sent only to the endpoint you configure.\n- Release builds are distributed as source-buildable extension packages.\n\nSee [PRIVACY.md](PRIVACY.md), [SECURITY.md](SECURITY.md), and [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for the full public policy surface.\n\n## Documentation\n\n| Need | Link |\n|---|---|\n| Release history | [CHANGELOG.md](CHANGELOG.md) |\n| Install and release process | [docs/RELEASE.md](docs/RELEASE.md) |\n| Model compatibility | [docs/MODELS.md](docs/MODELS.md) |\n| Manual installed-extension checks | [docs/installed-extension-acceptance.md](docs/installed-extension-acceptance.md) |\n| Screenshots and assets | [docs/SCREENSHOTS.md](docs/SCREENSHOTS.md) |\n| Contribution guide | [CONTRIBUTING.md](CONTRIBUTING.md) |\n| Code of conduct | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) |\n\n## Development\n\nCommon checks:\n\n```bash\nnpm run typecheck\nnpm run build\nnpm run check:storage\nnpm run check:json-repair\nnpm run check:prompt-goal\nnpm run check:extension-pages\nnpm run check:content-script\n```\n\nPackage a release zip:\n\n```bash\nnpm run release:package\n```\n\nRun the release package check:\n\n```bash\nnpm run release:check\n```\n\n## Project Status\n\n- Latest release: [v0.3.5](https://github.com/papperrollinggery/zhijuan-prompt-card/releases/tag/v0.3.5)\n- Distribution: GitHub release zip and source build\n- Browser store listings: not published yet\n- License: [Apache-2.0](LICENSE)\n\nRelease tags are machine-simple, for example `v0.3.5`. Detailed user-facing changes live in [CHANGELOG.md](CHANGELOG.md) and GitHub release notes.\n\n## Contributing\n\nContributions are welcome for browser compatibility, prompt schema improvements, generator presets, model compatibility notes, documentation, and i18n. Please read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a larger PR.\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE) and [NOTICE](NOTICE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpapperrollinggery%2Fzhijuan-prompt-card","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpapperrollinggery%2Fzhijuan-prompt-card","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpapperrollinggery%2Fzhijuan-prompt-card/lists"}