# Hairstyle Changer Effortlessly transform hairstyles with ultra-realistic results. Same face, different hair — natural, seamless, and stunning. Perfect for before-after previews. ## API Information - **Model Slug:** change-haircut - **Branded URL:** https://www.eachlabs.ai/eachlabs/eachlabs/change-haircut - **Provider:** each::labs - **Category:** Image to Image - **Output Type:** image - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Fixed price per execution: $0.04 - **Estimated Processing Time:** 15 seconds - **Last Updated:** 2026-04-06 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/change-haircut ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.0400 - **Pricing Details:** Fixed price per execution: $0.04 ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Fixed price per execution: $0.04 | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | input_image | string | Yes | - | - | Image of the person's haircut you want to edit. Must be jpeg, png or webp. | | haircut | string | No | No change | No change,Random,Straight,Wavy,Curly,Bob,Pixie Cut,Layered,Messy Bun,High Ponytail,Low Ponytail,Braided Ponytail,French Braid,Dutch Braid,Fishtail Braid,Space Buns,Top Knot,Undercut,Mohawk,Crew Cut,Faux Hawk,Slicked Back,Side-Parted,Center-Parted,Blunt Bangs,Side-Swept Bangs,Shag,Lob,Angled Bob,A-Line Bob,Asymmetrical Bob,Graduated Bob,Inverted Bob,Layered Shag,Choppy Layers,Razor Cut,Perm,Ombré,Straightened,Soft Waves,Glamorous Waves,Hollywood Waves,Finger Waves,Tousled, Feathered,Pageboy,Pigtails,Pin Curls,Rollerset,Twist Out,Bantu Knots,Dreadlocks,Cornrows,Box Braids,Crochet Braids,Double Dutch Braids,French Fishtail Braid,Waterfall Braid,Rope Braid,Heart Braid,Halo Braid,Crown Braid,Braided Crown,Bubble Braid, Bubble Ponytail,Ballerina Braids,Milkmaid Braids,Bohemian Braids,Flat Twist,Crown Twist,Twisted Bun,Twisted Half-Updo,Twist and Pin Updo,Chignon,Simple Chignon,Messy Chignon,French Twist,French Twist Updo,French Roll,Updo,Messy Updo,Knotted Updo, Ballerina Bun,Banana Clip Updo,Beehive,Bouffant,Hair Bow,Half-Up Top Knot,Half-Up,Half-Down,Messy Bun with a Headband, Messy Bun with a Scarf,Messy Fishtail Braid,Sideswept Pixie,Mohawk Fade,Zig-Zag Part,Victory Rolls | An enumeration. | | hair_color | string | No | No change | No change,Random,Blonde,Brunette,Black,Dark Brown,Medium Brown,Light Brown,Auburn,Copper,Red,Strawberry Blonde, Platinum Blonde,Silver,White,Blue,Purple,Pink,Green,Blue-Black,Golden Blonde,Honey Blonde,Caramel,Chestnut,Mahogany, Burgundy,Jet Black,Ash Brown,Ash Blonde,Titanium,Rose Gold | An enumeration. | | gender | string | No | none | none,male,female | An enumeration. | | aspect_ratio | string | No | 1:1 | 1:1,16:9,9:16,4:3,3:4,3:2,2:3,4:5,5:4,21:9,9:21,2:1,1:2 | An enumeration. | | seed | integer | No | - | - | Random seed. Set for reproducible generation | | output_format | string | No | png | jpg,png | An enumeration. | | safety_tolerance | integer | No | 2 | 0–2 | Safety tolerance, 0 is most strict and 2 is most permissive. 2 is currently the maximum allowed. | ## 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": "change-haircut", "input": { "input_image": "https://storage.googleapis.com/magicpoint/inputs/hairstyle-changer-input.jpg" } }' ``` ## 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 **change-haircut — Image-to-Image AI Model** Transform any portrait's hairstyle with ultra-realistic precision using change-haircut, the eachlabs image-to-image AI model that keeps facial identity intact while delivering seamless hair changes. Ideal for before-and-after previews, this model solves the challenge of realistic hair editing without distortions or unnatural blending, producing stunning results in seconds. Developed by eachlabs as part of the eachlabs family, change-haircut excels in AI photo editing for e-commerce and personal styling visualizations, making it a go-to for "change haircut AI" searches. ## 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.