# Pruna p-image-try-on P-Image Try-On places any garment onto a photo of a person, generating realistic virtual try-on images for online fashion, e-commerce, and product pages. ## API Information - **Model Slug:** p-image-try-on - **Branded URL:** https://www.eachlabs.ai/pruna/p-image/p-image-try-on - **Provider:** Pruna - **Category:** Image to Image - **Output Type:** image - **Status:** active - **Version:** 0.0.1 - **Base Cost:** $0.015 per garment reference - **Estimated Processing Time:** 8 seconds - **Last Updated:** 2026-06-18 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/p-image-try-on ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.0450 - **Pricing Details:** $0.015 per garment reference ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | $0.015 per garment reference | ## Input Schema No input parameters documented. ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "p-image-try-on", "input": {} }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated image)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Pruna p-image-try-on Overview** Pruna p-image-try-on is an **image-to-image virtual try-on model** from Pruna AI’s **P-Image** family, designed to transform an input photo into a realistic clothing try-on or appearance variation. Built for integration via the Pruna p-image-try-on API and platforms like each::labs, it focuses on preserving the subject’s identity while changing garments or styling elements. This model is particularly useful for ecommerce, fashion experiments, and creative concept visualization, where users need fast, photorealistic previews instead of manual photo shoots. Within the Pruna AI image-to-image ecosystem, Pruna p-image-try-on stands out for its targeted workflow around try-on scenarios rather than generic image editing, making it easier to get consistent results across product catalogs and lookbooks. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.