Agent Skills

portrait-enhancement

Enhance portrait photos using each::sense AI. Professional-grade retouching including skin smoothing, teeth whitening, eye enhancement, blemish removal, lighting adjustment, and more.

Install

npx skills add https://github.com/eachlabs/skills --skill portrait-enhancement
SKILL.md

Portrait Enhancement

Transform portrait photos with professional-grade AI retouching using each::sense. This skill provides comprehensive portrait enhancement capabilities for photographers, content creators, and anyone looking to polish their photos.

Features

  • Skin Smoothing: Natural texture-preserving skin retouching
  • Teeth Whitening: Brighten smiles while maintaining realism
  • Eye Enhancement: Brighten, sharpen, and enhance eye clarity
  • Blemish Removal: Remove acne, scars, and skin imperfections
  • Lighting Adjustment: Fix harsh shadows, add studio lighting effects
  • Background Blur (Bokeh): Create professional depth-of-field effects
  • Hair Enhancement: Add volume, shine, and fix flyaways
  • Makeup Enhancement: Enhance or add natural-looking makeup
  • Age Reduction: Subtle age-defying retouching
  • Professional Polish: Complete portrait finishing workflow

Quick Start

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Enhance this portrait with natural skin smoothing and subtle teeth whitening"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/portrait.jpg"]
  }'

API Configuration

Setting Value
Endpoint POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions
Content-Type application/json
Accept text/event-stream
Client Timeout Minimum 10 minutes

Mode Selection

Ask your users before generating:

"Do you want fast & cheap, or high quality?"

Mode Best For Speed Quality
max Final deliverables, client work, print-ready Slower Highest
eco Quick previews, bulk processing, drafts Faster Good

Use Case Examples

1. Skin Smoothing and Retouching

Natural skin smoothing that preserves texture and pores while reducing imperfections.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Apply natural skin smoothing to this portrait. Keep the skin texture realistic, reduce visible pores and fine lines, but avoid the plastic look. Maintain skin detail around eyes and lips."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/portrait.jpg"]
  }'

2. Teeth Whitening

Brighten teeth naturally without over-whitening.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Whiten the teeth in this portrait photo. Make them bright but natural looking - not Hollywood white. Remove any yellow or staining while keeping the natural tooth shape and texture."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/smile-portrait.jpg"]
  }'

3. Eye Enhancement

Brighten and sharpen eyes for a more captivating look.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Enhance the eyes in this portrait. Brighten the whites, add subtle catchlights, increase iris clarity and color vibrancy, and reduce any redness or dark circles under the eyes. Keep it natural."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/headshot.jpg"]
  }'

4. Blemish Removal

Remove acne, scars, and temporary skin imperfections.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove blemishes from this portrait including acne spots, small scars, and any temporary skin imperfections. Keep moles and natural beauty marks. Preserve the natural skin texture in treated areas."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/portrait-blemishes.jpg"]
  }'

5. Lighting Adjustment

Fix poor lighting or add studio-quality lighting effects.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Fix the lighting in this portrait. It was taken in harsh midday sun with unflattering shadows. Apply soft studio-style lighting with gentle shadows, reduce harsh highlights on the forehead, and add subtle rim lighting for depth."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/harsh-light-portrait.jpg"]
  }'

6. Background Blur (Bokeh)

Create professional depth-of-field effects to make subjects stand out.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Add a professional bokeh effect to this portrait. Blur the background with a smooth, creamy quality like an 85mm f/1.4 lens. Keep the subject perfectly sharp including hair edges. The blur should gradually increase with distance from the subject."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/portrait-busy-background.jpg"]
  }'

7. Hair Enhancement

Add volume, shine, and polish to hair.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Enhance the hair in this portrait. Add natural-looking shine and healthy luster, tame flyaway hairs, add subtle volume at the crown, and make the hair color more vibrant. Keep the overall hairstyle unchanged."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/portrait-hair.jpg"]
  }'

8. Makeup Enhancement

Enhance existing makeup or add subtle, natural-looking makeup.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Enhance the makeup in this portrait photo. Add subtle contouring to define cheekbones, slightly darken and define the eyebrows, add a soft natural lip color, and apply light mascara effect to the lashes. Keep everything looking natural and not overdone."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/natural-portrait.jpg"]
  }'

9. Age Reduction

Subtle, natural-looking age-defying retouching.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Apply subtle age reduction to this portrait. Soften fine lines and wrinkles, reduce sagging under the eyes, lift the corners of the mouth slightly, and add a healthy glow to the skin. The result should look natural - like a well-rested version, not like a different person."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/mature-portrait.jpg"]
  }'

10. Professional Portrait Polish

Complete professional retouching workflow combining multiple enhancements.

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Give this portrait a complete professional polish suitable for a corporate headshot. Apply natural skin smoothing, subtle teeth whitening, eye enhancement with catchlights, blemish removal, soft studio lighting, gentle background blur, and hair touch-up. The final result should look polished but authentic - suitable for LinkedIn or company website."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "image_urls": ["https://example.com/corporate-portrait.jpg"]
  }'

