# Change Haircut - Core.Today AI API > Change anyone's hairstyle and hair color from a single photo, powered by FLUX.1 Kontext [pro]. Choose from 90+ hairstyles and 30 hair colors — or let 'Random' surprise you — while keeping the face untouched. - **Provider**: Black Forest Labs - **Model ID**: flux-kontext-apps/change-haircut - **Category**: Image Generation - **Credits**: 93 per image (fixed) - **Speed**: Fast - **Quality**: High ## Features - 90+ hairstyle presets: bobs, braids, updos, fades, waves, and more - 30 hair colors from natural shades to rose gold, blue, and silver - Identity-preserving edits — only the hair changes - 'Random' option for instant style exploration - Independent haircut and hair_color controls (change either or both) ## Use Cases - Virtual hairstyle try-on before visiting the salon - Hair salon consultation and lookbook tools - Hair color simulation for dye product marketing - Character and persona variations for creative projects - Fun social media makeover content ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **input_image**: string - Image of the person whose haircut you want to edit (jpeg, png, gif, or webp) ### Optional - **seed**: integer - Random seed. Set for reproducible generation - **gender**: string (default: none) - The gender of the person (optional hint) Options: none, male, female - **haircut**: string (default: No change) - The hairstyle to apply — 90+ presets including Bob, Pixie Cut, Layered, French Braid, Undercut, Slicked Back, Hollywood Waves, Box Braids, Chignon, and more. 'Random' picks one for you Options: 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 - **hair_color**: string (default: No change) - The hair color to apply. 'Random' picks one for you Options: 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 - **aspect_ratio**: string (default: match_input_image) - Aspect ratio of the generated image. 'match_input_image' keeps the input's ratio Options: match_input_image, 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 - **output_format**: string (default: png) - Output format for the generated image Options: jpg, png - **safety_tolerance**: integer (default: 2) - Safety tolerance, 0 is most strict and 2 is most permissive. 2 is currently the maximum allowed. ## Examples ### Random Makeover Let the model pick both a new hairstyle and hair color ```json { "model": "flux-kontext-apps/change-haircut", "input": { "input_image": "https://example.com/portrait.png", "gender": "none", "haircut": "Random", "hair_color": "Random", "aspect_ratio": "match_input_image" } } ``` ### Color-Only Change Keep the current haircut and try a rose gold color ```json { "model": "flux-kontext-apps/change-haircut", "input": { "input_image": "https://example.com/portrait.png", "haircut": "No change", "hair_color": "Rose Gold" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - Set haircut or hair_color to 'No change' to modify only one of the two - A photo where the hair and hairline are clearly visible produces the most convincing edit - Use a fixed seed to compare different hairstyles on identical renders of the same photo - Dramatic style jumps (e.g. long hair to Crew Cut) work — but results are best when the head isn't cropped - Only edit photos of real people with their consent ## Documentation https://replicate.com/flux-kontext-apps/change-haircut