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