AI hairstyle changer: try a new cut or color on your photo

Send a clear photo of yourself to an AI image model, describe the haircut or color, and say your face stays. Compare several versions of the preview.

5 min readSume
All posts

An AI hairstyle changer redraws a photo of you with a different haircut or hair color. Use a clear, front-facing photo with your hair in view, send it to an image model that edits from reference images, describe the cut or color precisely (“chin-length bob with curtain bangs, copper red”), and say that your face, expression, and background stay the same. Ask for several versions and compare them. It is a redrawn preview, so it can't show exactly how a cut will fall on your own hair.

On Sume, that is one POST /v1/images request. The facts below come from the Image API docs and the request schema in the Sume API reference, read on 2026-09-28.

How do I try a new hairstyle on my photo?

  • Pick a recent photo: face toward the camera, even light, and the hair you want changed in view.
  • Put it at a public HTTPS URL. Localhost, private-network, and non-HTTPS URLs are rejected before submission.
  • Send it in input_references to a model that edits from reference images, with aspect_ratio: "auto" so the preview keeps the photo's shape. Leaving the field out is not the same as auto.
  • Ask for n: 4 to get four versions in one call, and keep the one that still looks like you.
curl -X POST "https://api.sume.com/v1/images" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-image-2.5",
    "prompt": "Give the person in this photo a chin-length bob with curtain bangs, dyed copper red. Keep their face, skin tone, expression, clothing, and the background exactly as they are.",
    "input_references": [
      { "type": "image_url", "image_url": { "url": "https://example.com/me.jpg" } }
    ],
    "aspect_ratio": "auto",
    "n": 4
  }'

What should a hairstyle prompt say?

Be as specific as a note to a stylist, and end with what stays:

  • Length and shape: “shoulder-length layers”, “a pixie cut with a side part”, “a buzz cut”.
  • Texture and volume: straight, wavy, or curly, and how full.
  • Color: a named shade (“ash blonde”, “espresso brown”), and whether it's all over, highlights, or balayage.
  • Bangs and parting: “curtain bangs”, “a center part”.
  • What stays: “keep the face, skin tone, expression, clothing, and background exactly as they are”.

Can I change only my hair color?

Yes. Say that the cut stays too: “Change the hair color to ash blonde; keep the haircut, the length, and everything else the same.” To compare shades, keep that sentence and change only the color words from one request to the next, starting each time from your original photo. The model still redraws the picture, so check that the length and your face didn't change along with the color.

Can I copy a haircut from another photo?

Yes. Send your photo and a photo of the haircut as two references. A reference carries only its type and URL, with no role field, so the prompt has to say which image is which by what each one shows: “Give the man in the gray T-shirt the textured crop from the other photo; keep his own face, hair color, and clothes.” ChatGPT Image 2.5 takes up to 16 references, and the other edit models take up to 10 today. Image generation API with reference images covers the request in more detail.

Will the preview look like me?

Not guaranteed. The model redraws your whole photo, so your face, skin, or apparent age can change along with the hair. Compare each version with your photo and keep only one that still looks like you. The preview also can't show how a cut will sit on your hair's texture or how a dye will take, so treat it as an idea to show your stylist, not a prediction. Use photos of yourself, or of someone who has agreed. For a studio portrait instead, see AI headshot generator.

What does it cost, and what are the limits?

  • Each completed image is billed, so n: 4 is four images, and a failed or cancelled generation is not billed. Each model's price is in the pricing line of GET /v1/images/models/{model_id}/endpoints, and usage.cost in the response is the USD amount billed.
  • The call waits up to 30 seconds and returns 200 with the images; a slower one returns 202 with a job to poll.
  • Result URLs are Sume-hosted and signed, so download the versions you keep.
From Image API, the Sume API reference, and current Sume API code, read 2026-09-28.
You wantWhat to send
A new cutYour photo in input_references, and a prompt that describes the cut and says your face stays
A new color onlyYour photo, and a prompt with the shade that says the haircut stays
A haircut from another photoBoth photos in input_references, each named in the prompt by what it shows: up to 16 on ChatGPT Image 2.5, 10 on the other edit models
Several versionsn up to 4 on ChatGPT Image 2.5 and the Nano Banana models; Seedream 4.5 returns 1 when you send a photo
The same frame as your photoaspect_ratio: "auto", on models that list it

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume