cdper-gpt-image
v0.1.2
Published
ChatGPT web image generation CLI over Chrome DevTools Protocol
Readme
cdper-gpt-image
ChatGPT web image generation CLI over Chrome DevTools Protocol (CDP).
This package is a thin npm wrapper around the Rust binary. It talks to an already logged-in Chrome/ChatGPT session through http://127.0.0.1:9222 and extracts the original generated image bytes from the page.
Install
npm install -g cdper-gpt-imageLinux x64 is supported by the published npm package. The npm package bundles the matching Linux x64 binary, so install does not need access to a GitHub release asset.
Requirements
- Linux x64
- Node.js 18+
- Chrome running with remote debugging on port
9222 - A logged-in ChatGPT web session in that Chrome profile
The CLI defaults to http://127.0.0.1:9222. Override with --cdp.
Usage
Text-to-image:
cdper-gpt-image generate \
--timeout-sec 300 \
--prompt '生成一张电影感城市雨夜街景图,不要文字,不要水印。' \
--out /tmp/out.pngReference-image generation:
cdper-gpt-image generate \
--timeout-sec 300 \
--image /path/to/reference.png \
--prompt '参考上传图片生成写实半身头像,不要文字,不要水印。' \
--out /tmp/out.pngFollow-up edit:
cdper-gpt-image edit \
--timeout-sec 300 \
--url 'https://chatgpt.com/c/...' \
--prompt '保持主体不变,把背景改成浅蓝摄影棚背景。' \
--out /tmp/edited.pngExtract latest original image from a conversation:
cdper-gpt-image extract \
--timeout-sec 300 \
--url 'https://chatgpt.com/c/...' \
--out /tmp/extracted.pngOutput contract
Stdout is a JSON object:
{
"ok": true,
"command": "generate",
"out": "/tmp/out.png",
"width": 1122,
"height": 1402,
"content_type": "image/png",
"conversation_url": "https://chatgpt.com/c/...",
"elapsed_ms": 56000,
"error": null
}On failure, ok is false and error contains the reason.
Development
cargo test
cargo build --release
node bin/cdper-gpt-image.js --version
npm pack --dry-runFor local wrapper testing without the bundled vendor binary:
CDPER_GPT_IMAGE_BIN=./target/release/cdper-gpt-image node bin/cdper-gpt-image.js --versionLicense
MIT
