Spaces:
Running
Running
| # CodeFormer API Documentation | |
| This document describes the programmatic interface for the CodeFormer Face Restoration service. | |
| ## Base URL | |
| The API is accessible at: | |
| `https://esmailx50-job.hf.space` (or your specific Hugging Face Space URL) | |
| --- | |
| ## 1. Process Images | |
| Processes one or more images for face restoration and enhancement. | |
| - **Endpoint:** `/api/process` | |
| - **Method:** `POST` | |
| - **Consumes:** `multipart/form-data` OR `application/json` | |
| ### Parameters | |
| | Parameter | Type | Default | Description | | |
| | :--- | :--- | :--- | :--- | | |
| | `fidelity` | float | `0.5` | Fidelity weight ($w$). Range [0, 1]. Lower is more "hallucinated" detail, higher is more identity preservation. | | |
| | `upscale` | int | `2` | Final upscaling factor. Supported: `1`, `2`, `4`. | | |
| | `background_enhance` | bool | `false` | Enhance the background using Real-ESRGAN. | | |
| | `face_upsample` | bool | `false` | Upsample restored faces using Real-ESRGAN. | | |
| | `return_base64` | bool | `false` | If true, includes the processed image as a base64 string in the JSON response. | | |
| ### Input Formats | |
| #### A. Multipart Form Data (`multipart/form-data`) | |
| Useful for uploading files directly. | |
| - `image`: One or more image files (as a list). | |
| - Other parameters as form fields. | |
| **Example (curl):** | |
| ```bash | |
| curl -X POST | |
| -F "image=@my_photo.jpg" | |
| -F "fidelity=0.7" | |
| -F "background_enhance=true" | |
| https://esmailx50-job.hf.space/api/process | |
| ``` | |
| #### B. JSON (`application/json`) | |
| Useful for sending base64-encoded image data. | |
| - `image_base64`: A single base64 string (with or without data URI prefix). | |
| - `images_base64`: (Optional) A list of base64 strings for batch processing. | |
| - Other parameters as JSON keys. | |
| **Example (curl):** | |
| ```bash | |
| curl -X POST | |
| -H "Content-Type: application/json" | |
| -d '{ | |
| "image_base64": "data:image/png;base64,iVBORw0KG...", | |
| "fidelity": 0.5, | |
| "return_base64": true | |
| }' | |
| https://esmailx50-job.hf.space/api/process | |
| ``` | |
| ### Success Response | |
| ```json | |
| { | |
| "status": "success", | |
| "count": 1, | |
| "results": [ | |
| { | |
| "original_name": "image.png", | |
| "filename": "api_result_uuid.png", | |
| "image_url": "https://.../static/results/api_result_uuid.png", | |
| "image_base64": "iVBORw0KG..." // Only if return_base64 was true | |
| } | |
| ] | |
| } | |
| ``` | |
| ### Error Response | |
| ```json | |
| { | |
| "status": "error", | |
| "message": "Detailed error message here" | |
| } | |
| ``` | |
| --- | |
| ## 2. Health Check | |
| Checks if the service is online and returns the compute device being used. | |
| - **Endpoint:** `/api/health` | |
| - **Method:** `GET` | |
| **Success Response:** | |
| ```json | |
| { | |
| "status": "online", | |
| "device": "cuda" // or "cpu" | |
| } | |
| ``` | |
| --- | |
| ## CORS & Integration | |
| Cross-Origin Resource Sharing (CORS) is enabled for all routes. This allows you to call the API directly from browser-based applications (React, Vue, etc.) without hitting "Same-Origin Policy" blocks. | |
| **Javascript Example (Fetch):** | |
| ```javascript | |
| const formData = new FormData(); | |
| formData.append('image', fileInput.files[0]); | |
| formData.append('fidelity', '0.5'); | |
| const response = await fetch('https://esmailx50-job.hf.space/api/process', { | |
| method: 'POST', | |
| body: formData | |
| }); | |
| const data = await response.json(); | |
| console.log(data.results[0].image_url); | |
| ``` | |