Skip to main content
ByteDanceFastHigh

PuLID

ByteDance PuLID: tuning-free identity customization on SDXL. Give it one face photo and a prompt to generate portraits in any scene or style โ€” no training, 4-step fast sampling, and even two-identity blending. Extremely cost-effective at 2 credits per image.

6 credits
1 credit x num_samples (default 4 images = 6 credits)
Tuning-free identity preservation from a single face photo
Lightning-fast 4-step sampling on SDXL
mix_identities: blend two different faces into one person
fidelity vs 'extremely style' generation modes
Up to 8 images per run at just 2 credits each

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": "bytedance/pulid",
  "input": {
    "main_face_image": "https://example.com/face.webp",
    "prompt": "portrait, impressionist painting, loose brushwork, vibrant color, light and shadow play",
    "num_samples": 4,
    "identity_scale": 0.8,
    "generation_mode": "fidelity"
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
promptstringNoportrait,color,cinematic,in garden,soft light,detailed faceText prompt describing the scene and style
main_face_imagestringYes-ID image (main face photo)
auxiliary_face_image1stringNo-Additional ID image โ€” the second face when mix_identities is on
auxiliary_face_image2stringNo-Additional ID image (auxiliary)
auxiliary_face_image3stringNo-Additional ID image (auxiliary)
negative_promptstringNoflaws in the eyes, flaws in the face, flaws, lowres, non-HDRi, low quality, worst quality,artifacts noise, text, watermark, glitch, deformed, mutated, ugly, disfigured, hands, low resolution, partially rendered objects, deformed or partially rendered eyes, deformed, deformed eyeballs, cross-eyed,blurryNegative Prompt
cfg_scalenumberNo1.2CFG, recommend value range [1, 1.5], 1 will be faster
num_stepsintegerNo4Sampling steps (1-100). 4 is the fast lightning default
image_heightintegerNo1024Output height in pixels (512-2024)
image_widthintegerNo768Output width in pixels (512-2024)
identity_scalenumberNo0.8ID scale (0-5). Higher preserves the face more strongly
generation_modestringNofidelity'fidelity' prioritizes likeness; 'extremely style' prioritizes stylization
fidelityextremely style
mix_identitiesbooleanNofalseTurn on to mix two ID images into one identity (use auxiliary_face_image1)
seedintegerNo-Random seed. Leave blank to randomize
num_samplesintegerNo4Number of images to generate (1-8). Billed at 2 credits per image
output_formatstringNowebpFormat of the output images
webpjpgpng
output_qualityintegerNo80Quality of the output images, from 0 to 100. 100 is best quality, 0 is lowest quality.

How to Provide File Input

There are 3 ways to provide files for the main_face_imageauxiliary_face_image1 parameters:

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=bytedance/pulid" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:main_face_image=@your_file.png"

Image URL

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

{
  "model": "bytedance/pulid",
  "input": {
    "prompt": "your prompt here",
    "main_face_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

Impressionist Portrait Set

Four impressionist-painting portraits of the same person from one 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": "bytedance/pulid",
  "input": {
    "main_face_image": "https://example.com/face.webp",
    "prompt": "portrait, impressionist painting, loose brushwork, vibrant color, light and shadow play",
    "num_samples": 4,
    "identity_scale": 0.8,
    "generation_mode": "fidelity"
  }
}'

Two-Face Identity Mix

Blend two face photos into a single new character

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/pulid",
  "input": {
    "main_face_image": "https://example.com/face-a.jpg",
    "auxiliary_face_image1": "https://example.com/face-b.jpg",
    "mix_identities": true,
    "prompt": "portrait, color, cinematic, soft light, detailed face",
    "num_samples": 2
  }
}'

Tips & Best Practices

1num_samples defaults to 4 (8 credits) โ€” set it to 1 for a 2-credit test run
2Raise identity_scale toward 1.2-2 if the face drifts; lower it if outputs look stiff
3Use 'extremely style' mode for heavy stylization like paintings; 'fidelity' for realistic likeness
4For mix_identities, provide the second face via auxiliary_face_image1 and keep both photos front-facing
5Only use photos of real people with their consent

Use Cases

Bulk avatar and profile picture generation on a budget
Stylized portraits โ€” paintings, cinematic, illustration
Rapid identity-consistent concept exploration
Blending two faces for fictional character design
Batch persona imagery for games and communities