CI & fixtures · Pruna p-image

CI and Fixtures: Keep Pruna p-image Out of the Pipeline

CI should be deterministic. Live Pruna p-image calls in tests and Storybook make snapshots flaky and bills noisy—especially for production-speed app image loops where visual regression is the whole point.

Where image API costs go off the rails

Latency budgets become money budgets

Slow Pruna p-image retries encourage parallel calls—and parallel charges.

Quality tiers tempt overspend

Defaulting to the highest Pruna p-image tier for every draft wastes premium capacity.

No cache means no ceiling

Without a stock layer, every page view path can re-trigger Pruna p-image.

Investors notice messy COGS

Unpredictable Pruna p-image lines make early unit economics look worse than they need to.

Scenario: CI & fixtures with Pruna p-image

A PR pipeline regenerates images through Pruna p-image for visual tests, email previews, or README builds. Network blips retry jobs; each retry can bill again. Snapshots never stabilize because the model is non-deterministic. Instead, download licensed fixtures once from Epochal, commit or cache them, and assert against fixed bytes. Keep Pruna p-image experiments in a manual or nightly job with hard budgets—not on every push. Your teammates get green checks; finance gets a flat image line instead of a surprise inference spike.

The fix: Epochal Stock at $50 USD/month (no per-image fee)

Epochal Stock Developer Image API is a single plan at $50 USD/month: full catalog access, 30 requests/minute per account, and unlimited original downloads with one concurrent transfer. There is no per-image fee and no free tier in v1. Use it wherever the picture does not need a unique Pruna p-image synthesis—prototypes, fixtures, placeholders—so generative spend stays reserved for finals. Authenticate server-side with a Bearer key only; never put keys in browser JavaScript.

  • Price: $50 USD/month — single plan
  • Per-image billing: none
  • Rate limit: 30 requests/minute per account
  • Downloads: unlimited originals, one concurrent transfer
  • Best for: tests, prototypes, and placeholders instead of another Pruna p-image generation
curl -sS "https://epochalstock.com/api/v1/images?tags=workspace,startup&limit=12" \
  -H "Authorization: Bearer $EPOCHAL_API_KEY"

Keys stay on your server. Never pass ?api_key= or ship secrets to the browser.

Get the Epochal developer API See pricing details

Stock examples for CI & fixtures

Pulled server-side from Epochal tags: server, technology, product. Previews are cached; API keys never hit the browser.

Energy Consultant With Thermal Imaging Camera in Neon-Lit Setting — stock example for CI & fixtures for Pruna p-image
Energy Consultant With Thermal Imaging Camera in Neon-Lit Setting
Child Using Laptop at Home With Packed Bags and Flowers — stock example for CI & fixtures for Pruna p-image
Child Using Laptop at Home With Packed Bags and Flowers
Sustainability Team at Workshop Repairing Electronics With Smiles — stock example for CI & fixtures for Pruna p-image
Sustainability Team at Workshop Repairing Electronics With Smiles
Sustainability Team Working Together in a Workshop — stock example for CI & fixtures for Pruna p-image
Sustainability Team Working Together in a Workshop
Grandmother Training With a Tablet in a Gym Setting — stock example for CI & fixtures for Pruna p-image
Grandmother Training With a Tablet in a Gym Setting
Young Female Electrician Working on Air Conditioning Unit Outside — stock example for CI & fixtures for Pruna p-image
Young Female Electrician Working on Air Conditioning Unit Outside

FAQ

Why is Pruna p-image a bad fit for CI?

Generative outputs are non-deterministic and often metered. CI needs stable fixtures; Pruna p-image is for intentional creative runs.

How many Epochal downloads can CI use?

Original downloads are unlimited serially with one concurrent transfer per account. Plan parallel jobs so they do not fight the single-transfer limit.

What is the request rate limit?

30 requests/minute per account across all keys. Batch metadata where possible; do not fan out one key per micro-job without backoff.

Can CI still smoke-test Pruna p-image?

Yes—gate it behind a manual workflow or quota, not the default PR path. Default fixtures should be stock so Pruna p-image spend stays intentional.

Pruna p-image version guides