Skip to main content
Endpoint: POST https://fal.run/fal-ai/flux-pro/v1/fill Endpoint ID: fal-ai/flux-pro/v1/fill

Try it in the Playground

Run this model interactively with your own prompts.

Quick Start

import fal_client

def on_queue_update(update):
    if isinstance(update, fal_client.InProgress):
        for log in update.logs:
           print(log["message"])

result = fal_client.subscribe(
    "fal-ai/flux-pro/v1/fill",
    arguments={
        "prompt": "A knight in shining armour holding a greatshield with \"FAL\" on it",
        "image_url": "https://storage.googleapis.com/falserverless/flux-lora/example-images/knight.jpeg",
        "mask_url": "https://storage.googleapis.com/falserverless/flux-lora/example-images/mask_knight.jpeg"
    },
    with_logs=True,
    on_queue_update=on_queue_update,
)
print(result)

Input Schema

prompt
string
required
The prompt to fill the masked part of the image.
seed
integer
The same seed and the same prompt given to the same version of the model will output the same image every time.
sync_mode
boolean
default:"false"
If True, the media will be returned as a data URI and the output data won’t be available in the request history.
num_images
integer
default:"1"
The number of images to generate. Default value: 1Range: 1 to 4
output_format
OutputFormatEnum
default:"jpeg"
The format of the generated image. Default value: "jpeg"Possible values: jpeg, png
safety_tolerance
SafetyToleranceEnum
default:"2"
The safety tolerance level for the generated image. 1 being the most strict and 5 being the most permissive. Default value: "2"Possible values: 1, 2, 3, 4, 5, 6
enhance_prompt
boolean
default:"false"
Whether to enhance the prompt for better results.
image_url
string
required
The image URL to generate an image from. Needs to match the dimensions of the mask.
mask_url
string
required
The mask URL to inpaint the image. Needs to match the dimensions of the input image.

Output Schema

images
list<registry__image__fast_sdxl__models__Image>
required
The generated image files info.
timings
Timings
required
seed
integer
required
Seed of the generated Image. It will be the same value of the one passed in the input or the randomly generated that was used in case none was passed.
has_nsfw_concepts
list<boolean>
required
Whether the generated images contain NSFW concepts.
prompt
string
required
The prompt used for generating the image.

Input Example

{
  "prompt": "A knight in shining armour holding a greatshield with \"FAL\" on it",
  "sync_mode": false,
  "num_images": 1,
  "output_format": "jpeg",
  "safety_tolerance": "2",
  "enhance_prompt": false,
  "image_url": "https://storage.googleapis.com/falserverless/flux-lora/example-images/knight.jpeg",
  "mask_url": "https://storage.googleapis.com/falserverless/flux-lora/example-images/mask_knight.jpeg"
}

Output Example

{
  "images": [
    {
      "url": "",
      "content_type": "image/jpeg"
    }
  ],
  "prompt": ""
}
Black Forest Labs’ FLUX.1 [pro] delivers professional-grade inpainting at $0.05 per megapixel. Trading broad creative generation for surgical precision, this endpoint excels at targeted modifications, replacing objects, filling gaps, or seamlessly blending new elements into existing compositions without regenerating entire images. Use Cases: Product photo editing | Architectural visualization refinement | E-commerce asset modification

Performance

FLUX.1 [pro] Fill operates at competitive inference speeds while maintaining the quality standards of the full FLUX.1 [pro] architecture, with cost scaling directly to output resolution rather than flat per-inference pricing.
MetricResultContext
Cost per Megapixel$0.05Billed by rounding up to nearest megapixel
Output Range1-4 imagesSingle API call supports batch generation
Safety Tolerance6 levels (1-6)Configurable content moderation strictness
Output FormatsJPEG, PNGStandard web-optimized formats
Related EndpointsFLUX.1 Kontext [pro], FLUX.1 Kontext [max]Context-aware variants for multi-reference workflows

Precision Inpainting Without Full Regeneration

FLUX.1 [pro] Fill operates through mask-based editing rather than full image regeneration, requiring three inputs: your base image, a mask defining the edit region, and a text prompt describing the desired fill content. This approach preserves everything outside the mask untouched while applying FLUX.1 [pro]‘s generation quality only where needed. What this means for you:
  • Surgical precision: Modify specific objects or regions without risking changes to surrounding elements, critical for product photography where brand consistency matters
  • Dual-input control: Mask URL and image URL parameters enable programmatic workflows where masks are generated separately (edge detection, object segmentation, manual selection tools)
  • Prompt enhancement option: Optional enhance_prompt parameter applies FLUX’s prompt optimization to your instructions, improving interpretation of complex editing requests
  • Batch efficiency: Generate up to 4 variations per API call with different seeds, useful for A/B testing edits or exploring alternative fills for the same masked region

Technical Specifications

SpecDetails
ArchitectureFLUX.1 [pro]
Input FormatsImage URL (JPEG, PNG, WebP, GIF, AVIF) + Mask URL (matching dimensions)
Output FormatsJPEG, PNG
Resolution HandlingVariable (billed per megapixel, rounded up)
LicenseCommercial use permitted via fal partnership
API Documentation | Quickstart Guide | Enterprise Pricing

How It Stacks Up

**FLUX.1 Kontext [pro] (0.055/MP)FLUX.1[pro]Fill(0.055/MP)** – FLUX.1 [pro] Fill (0.05/MP) focuses on single-mask inpainting with straightforward prompt-based fills at 9% lower cost. FLUX.1 Kontext [pro] adds multi-reference image conditioning via URL arrays, enabling style transfer and context-aware fills for workflows requiring visual examples beyond text prompts. **FLUX.1 Kontext [max] (0.11/MP)FLUX.1[pro]Filldeliverscoreinpaintingfunctionalityat550.11/MP)** – FLUX.1 [pro] Fill delivers core inpainting functionality at 55% lower cost (0.05 vs $0.11 per megapixel). FLUX.1 Kontext [max] trades cost efficiency for maximum quality output and enhanced multi-reference capabilities, ideal for high-end commercial work where generation fidelity justifies premium pricing.

Limitations

  • num_images range: 1 to 4
  • output_format restricted to: jpeg, png
  • safety_tolerance restricted to: 1, 2, 3, 4, 5, 6
  • finetune_strength range: 0 to 2