PuLID identity customization on FLUX-dev: generate photorealistic portraits of a specific person from one face photo, with markedly higher fidelity than SDXL-based variants. Tune id_weight and start_step to balance likeness against prompt editability.
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": "bytedance/flux-pulid",
"input": {
"main_face_image": "https://example.com/woman.png",
"prompt": "a woman holding sign with glowing green text \"PuLID for FLUX\"",
"width": 896,
"height": 1152,
"start_step": 4,
"num_outputs": 4
}
}'| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | No | portrait, color, cinematic | Text prompt to guide image generation |
main_face_image | string | Yes | - | ID image for face generation |
negative_prompt | string | No | bad quality, worst quality, text, signature, watermark, extra limbs, low resolution, partially rendered objects, deformed or partially rendered eyes, deformed, deformed eyeballs, cross-eyed, blurry | Enter a negative prompt to specify what to avoid in the image |
width | integer | No | 896 | Output width in pixels (256-1536) |
height | integer | No | 1152 | Output height in pixels (256-1536) |
num_steps | integer | No | 20 | Number of denoising steps (1-20) |
start_step | integer | No | 0 | Timestep to start inserting ID (0-10). 0 for highest fidelity, 4 for more editability |
guidance_scale | number | No | 4 | Guidance scale for text prompt influence (1.0-10.0) |
id_weight | number | No | 1 | Weight of the ID image influence (0.0-3.0) |
seed | integer | No | - | Random seed (leave blank or -1 for random) |
true_cfg | number | No | 1 | Set the Classifier-Free Guidance (CFG) scale. 1.0 uses standard CFG, while values >1.0 enable True CFG for more precise control over generation. Higher values increase adherence to the prompt at the cost of image quality. |
max_sequence_length | integer | No | 128 | Set the max sequence length for prompt (T5), smaller is faster (128-512) |
output_format | string | No | webp | Format of the output image pngjpgwebp |
output_quality | integer | No | 80 | Set the quality of the output image for jpg and webp (1-100) |
num_outputs | integer | No | 1 | Number of images to generate (1-4). Billed at 60 credits per image |
There are 3 ways to provide files for the main_face_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=bytedance/flux-pulid" \
-F 'input={"prompt":"your prompt here"}' \
-F "file:main_face_image=@your_file.png"Pass a publicly accessible URL directly. You can also use file_url from the Storage API.
{
"model": "bytedance/flux-pulid",
"input": {
"prompt": "your prompt here",
"main_face_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 |
FLUX handles in-scene text while keeping the face โ four variations at once
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "bytedance/flux-pulid",
"input": {
"main_face_image": "https://example.com/woman.png",
"prompt": "a woman holding sign with glowing green text \"PuLID for FLUX\"",
"width": 896,
"height": 1152,
"start_step": 4,
"num_outputs": 4
}
}'start_step 0 and a single output for the closest likeness
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "bytedance/flux-pulid",
"input": {
"main_face_image": "https://example.com/face.jpg",
"prompt": "portrait, color, cinematic, studio lighting, detailed face",
"start_step": 0,
"id_weight": 1,
"num_outputs": 1
}
}'POST /v1/predictions