Flux Dev Fill
FLUX.1 [dev] Fill is a high-performance endpoint for the FLUX.1 [dev] model that enables rapid transformation of existing images, delivering high-quality style transfers and image modifications with the core FLUX capabilities.
Features
FLUX.1 Fill [dev] is a 12-billion-parameter rectified flow transformer developed by Black Forest Labs for advanced image inpainting and outpainting tasks. By providing an input image, a corresponding mask, and a textual prompt, users can seamlessly fill or extend specific regions of an image with contextually appropriate content. This model is trained using guidance distillation, ensuring efficient performance and high-quality outputs.
Key Features
- High-Quality Inpainting and Outpainting: Delivers professional-grade results, second only to the FLUX.1 Fill [pro] model, enabling precise image modifications.
- Text-Guided Image Completion: Combines user-provided prompts with image masks to generate coherent and contextually relevant content within specified regions.
- Guidance Distillation Training: Employs advanced training techniques to enhance efficiency and output quality.
- Open Weights for Research and Development: Provides open access to model weights, facilitating scientific research and creative exploration.
- Integration with Diffusers Library: Compatible with the Diffusers Python library, allowing for easy implementation and experimentation.
ComfyUI
flux-dev-fill is compatible with ComfyUI, offering a node-based workflow for local inference. This integration allows users to customize their video generation processes flexibly and efficiently on their systems.
Limitations
- Non-Factual Output: Not intended to provide factual information; outputs are generated based on statistical patterns.
- Potential Bias: As a statistical model, it may reflect or amplify societal biases present in the training data.
- Prompt Sensitivity: The quality and relevance of generated outputs are heavily influenced by the input prompts and mask accuracy.
- Visual Artifacts: May produce slight color shifts in unedited areas or visible seams when filling complex textures.
- License Restrictions: Released under a non-commercial license, restricting use to non-commercial purposes.
Out-of-Scope Use
The model and its derivatives may not be used in any way that violates applicable national, federal, state, local, or international law or regulation, including but not limited to:
- Exploiting, harming, or attempting to exploit or harm minors, including solicitation, creation, acquisition, or dissemination of child exploitative content.
- Generating or disseminating verifiably false information with the intent to harm others.
- Creating or distributing personal identifiable information that could be used to harm an individual.
- Harassing, abusing, threatening, stalking, or bullying individuals or groups.
- Producing non-consensual nudity or illegal pornographic content.
- Making fully automated decisions that adversely affect an individual’s legal rights or create binding obligations.
- Facilitating large-scale disinformation campaigns.
Accelerated Inference
Our accelerated inference approach leverages advanced optimization technology from WavespeedAI. This innovative fusion technique significantly reduces computational overhead and latency, enabling rapid image generation without compromising quality. The entire system is designed to efficiently handle large-scale inference tasks while ensuring that real-time applications achieve an optimal balance between speed and accuracy. For further details, please refer to the blog post.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v2/wavespeed-ai/flux-dev-fill" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"image": "https://d2g64w682n9w0w.cloudfront.net/media/images/1744615436393571881_DBAxtpli.jpeg",
"mask_image": "https://d2g64w682n9w0w.cloudfront.net/media/ec44bbf6abac4c25998dd2c4af1a46a7/images/1744871664205957932_nwvstvso.jpeg",
"prompt": "A knight in shining armour holding a greatshield with 'wavespeed.ai' on it",
"size": "1024*1024",
"num_inference_steps": 28,
"seed": 0,
"guidance_scale": 30,
"num_images": 1,
"loras": [
{
"path": "linoyts/yarn_art_Flux_LoRA",
"scale": 1
}
],
"enable_safety_checker": true
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v2/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
Parameter | Type | Required | Default | Range | Description |
---|---|---|---|---|---|
image | string | Yes | https://d2g64w682n9w0w.cloudfront.net/media/images/1744615436393571881_DBAxtpli.jpeg | - | The URL of the image to generate an image from. |
mask_image | string | No | https://d2g64w682n9w0w.cloudfront.net/media/ec44bbf6abac4c25998dd2c4af1a46a7/images/1744871664205957932_nwvstvso.jpeg | - | The URL of the mask image to generate an image from. |
prompt | string | No | A knight in shining armour holding a greatshield with 'wavespeed.ai' on it | - | The prompt to generate an image from. |
size | string | No | 1024*1024 | 512 ~ 1536 per dimension | The size of the generated image. |
num_inference_steps | integer | No | 28 | 1 ~ 50 | The number of inference steps to perform. |
seed | integer | No | - | -1 ~ 9999999999 | The same seed and the same prompt given to the same version of the model will output the same image every time. |
guidance_scale | number | No | 30 | 28 ~ 35 | The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you. |
num_images | integer | No | 1 | 1 ~ 4 | The number of images to generate. |
loras | array | No | [] | max 5 items | List of LoRAs to apply (max 5) |
loras[].path | string | Yes | - | Path to the LoRA model | |
loras[].scale | float | Yes | - | 0.0 ~ 4.0 | Scale of the LoRA model |
enable_safety_checker | boolean | No | true | - | If set to true, the safety checker will be enabled. |
Response Parameters
Parameter | Type | Description |
---|---|---|
code | integer | HTTP status code (e.g., 200 for success) |
message | string | Status message (e.g., “success”) |
data.id | string | Unique identifier for the prediction, Task Id |
data.model | string | Model ID used for the prediction |
data.outputs | array | Array of URLs to the generated content (empty when status is not completed ) |
data.urls | object | Object containing related API endpoints |
data.urls.get | string | URL to retrieve the prediction result |
data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
data.status | string | Status of the task: created , processing , completed , or failed |
data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
data.error | string | Error message (empty if no error occurred) |
data.timings | object | Object containing timing details |
data.timings.inference | integer | Inference time in milliseconds |
Result Query Parameters
Result Request Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
id | string | Yes | - | Task ID |
Result Response Parameters
Parameter | Type | Description |
---|---|---|
code | integer | HTTP status code (e.g., 200 for success) |
message | string | Status message (e.g., “success”) |
data | object | The prediction data object containing all details |
data.id | string | Unique identifier for the prediction |
data.model | string | Model ID used for the prediction |
data.outputs | array | Array of URLs to the generated content (empty when status is not completed ) |
data.urls | object | Object containing related API endpoints |
data.urls.get | string | URL to retrieve the prediction result |
data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
data.status | string | Status of the task: created , processing , completed , or failed |
data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
data.error | string | Error message (empty if no error occurred) |
data.timings | object | Object containing timing details |
data.timings.inference | integer | Inference time in milliseconds |