# GFPGAN GFPGAN is a photo Enhancer AI model for improving overall photo quality and resolution. ## API Information - **Model Slug:** gfpgan - **Branded URL:** https://www.eachlabs.ai/tencent/gfpgan/gfpgan - **Provider:** Tencent - **Category:** Image to Image - **Output Type:** image - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Per-second pricing based on provider predict_time. Rate: $0.00108/sec from GPU tier. - **Estimated Processing Time:** 5 seconds - **Last Updated:** 2026-04-06 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/gfpgan ## Pricing - **Charge Type:** dynamic - **Pricing Details:** Per-second pricing based on provider predict_time. Rate: $0.00108/sec from GPU tier. ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Per-second pricing based on provider predict_time. Rate: $0.00108/sec from GPU tier. | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | img | string | Yes | https://storage.googleapis.com/magicpoint/inputs/photo-enhancer-input.jpeg | image/jpeg, image/png, image/jpg, image/webp | Input | | version | string | No | v1.4 | v1.2,v1.3,v1.4,RestoreFormer | The version usually refers to the specific release or iteration of the GFPGAN model, indicating updates or improvements over previous versions. | | scale | number | No | 2 | - | Rescaling factor | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gfpgan", "input": { "img": "https://storage.googleapis.com/magicpoint/inputs/photo-enhancer-input.jpeg" } }' ``` ## 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 "Authorization: Bearer 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 `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **gfpgan — Image-to-Image AI Model** Developed by Tencent, **gfpgan** is a specialized image-to-image AI model designed to restore and enhance photographs by reconstructing facial details and improving overall image quality. Rather than generating images from scratch, gfpgan takes existing photos—whether old, degraded, or low-resolution—and intelligently restores them to higher fidelity. The model excels at facial reconstruction, making it particularly effective for family photo restoration, archival digitization, and professional image enhancement workflows where preserving authentic detail matters. What sets gfpgan apart is its dual-stage restoration approach: it first applies face-aware enhancement to reconstruct facial structure and clarity, then applies global upscaling to improve overall image resolution and detail. This sequential processing is objectively superior to single-model approaches for photographs containing human subjects, delivering results that look natural rather than over-processed or cartoonish. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer 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.