Turn any single photo into a polished professional business headshot, powered by FLUX.1 Kontext [pro]. Pick a background — white, black, gray, neutral, or office — and get a LinkedIn-ready portrait in one step.
Test this model instantly in the Console Playground — no code required
Copy usage instructions for Claude, ChatGPT, or other AI
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/professional-headshot",
"input": {
"input_image": "https://example.com/casual-photo.png",
"gender": "female",
"background": "neutral",
"aspect_ratio": "1:1"
}
}'| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
seed | integer | No | - | Random seed. Set for reproducible generation |
gender | string | No | none | The gender of the person (optional hint) nonemalefemale |
background | string | No | neutral | The background of the headshot whiteblackneutralgrayoffice |
input_image | string | Yes | - | Image of the person to create a professional headshot for (jpeg, png, gif, or webp) |
aspect_ratio | string | No | match_input_image | Aspect 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_format | string | No | png | Output format for the generated image jpgpng |
safety_tolerance | integer | No | 2 | Safety tolerance, 0 is most strict and 2 is most permissive. 2 is currently the maximum allowed. |
There are 3 ways to provide files for the input_image parameter:
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/professional-headshot" \
-F 'input={"prompt":"your prompt here"}' \
-F "file:input_image=@your_file.png"Pass a publicly accessible URL directly. You can also use file_url from the Storage API.
{
"model": "flux-kontext-apps/professional-headshot",
"input": {
"prompt": "your prompt here",
"input_image": "https://example.com/image.jpg"
}
}Common parameters used when calling POST /v1/predictions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | - | Model identifier |
input | object | Yes | - | Object containing the model-specific parameters from the table above |
output_folder | string | No | - | Folder path for output files (max 256 chars, '..' not allowed) |
webhook_url | string | No | - | Webhook URL to call on completion |
is_public | boolean | No | false | If true, output files are also available via permanent public URLs |
A square business headshot on a neutral background from one casual photo
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/professional-headshot",
"input": {
"input_image": "https://example.com/casual-photo.png",
"gender": "female",
"background": "neutral",
"aspect_ratio": "1:1"
}
}'Use the office background and a fixed seed for a consistent team look
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/professional-headshot",
"input": {
"input_image": "https://example.com/selfie.jpg",
"background": "office",
"aspect_ratio": "4:5",
"seed": 42
}
}'POST /v1/predictions