Changelog
Product updates and release notes.
v0.12.0
C2PA detection
- •C2PA detection: analyze reports c2pa_manifest; every processed response carries X-Pictomancer-C2PA-Input.
- •analyze also returns provenance {c2pa, container} (jpeg-app11, png-caBX, webp-C2PA, isobmff-uuid); presence only, the signature is not validated
- •Outputs never carry a manifest over: re-encoding invalidates it. Documented in the agent card (provenance block) and /v1/info
v0.11.0
Web-ready AI-generated images in one call
- •New optimize_generated_image tool (POST /v1/optimize_generated): the step after gpt-image, DALL-E, Flux, Midjourney or Stable Diffusion - the 2-8 MB PNG comes back as web-ready webp (default), avif, jpeg or png
- •Metadata stripped by default, transparency kept on webp/avif/png, optional max_dimension cap that never upscales, optional q or quality_target
- •Same price as convert; a result that is not smaller is still returned but free (X-Pig-Billed: 0)
- •X-Pictomancer-Bytes-Before, -After and -Saved-Percent headers report the saving; A2A gets a size-report artifact
- •Available in every SDK: Python 0.7.0, Node 0.5.0, PHP 0.6.0, Go 0.6.0, n8n 0.6.0
v0.10.0
Denoise, auto-contrast, sharpen
- •denoise: 1 | 2 | 3 on resize, crop, compress and convert applies a median filter (3x3 to 7x7 window) before the operation - scans, low-light photos and AI renders clean up in the same call
- •equalize: true auto-contrasts the value channel with hue and saturation preserved - alpha and colour never shift
- •sharpen: true applies an unsharp mask after the operation, where post-resize sharpening belongs
- •Applied in a fixed order: autorot -> denoise -> equalize -> operation -> sharpen
- •All at base price - no surcharge. An enhanced compress is billed even when the file grows, since the pixels changed
- •Available in every SDK: Python 0.6.0, Node 0.4.0, PHP 0.5.0, Go 0.5.0, n8n 0.5.0
v0.9.0
Smart crop, border trim, auto-rotate
- •Smart crop: gravity: "attention" | "entropy" | "centre" on crop picks the most interesting region for you - just give width and height
- •Border trim: trim: true on crop removes uniform borders (tunable threshold); X-Pictomancer-Trim-* headers report exactly what was cut
- •Resize fill mode: width + height together crops to fit, with gravity choosing what survives
- •autorot: true on resize, crop, compress and convert applies EXIF orientation before processing
- •All at base price - no surcharge
- •Available in every SDK: Python 0.5.0, Node 0.3.0, PHP 0.4.0, Go 0.4.0
v0.8.0
Perceptual quality target (SSIM)
- •New quality_target option (0..1] on compress and convert: ask for the smallest file with SSIM >= your target instead of guessing a q value
- •Binary search over encoder quality, capped at 7 encodes with a hard deadline - you get the smallest file that clears the bar
- •Works on every format with a quality dial: JPEG, WebP, AVIF
- •X-Pictomancer-Quality-Target, -Achieved, -Q-Final and -Encodes response headers tell you what was measured
- •Images already smaller than the target's byte budget return untouched and free
- •Pricing: flat +$0.004 when quality_target is used
v0.7.0
AVIF output
- •AVIF as an output format on every operation (format: "avif") — AV1 encoding, statically built, no HEVC patent baggage
- •New effort option (0-9): trade encoding CPU for file size. Default 2 favors latency; 4-6 squeeze out the last bytes
- •AVIF sources now decode correctly on every endpoint
- •Pricing: +$0.001 surcharge on AVIF output (convert to AVIF = $0.003)
v0.6.1
Callback delivery — POST results to your endpoint
- •New delivery mode callback_url: we POST the optimized bytes to your HTTPS endpoint, ideal for async and large jobs
- •X-Pig-Sha256 integrity header on every callback
- •Optional HMAC signing (X-Pig-Signature, GitHub-webhook style) with a per-request secret — never stored
- •Same SSRF hardening as put_url: HTTPS-only, DNS pinned, internal ranges blocked
- •Descriptive User-Agent on image fetches so UA-gated hosts (e.g. Wikimedia) no longer reject your source URLs
v0.6.0
Delivery targets — write results directly to your bucket
- •New `delivery` field on every image-processing endpoint: `inline` (default, unchanged) or `put_url` (presigned PUT to your storage)
- •Works with any S3-compatible storage: S3, R2, B2, GCS, Azure, DO Spaces
- •Zero customer credentials stored on our side — you sign the URL, we PUT the bytes
- •Strict SSRF guard: HTTPS-only, DNS resolved once, internal IP ranges blocked
- •New Prometheus metrics: pig_delivery_uploads_total, pig_delivery_upload_duration_seconds, pig_delivery_upload_bytes
- •Grafana panels for per-mode upload throughput, latency, and failure rate
v0.5.0
Dollar billing, transaction history, GDPR compliance
- •Unified billing around USD balance (same as x402 pricing)
- •Stripe Checkout integration for $1, $5, $20 top-ups
- •Transaction history in the dashboard
- •Cookie consent banner and cookie policy page
- •Updated Terms of Service and Privacy Policy
v0.4.0
Rate limiting, Sentry, Python SDK
- •Sliding window rate limiter per identity (API key, wallet, IP)
- •Sentry error tracking on backend and frontend
- •Python SDK: `pip install pictomancer`
- •Alembic database migrations baseline
- •Email service integration via Resend
v0.3.0
SaaS dashboard and OAuth login
- •User dashboard with Google and GitHub OAuth login
- •API key management (create, revoke, usage tracking)
- •Usage metrics: requests, bytes in/out, total spent
- •Grafana monitoring dashboards for all services
- •Upgraded to Python 3.14
v0.2.0
x402 payments and multi-format support
- •x402 protocol support for USDC micropayments on Base
- •Image pipeline: chain multiple operations in one request
- •TIFF and GIF format support
- •Per-operation pricing ($0.001–$0.003)
- •Free tier: 50 requests per day
v0.1.0
Initial release
- •Core API: resize, compress, convert, crop, analyze
- •JPEG, PNG, WebP output formats
- •MCP server endpoint for AI agent integration
- •Prometheus metrics and structured logging
- •Landing page at pictomancer.ai