Skip to main content
Black Forest LabsFastHigh

Change Haircut

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.

93 credits
per image (fixed)
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)

Run it right now

Test this model instantly in the Console Playground — no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "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"
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
seedintegerNo-Random seed. Set for reproducible generation
genderstringNononeThe gender of the person (optional hint)
nonemalefemale
haircutstringNoNo changeThe 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
No changeRandomStraightWavyCurlyBobPixie CutLayeredMessy BunHigh PonytailLow PonytailBraided PonytailFrench BraidDutch BraidFishtail BraidSpace BunsTop KnotUndercutMohawkCrew CutFaux HawkSlicked BackSide-PartedCenter-PartedBlunt BangsSide-Swept BangsShagLobAngled BobA-Line BobAsymmetrical BobGraduated BobInverted BobLayered ShagChoppy LayersRazor CutPermOmbréStraightenedSoft WavesGlamorous WavesHollywood WavesFinger WavesTousledFeatheredPageboyPigtailsPin CurlsRollersetTwist OutBantu KnotsDreadlocksCornrowsBox BraidsCrochet BraidsDouble Dutch BraidsFrench Fishtail BraidWaterfall BraidRope BraidHeart BraidHalo BraidCrown BraidBraided CrownBubble BraidBubble PonytailBallerina BraidsMilkmaid BraidsBohemian BraidsFlat TwistCrown TwistTwisted BunTwisted Half-UpdoTwist and Pin UpdoChignonSimple ChignonMessy ChignonFrench TwistFrench Twist UpdoFrench RollUpdoMessy UpdoKnotted UpdoBallerina BunBanana Clip UpdoBeehiveBouffantHair BowHalf-Up Top KnotHalf-Up, Half-DownMessy Bun with a HeadbandMessy Bun with a ScarfMessy Fishtail BraidSideswept PixieMohawk FadeZig-Zag PartVictory Rolls
hair_colorstringNoNo changeThe hair color to apply. 'Random' picks one for you
No changeRandomBlondeBrunetteBlackDark BrownMedium BrownLight BrownAuburnCopperRedStrawberry BlondePlatinum BlondeSilverWhiteBluePurplePinkGreenBlue-BlackGolden BlondeHoney BlondeCaramelChestnutMahoganyBurgundyJet BlackAsh BrownAsh BlondeTitaniumRose Gold
input_imagestringYes-Image of the person whose haircut you want to edit (jpeg, png, gif, or webp)
aspect_ratiostringNomatch_input_imageAspect ratio of the generated image. 'match_input_image' keeps the input's ratio
match_input_image1:116:99:164:33:43:22:34:55:421:99:212:11:2
output_formatstringNopngOutput format for the generated image
jpgpng
safety_toleranceintegerNo2Safety tolerance, 0 is most strict and 2 is most permissive. 2 is currently the maximum allowed.

How to Provide File Input

There are 3 ways to provide files for the input_image parameter:

Recommended

Direct Upload (Multipart)

Attach files directly to POST /v1/predictions/upload. No separate upload step needed.

curl -X POST "https://api.core.today/v1/predictions/upload" \
  -H "X-API-Key: cdt_your_api_key" \
  -F "model=flux-kontext-apps/change-haircut" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:input_image=@your_file.png"

Image URL

Pass a publicly accessible URL directly. You can also use file_url from the Storage API.

{
  "model": "flux-kontext-apps/change-haircut",
  "input": {
    "prompt": "your prompt here",
    "input_image": "https://example.com/image.jpg"
  }
}
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Random Makeover

Let the model pick both a new hairstyle and hair color

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "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

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "flux-kontext-apps/change-haircut",
  "input": {
    "input_image": "https://example.com/portrait.png",
    "haircut": "No change",
    "hair_color": "Rose Gold"
  }
}'

Tips & Best Practices

1Set haircut or hair_color to 'No change' to modify only one of the two
2A photo where the hair and hairline are clearly visible produces the most convincing edit
3Use a fixed seed to compare different hairstyles on identical renders of the same photo
4Dramatic style jumps (e.g. long hair to Crew Cut) work — but results are best when the head isn't cropped
5Only edit photos of real people with their consent

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

Model Info

ProviderBlack Forest Labs
Version-
CategoryImage Generation
Price93 credits

API Endpoint

POST /v1/predictions
Try in ConsoleBack to Docs