Skip to main content
ArtEmotion
Image

Flux PuLID

Credit-based pricing. Supports reference images, batch up to 4.

Flux PuLID preview
Output
image
Aspect ratio
1:1, 16:9, 9:16, 4:3, 3:4
Resolution
1024
Max batch
4

Inputs

  • Reference image (required)
  • Batch up to 4 per request

Example prompt

The same person in a sun-drenched Santorini café, wearing a white linen dress, soft morning light, editorial fashion photography
Try this prompt →
LLM-ready

API & LLM schema

Exact request contract for this model. Agents can fetch it from /api/v1/models?id=fal-ai/flux-pulid.

POST/api/v1/generate20 fields · 3 required
FieldTypeRequirementContract
model_idconstantRequiredArtEmotion model identifier.
extraobjectOptionalModel-specific settings may also be nested here.
max_creditsnumberOptionalReject before submission if the estimated list price exceeds this cap. · Range: 1–…
webhook_urlstringOptionalFormat: uri
webhook_secretstringOptionalOptional model input.
folder_idstringOptionalOptional model input.
promptstringRequiredOptional model input.
num_inference_stepsnumberOptionalNumber of denoising steps. Higher = more detail. · Default: 20 · Range: 1–50
id_weightnumberOptionalStrength of face identity preservation. Higher = closer match to the reference. · Default: 1 · Range: 0–1
guidance_scalenumberOptionalHow closely the model follows the prompt. · Default: 4 · Range: 0–20
true_cfgnumberOptionalTrue classifier-free guidance scale. 1 uses the faster distilled guidance; above 1 switches to real CFG. · Default: 1 · Range: 1–10
start_stepnumberOptionalDenoising step at which identity conditioning kicks in. Later start = more prompt freedom, weaker likeness. · Default: 0 · Range: 0–50
max_sequence_lengthstringOptionalMaximum prompt token length. Longer allows more detailed prompts at some speed cost. · Allowed: 128, 256, 512 · Default: 128
negative_promptstringOptionalElements to exclude from the generated image. · Default:
enable_safety_checkerbooleanOptionalWhether to enable the safety checker. · Default: true
seedintegerOptionalRandom seed for reproducibility.
aspect_ratiostringOptionalAllowed: 1:1, 16:9, 9:16, 4:3, 3:4
resolutionstringOptionalAllowed: 1024
num_imagesintegerOptionalRange: 1–4
reference_image_urlstringRequiredFormat: uri
Minimal request example
{
  "model_id": "fal-ai/flux-pulid",
  "prompt": "The same person in a sun-drenched Santorini café, wearing a white linen dress, soft morning light, editorial fashion photography",
  "reference_image_url": "https://example.com/reference_image"
}
Raw JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.artemotion.ai/api/v1/models?id=fal-ai%2Fflux-pulid",
  "title": "Flux PuLID generation request",
  "description": "Request body accepted by POST /api/v1/generate for fal-ai/flux-pulid.",
  "type": "object",
  "properties": {
    "model_id": {
      "type": "string",
      "const": "fal-ai/flux-pulid",
      "description": "ArtEmotion model identifier."
    },
    "extra": {
      "type": "object",
      "additionalProperties": true,
      "description": "Model-specific settings may also be nested here."
    },
    "max_credits": {
      "type": "number",
      "minimum": 1,
      "description": "Reject before submission if the estimated list price exceeds this cap."
    },
    "webhook_url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048
    },
    "webhook_secret": {
      "type": "string",
      "maxLength": 512
    },
    "folder_id": {
      "type": "string"
    },
    "prompt": {
      "type": "string"
    },
    "num_inference_steps": {
      "title": "Steps",
      "description": "Number of denoising steps. Higher = more detail.",
      "default": 20,
      "type": "number",
      "minimum": 1,
      "maximum": 50,
      "multipleOf": 1
    },
    "id_weight": {
      "title": "Identity Weight",
      "description": "Strength of face identity preservation. Higher = closer match to the reference.",
      "default": 1,
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "multipleOf": 0.05
    },
    "guidance_scale": {
      "title": "Guidance Scale",
      "description": "How closely the model follows the prompt.",
      "default": 4,
      "type": "number",
      "minimum": 0,
      "maximum": 20,
      "multipleOf": 0.5
    },
    "true_cfg": {
      "title": "True CFG",
      "description": "True classifier-free guidance scale. 1 uses the faster distilled guidance; above 1 switches to real CFG.",
      "default": 1,
      "type": "number",
      "minimum": 1,
      "maximum": 10,
      "multipleOf": 0.5
    },
    "start_step": {
      "title": "ID Start Step",
      "description": "Denoising step at which identity conditioning kicks in. Later start = more prompt freedom, weaker likeness.",
      "default": 0,
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
    },
    "max_sequence_length": {
      "title": "Max Sequence Length",
      "description": "Maximum prompt token length. Longer allows more detailed prompts at some speed cost.",
      "default": "128",
      "type": "string",
      "enum": [
        "128",
        "256",
        "512"
      ]
    },
    "negative_prompt": {
      "title": "Negative Prompt",
      "description": "Elements to exclude from the generated image.",
      "default": "",
      "type": "string"
    },
    "enable_safety_checker": {
      "title": "Enable Safety Checker",
      "description": "Whether to enable the safety checker.",
      "default": true,
      "type": "boolean"
    },
    "seed": {
      "title": "Seed",
      "description": "Random seed for reproducibility.",
      "type": "integer"
    },
    "aspect_ratio": {
      "type": "string",
      "enum": [
        "1:1",
        "16:9",
        "9:16",
        "4:3",
        "3:4"
      ]
    },
    "resolution": {
      "type": "string",
      "enum": [
        "1024"
      ]
    },
    "num_images": {
      "type": "integer",
      "minimum": 1,
      "maximum": 4
    },
    "reference_image_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "model_id",
    "prompt",
    "reference_image_url"
  ],
  "additionalProperties": false
}

FAQ

How much does Flux PuLID cost on ArtEmotion?

Credit-based pricing. You pay in ArtEmotion credits — every plan and top-up converts USD to credits at a fixed rate.

Do I get my credits back if Flux PuLID fails?

Yes — failed generations are never charged. The credits are released back to your balance automatically.

Can I call Flux PuLID from the API?

Yes. Use POST /api/v1/generate with model_id: "fal-ai/flux-pulid". See the API reference for the full schema.

Where are my generations stored?

Every output is saved to your personal Library. You can export or delete everything any time from Privacy & deletion.

Ready to generate with Flux PuLID?

Start now →

No commitment. New accounts get 50 free credits on signup. See pricing.