AI Photo Enhancer
Improve photo quality, fix lighting, reduce noise, and restore images using each::sense — the intelligent AI agent that automatically selects the best model for your request.
Quick Start
Requires an each::labs API key. Get one at eachlabs.ai.
Using curl
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Enhance this photo: improve sharpness, fix the underexposed shadows, boost color vibrancy slightly, and reduce noise while preserving natural skin texture."},
{"type": "image_url", "image_url": {"url": "https://example.com/dark-noisy-photo.jpg"}}
]
}
],
"stream": false
}'
Using Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="YOUR_EACHLABS_API_KEY",
base_url="https://eachsense-agent.core.eachlabs.run/v1"
)
response = client.chat.completions.create(
model="eachsense/beta",
messages=[{
"role": "user",
"content": "Enhance this photo: improve sharpness, fix the underexposed shadows, boost color vibrancy slightly, and reduce noise while preserving natural skin texture."
}],
# Images are included in the message content array above
)
print(response.choices[0].message.content)
Images are sent inside messages using the OpenAI multimodal content format. Maximum 4 images per request.
Streaming
Set "stream": true for real-time Server-Sent Events (SSE) responses, or "stream": false to receive the complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.
Enhancement Types
| Enhancement |
Prompt Keywords |
When to Use |
| Sharpening |
sharpen, improve detail, crisp |
Soft or slightly out-of-focus photos |
| Noise Reduction |
reduce noise, denoise, remove grain |
High-ISO or low-light photos |
| Exposure Fix |
brighten shadows, fix exposure, recover highlights |
Under/overexposed shots |
| Color Correction |
fix white balance, correct color cast, true-to-life |
Wrong white balance, tinted photos |
| HDR Enhancement |
HDR effect, dynamic range, balanced exposure |
High-contrast scenes |
| Old Photo Restoration |
restore, fix damage, remove scratches |
Vintage or damaged prints |
| Deblurring |
remove motion blur, sharpen movement |
Motion-blurred shots |
Examples
Fix Low-Light Photo
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "This photo was taken in low light. Brighten the shadows without blowing out highlights, reduce the visible noise and grain, improve color accuracy, and sharpen the subject. Keep the moody atmosphere but make details visible."},
{"type": "image_url", "image_url": {"url": "https://example.com/lowlight-event.jpg"}}
]
}
],
"stream": false
}'
Restore Old Family Photo
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Restore this old photograph from the 1970s. Remove the yellowing and faded color cast, fix scratches and dust spots, sharpen facial details, and bring the colors back to a natural look. Preserve the original composition."},
{"type": "image_url", "image_url": {"url": "https://example.com/old-family-1975.jpg"}}
]
}
],
"stream": false
}'
Product Photo Enhancement
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Enhance this product photo for e-commerce: correct the slightly warm color cast to neutral, increase sharpness of the product details, ensure the white background is pure white, and boost contrast slightly for a clean commercial look."},
{"type": "image_url", "image_url": {"url": "https://example.com/product-raw.jpg"}}
]
}
],
"stream": false
}'
Batch Enhancement
PHOTOS=(
"https://example.com/vacation-1.jpg"
"https://example.com/vacation-2.jpg"
"https://example.com/vacation-3.jpg"
)
ENHANCEMENT="Enhance this photo: improve sharpness, correct white balance to natural daylight, reduce noise, boost vibrancy slightly. Keep the edit subtle and natural-looking."
for URL in "${PHOTOS[@]}"; do
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d "{
\"messages\": [{\"role\": \"user\", \"content\": \"$ENHANCEMENT\"}],
\"image_urls\": [\"$URL\"],
\"stream\": false
}"
echo "---"
done
Prompt Tips
- Be specific about what is wrong: "the shadows are too dark" is better than "fix this photo"
- Mention what to preserve: "Keep the warm sunset tones" prevents over-correction
- Specify the intent: "for social media posting" vs. "for large print" changes the approach
- Avoid conflicting instructions: "make it brighter but keep the moody dark look" is contradictory
- Use "subtle" or "natural" to prevent aggressive over-processing
Common Problems and Prompts
| Problem |
Suggested Prompt |
| Too dark |
"Brighten the exposure, lift shadows, keep highlights intact" |
| Too bright/washed out |
"Reduce exposure, recover blown highlights, deepen shadows" |
| Yellow/orange cast |
"Correct the warm color cast to neutral white balance" |
| Blue/cold cast |
"Fix the blue color cast, warm up the tones slightly" |
| Blurry |
"Sharpen and improve focus, especially on the main subject" |
| Grainy/noisy |
"Reduce noise and grain while preserving fine detail" |
| Faded colors |
"Restore color vibrancy and saturation to natural levels" |
| Old/damaged |
"Restore: remove scratches, fix discoloration, sharpen details" |
Related Skills
Related Models
Documentation
1---2name: ai-photo-enhancer3description: Enhance photo quality with AI using each::sense AI. Improve sharpness, fix lighting, reduce noise, correct colors, restore old photos, and bring out hidden detail in underexposed or degraded images. Supports batch enhancement and targeted corrections. Use for: photo restoration, noise reduction, color correction, lighting fixes, old photo repair, image sharpening, HDR enhancement. Triggers: photo enhancer, enhance photo, improve photo, fix photo, photo quality, color correction, noise reduction, sharpen photo, restore photo, photo fixer, image enhancement, ai enhance4---56# AI Photo Enhancer78Improve photo quality, fix lighting, reduce noise, and restore images using [each::sense](https://docs.eachlabs.ai/sense/overview) — the intelligent AI agent that automatically selects the best model for your request.910## Quick Start1112> Requires an each::labs API key. Get one at [eachlabs.ai](https://eachlabs.ai).1314### Using curl1516```bash17curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \18 -H "Content-Type: application/json" \19 -H "X-API-Key: $EACHLABS_API_KEY" \20 -d '{21 "messages": [22 {23 "role": "user",24 "content": [25 {"type": "text", "text": "Enhance this photo: improve sharpness, fix the underexposed shadows, boost color vibrancy slightly, and reduce noise while preserving natural skin texture."},26 {"type": "image_url", "image_url": {"url": "https://example.com/dark-noisy-photo.jpg"}}27 ]28 }29 ],30 "stream": false31 }'32```3334### Using Python (OpenAI SDK)3536```python37from openai import OpenAI3839client = OpenAI(40 api_key="YOUR_EACHLABS_API_KEY",41 base_url="https://eachsense-agent.core.eachlabs.run/v1"42)4344response = client.chat.completions.create(45 model="eachsense/beta",46 messages=[{47 "role": "user",48 "content": "Enhance this photo: improve sharpness, fix the underexposed shadows, boost color vibrancy slightly, and reduce noise while preserving natural skin texture."49 }],50 # Images are included in the message content array above51)5253print(response.choices[0].message.content)54```5556> Images are sent inside messages using the OpenAI multimodal content format. Maximum 4 images per request.5758### Streaming5960Set `"stream": true` for real-time Server-Sent Events (SSE) responses, or `"stream": false` to receive the complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.6162## Enhancement Types6364| Enhancement | Prompt Keywords | When to Use |65|-------------|----------------|-------------|66| **Sharpening** | sharpen, improve detail, crisp | Soft or slightly out-of-focus photos |67| **Noise Reduction** | reduce noise, denoise, remove grain | High-ISO or low-light photos |68| **Exposure Fix** | brighten shadows, fix exposure, recover highlights | Under/overexposed shots |69| **Color Correction** | fix white balance, correct color cast, true-to-life | Wrong white balance, tinted photos |70| **HDR Enhancement** | HDR effect, dynamic range, balanced exposure | High-contrast scenes |71| **Old Photo Restoration** | restore, fix damage, remove scratches | Vintage or damaged prints |72| **Deblurring** | remove motion blur, sharpen movement | Motion-blurred shots |7374## Examples7576### Fix Low-Light Photo7778```bash79curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \80 -H "Content-Type: application/json" \81 -H "X-API-Key: $EACHLABS_API_KEY" \82 -d '{83 "messages": [84 {85 "role": "user",86 "content": [87 {"type": "text", "text": "This photo was taken in low light. Brighten the shadows without blowing out highlights, reduce the visible noise and grain, improve color accuracy, and sharpen the subject. Keep the moody atmosphere but make details visible."},88 {"type": "image_url", "image_url": {"url": "https://example.com/lowlight-event.jpg"}}89 ]90 }91 ],92 "stream": false93 }'94```9596### Restore Old Family Photo9798```bash99curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \100 -H "Content-Type: application/json" \101 -H "X-API-Key: $EACHLABS_API_KEY" \102 -d '{103 "messages": [104 {105 "role": "user",106 "content": [107 {"type": "text", "text": "Restore this old photograph from the 1970s. Remove the yellowing and faded color cast, fix scratches and dust spots, sharpen facial details, and bring the colors back to a natural look. Preserve the original composition."},108 {"type": "image_url", "image_url": {"url": "https://example.com/old-family-1975.jpg"}}109 ]110 }111 ],112 "stream": false113 }'114```115116### Product Photo Enhancement117118```bash119curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \120 -H "Content-Type: application/json" \121 -H "X-API-Key: $EACHLABS_API_KEY" \122 -d '{123 "messages": [124 {125 "role": "user",126 "content": [127 {"type": "text", "text": "Enhance this product photo for e-commerce: correct the slightly warm color cast to neutral, increase sharpness of the product details, ensure the white background is pure white, and boost contrast slightly for a clean commercial look."},128 {"type": "image_url", "image_url": {"url": "https://example.com/product-raw.jpg"}}129 ]130 }131 ],132 "stream": false133 }'134```135136### Batch Enhancement137138```bash139PHOTOS=(140 "https://example.com/vacation-1.jpg"141 "https://example.com/vacation-2.jpg"142 "https://example.com/vacation-3.jpg"143)144145ENHANCEMENT="Enhance this photo: improve sharpness, correct white balance to natural daylight, reduce noise, boost vibrancy slightly. Keep the edit subtle and natural-looking."146147for URL in "${PHOTOS[@]}"; do148 curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \149 -H "Content-Type: application/json" \150 -H "X-API-Key: $EACHLABS_API_KEY" \151 -d "{152 \"messages\": [{\"role\": \"user\", \"content\": \"$ENHANCEMENT\"}],153 \"image_urls\": [\"$URL\"],154 \"stream\": false155 }"156 echo "---"157done158```159160## Prompt Tips161162- **Be specific about what is wrong**: "the shadows are too dark" is better than "fix this photo"163- **Mention what to preserve**: "Keep the warm sunset tones" prevents over-correction164- **Specify the intent**: "for social media posting" vs. "for large print" changes the approach165- **Avoid conflicting instructions**: "make it brighter but keep the moody dark look" is contradictory166- **Use "subtle" or "natural"** to prevent aggressive over-processing167168## Common Problems and Prompts169170| Problem | Suggested Prompt |171|---------|-----------------|172| Too dark | "Brighten the exposure, lift shadows, keep highlights intact" |173| Too bright/washed out | "Reduce exposure, recover blown highlights, deepen shadows" |174| Yellow/orange cast | "Correct the warm color cast to neutral white balance" |175| Blue/cold cast | "Fix the blue color cast, warm up the tones slightly" |176| Blurry | "Sharpen and improve focus, especially on the main subject" |177| Grainy/noisy | "Reduce noise and grain while preserving fine detail" |178| Faded colors | "Restore color vibrancy and saturation to natural levels" |179| Old/damaged | "Restore: remove scratches, fix discoloration, sharpen details" |180181## Related Skills182183- [Image Upscaling](../image-upscaling/SKILL.md) — Increase resolution184- [AI Image Editor](../ai-image-editor/SKILL.md) — Edit specific elements185- [Background Removal](../background-removal/SKILL.md) — Remove or replace backgrounds186- [Inpainting & Outpainting](../inpainting-outpainting/SKILL.md) — Repair damaged areas187188## Related Models189190- [flux-kontext-pro](../../../models/flux-kontext-pro/SKILL.md) — Best for image editing tasks191- [flux-2-max](../../../models/flux-2-max/SKILL.md) — Highest quality image generation192193## Documentation194195- [each::sense Overview](https://docs.eachlabs.ai/sense/overview)196- [each::labs API](https://docs.eachlabs.ai)