Multi-Turn Enhancement Workflow

Use session_id to iteratively refine portrait enhancements:

# Initial 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" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Start with basic skin smoothing on this portrait"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "portrait-retouch-001",
    "image_urls": ["https://example.com/portrait.jpg"]
  }'

# Add teeth whitening
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Now add subtle teeth whitening to the result"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "portrait-retouch-001"
  }'

# Add eye 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" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Enhance the eyes - brighten and add catchlights"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "portrait-retouch-001"
  }'

# Final background blur
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Finally, add a gentle background blur for a professional look"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "portrait-retouch-001"
  }'

Batch Processing Multiple Portraits

Process multiple portraits with consistent enhancement:

# Portrait 1
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Professional headshot retouch: natural skin smoothing, eye brightening, subtle background blur"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "eco",
    "image_urls": ["https://example.com/team-member-1.jpg"]
  }'

# Portrait 2
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Professional headshot retouch: natural skin smoothing, eye brightening, subtle background blur"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "eco",
    "image_urls": ["https://example.com/team-member-2.jpg"]
  }'

# Portrait 3
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Professional headshot retouch: natural skin smoothing, eye brightening, subtle background blur"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "eco",
    "image_urls": ["https://example.com/team-member-3.jpg"]
  }'

Prompt Tips for Portrait Enhancement

When requesting portrait enhancements, include these details:

  1. Specific Enhancement: What exactly to enhance (skin, eyes, teeth, etc.)
  2. Intensity Level: Subtle, moderate, or dramatic
  3. Natural Look: Emphasize keeping results realistic
  4. Areas to Preserve: Features that should remain unchanged
  5. Use Case: Headshot, social media, print, etc.

Example Prompt Structure

"Apply [enhancement type] to this portrait.
[Specific instructions for the enhancement].
Keep [what to preserve].
The result should look [desired outcome] for [use case]."

Best Practices

Maintaining Realism

  • Always specify "natural looking" or "realistic" in prompts
  • Request preservation of skin texture when smoothing
  • Avoid over-whitening teeth or over-brightening eyes
  • Keep enhancements subtle for professional contexts

Preserving Identity

  • Don't request changes that alter facial structure
  • Preserve natural beauty marks and distinctive features
  • Keep skin tone consistent across the image
  • Maintain natural proportions

Technical Considerations

  • Provide high-resolution source images for best results
  • Images with good initial lighting enhance better
  • Front-facing portraits work best for most enhancements
  • JPG and PNG formats are supported

Error Handling

Error Cause Solution
Failed to create prediction: HTTP 422 Insufficient balance Top up at eachlabs.ai
Content policy violation Prohibited content Ensure portrait is appropriate
Timeout Complex enhancement Set client timeout to minimum 10 minutes
No face detected Face not visible Provide clear portrait with visible face

Related Skills

  • each-sense - Core API documentation
  • face-swap - Face swapping capabilities
  • image-edit - General image editing
  • image-generation - Generate new portraits from scratch

Related skills

ai-image-generationgenmedia-labs713KGenerate and edit images on RunComfy via the `runcomfy` CLI — a smart router across the full image-model catalog: FLUX 2 (Klein 9B/4B, Pro, Dev, Flash, Turbo, Max), Google Nano Banana 2 / Pro, OpenAI GPT Image 2, ByteDance Seedream 5 / 4-5 / 4-0 and Dreamina 4-0, Alibaba Qwen Image and Z-Image Turbo, Wan 2-7. Covers both text-to-image (t2i) and image-to-image / edit (i2i) endpoints — the skill picks the right model for the user's actual intent (typography precision, photoreal portraits, sub-secoai-image-generation101-skills547KGenerate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stnano-banana-2prime-skills424KGenerate images with Google Nano Banana 2 (Gemini-family flash-tier text-to-image) on RunComfy — bundled with the model's documented prompting patterns so the skill gets sharper output than naive prompting against the same model. Documents Nano Banana 2's strengths (rapid iteration, in-image typography rendering, predictable framing, optional web-grounded context), the resolution-tier pricing, the safety-tolerance dial, and when to route to Nano Banana Pro / GPT Image 2 / Flux 2 / Seedream insteimage-editprime-skills424KEdit images on RunComfy — this skill is a smart router that matches the user's intent to the right edit model in the RunComfy catalog. Picks Nano Banana Edit (batch up to 20, identity-preserving default), OpenAI GPT Image 2 Edit (multilingual in-image text rewrite, multi-ref composition, layout precision), Flux Kontext Pro (single-ref high-fidelity local edit), or Z-Image Turbo Inpaint (mask-driven precise region edit). Bundles each model's documented prompting patterns so the skill gets sharper

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers