Loading API documentation
Edit
The client provides a convenient way to interact with the model API.
npm install --save @fal-ai/clientThe @fal-ai/serverless-client package has been deprecated in favor of @fal-ai/client. Install the new package and update your imports — see client setup.
Set FAL_KEY as an environment variable in your runtime.
export FAL_KEY="YOUR_API_KEY"The client API handles the API submit protocol. It will handle the request status updates and return the result when the request is completed.
import { fal } from "@fal-ai/client";
const result = await fal.subscribe("bria/fibo-2/edit", {
input: {
image_urls: ["https://v3b.fal.media/files/b/0aaf2399/7tuRY3UT9tpKwYE1wX_SP_still-logo.png", "https://v3b.fal.media/files/b/0aaf2399/T8kchxC_KKNEEkl-sK-Ge_still-perfume.png", "https://v3b.fal.media/files/b/0aaf2399/9GKzb93bJ0SDaxAQlG0mr_still-background.png"]
},
logs: true,
onQueueUpdate: (update) => {
if (update.status === "IN_PROGRESS") {
update.logs.map((log) => log.message).forEach(console.log);
}
},
});
console.log(result.data);
console.log(result.requestId);The API uses an API Key for authentication. It is recommended you set the FAL_KEY environment variable in your runtime when possible.
import { fal } from "@fal-ai/client";
fal.config({
credentials: "YOUR_FAL_KEY"
});When running code on the client-side (e.g. in a browser, mobile app or GUI applications), make sure to not expose your FAL_KEY. Instead, use a server-side proxy to make requests to the API. For more information, check out our server-side integration guide.
The client API provides a convenient way to submit requests to the model.
import { fal } from "@fal-ai/client";
const { request_id } = await fal.queue.submit("bria/fibo-2/edit", {
input: {
image_urls: ["https://v3b.fal.media/files/b/0aaf2399/7tuRY3UT9tpKwYE1wX_SP_still-logo.png", "https://v3b.fal.media/files/b/0aaf2399/T8kchxC_KKNEEkl-sK-Ge_still-perfume.png", "https://v3b.fal.media/files/b/0aaf2399/9GKzb93bJ0SDaxAQlG0mr_still-background.png"]
},
webhookUrl: "https://optional.webhook.url/for/results",
});You can fetch the status of a request to check if it is completed or still in progress.
import { fal } from "@fal-ai/client";
const status = await fal.queue.status("bria/fibo-2/edit", {
requestId: "764cabcf-b745-4b3e-ae38-1200304cf45b",
logs: true,
});Once the request is completed, you can fetch the result. See the Output Schema for the expected result format.
import { fal } from "@fal-ai/client";
const result = await fal.queue.result("bria/fibo-2/edit", {
requestId: "764cabcf-b745-4b3e-ae38-1200304cf45b"
});
console.log(result.data);
console.log(result.requestId);Some attributes in the API accept file URLs as input. Whenever that's the case you can pass your own URL or a Base64 data URI.
You can pass a Base64 data URI as a file input. The API will handle the file decoding for you. Keep in mind that for large files, this alternative although convenient can impact the request performance.
You can also pass your own URLs as long as they are publicly accessible. Be aware that some hosts might block cross-site requests, rate-limit, or consider the request as a bot.
We provide a convenient file storage that allows you to upload files and use them in your requests. You can upload files using the client API and use the returned URL in your requests.
import { fal } from "@fal-ai/client";
const file = new File(["Hello, World!"], "hello.txt", { type: "text/plain" });
const url = await fal.storage.upload(file);The client will auto-upload the file for you if you pass a binary object (e.g. File, Data).
Read more about file handling in our file upload guide.
1-4 images to edit (files or URLs). The instruction refers to them as <image_1>, <image_2> and so on, in the order they are sent.
instruction stringThe edit, in free-form text. It is expanded into a VGL, which is returned. With 'vgl', the change to make to it.
aspect_ratio EnumOutput aspect ratio, at about one megapixel. Left unset, the output keeps the ratio of the first image. A single image always keeps its own ratio.
Possible enum values: 1:1, 1:2, 1:3, 1:4, 1:5, 2:1, 2:3, 3:1, 3:2, 3:4, 4:1, 4:3, 4:5, 5:1, 5:4, 9:16, 9:21, 10:16, 16:9, 16:10, 21:9
seed integerRandom seed for reproducibility, 0 to 2147483647. Default value: 5555
mask_url stringMask (file or URL) marking the region to regenerate: white where the model should edit, black elsewhere. Single-image requests only, at that image's size. A masked edit comes back at the image's own size, with its own pixels outside the mask.
sync_mode booleanIf true, returns the image directly in the response (increases latency).
A VGL (Visual Generation Language) document. Alone, it is the edit as-is and must carry its 'edit_instruction'. With 'instruction', it is the first image's VGL, the baseline the edit is written from. Accepts what a previous request returned.
{
"image_urls": [
"https://v3b.fal.media/files/b/0aaf2399/7tuRY3UT9tpKwYE1wX_SP_still-logo.png",
"https://v3b.fal.media/files/b/0aaf2399/T8kchxC_KKNEEkl-sK-Ge_still-perfume.png",
"https://v3b.fal.media/files/b/0aaf2399/9GKzb93bJ0SDaxAQlG0mr_still-background.png"
],
"seed": 5555,
"vgl": {
"photographic_characteristics": {
"focus": "Sharp focus on the perfume bottle and boulder",
"depth_of_field": "Shallow atmospheric depth",
"camera_angle": "Eye-level straight-on shot",
"lens_focal_length": "Standard portrait lens (e.g., 50mm-85mm)"
},
"artistic_style": "realistic",
"text_render": [
{
"location": "Upper sky, centered about 15-20% down from the top",
"text": "STILL",
"font": "Serif typeface with wide spacing",
"appearance_details": "Thin elegant capitals with subtle flared strokes, flat and crisp with no shadow",
"size": "Medium",
"color": "Muted warm charcoal grey"
},
{
"location": "Upper sky, directly beneath the word STILL",
"text": "EAU DE PARFUM",
"font": "Serif typeface with wide spacing",
"appearance_details": "Matching small capitals with wide spacing, flat and crisp with no shadow",
"size": "Small",
"color": "Muted warm charcoal grey"
}
],
"edit_instruction": "Create a luxury fragrance poster by placing the perfume bottle from <image_2> upright on the grey boulder in the misty water from <image_3>, and add the minimalist typography from <image_1> in the upper sky.",
"context": "This is a conceptual luxury fragrance advertising campaign designed for a high-end magazine spread or billboard.",
"short_description": "A high-end luxury fragrance poster featuring the perfume bottle from <image_2> centered atop the large grey boulder resting in calm water from <image_3>, with the minimalist typography from <image_1> floating in the misty sky above.",
"background_setting": "Perfectly calm, mirror-like water surface reflecting a dense, soft fog and low cloud sky with a warm peach-cream glow breaking through near the top.",
"lighting": {
"shadows": "Soft contact shadows beneath the perfume bottle on the stone",
"direction": "Top-lit",
"conditions": "Soft diffused fog light with warm peach glow from above"
},
"style_medium": "photograph",
"objects": [
{
"location": "Center, on top of the boulder",
"number_of_objects": 1,
"appearance_details": "Soft diffused fog light wrapping the glass, gentle edge highlights, and a subtle warm glow in the liquid",
"description": "A square clear glass perfume flacon with thick beveled walls, crisp edges, filled with rose-gold liquid, featuring a thin internal dip tube, a short dark metal collar, and a wide matte black cap.",
"texture": "Smooth glass and matte metal",
"orientation": "Upright",
"relationship": "Resting upright on the flat top surface of the large grey boulder",
"shape_and_color": "Square prism, clear glass with rose-gold liquid and black cap",
"relative_size": "Medium within frame"
},
{
"location": "Lower half of the frame",
"number_of_objects": 1,
"appearance_details": "Catches soft diffused light on its upper facets",
"description": "A single large grey boulder with a weathered, slightly rough stone surface sitting in calm water.",
"texture": "Rough, weathered stone",
"orientation": "Static",
"relationship": "Supporting the perfume bottle on its flat top surface and casting a complete reflection in the water below",
"shape_and_color": "Irregular block shape, grey stone",
"relative_size": "Large within frame"
}
],
"aesthetics": {
"mood_atmosphere": "Serene, minimalist, luxurious, and tranquil",
"composition": "Centered editorial composition with rule of thirds horizon",
"color_scheme": "Muted palette of fog grey, slate, blue-grey, and warm peach, accented by rose-gold"
}
}
}The edited image.
Single-element list holding the same image, as the sibling FIBO apps return.
The VGL the edit ran, including its 'edit_instruction'.
{
"image": {
"url": "",
"content_type": "image/png",
"file_name": "z9RV14K95DvU.png",
"file_size": 4404019,
"width": 1024,
"height": 1024
},
"images": [
{
"url": "https://v3b.fal.media/files/b/0aaf2399/wwPQolDDS5akCE74fOgzt_fibo-2-edit-example.png"
}
],
"vgl": {
"photographic_characteristics": {
"focus": "Sharp focus on the perfume bottle and boulder",
"depth_of_field": "Shallow atmospheric depth",
"camera_angle": "Eye-level straight-on shot",
"lens_focal_length": "Standard portrait lens (e.g., 50mm-85mm)"
},
"artistic_style": "realistic",
"text_render": [
{
"location": "Upper sky, centered about 15-20% down from the top",
"text": "STILL",
"font": "Serif typeface with wide spacing",
"appearance_details": "Thin elegant capitals with subtle flared strokes, flat and crisp with no shadow",
"size": "Medium",
"color": "Muted warm charcoal grey"
},
{
"location": "Upper sky, directly beneath the word STILL",
"text": "EAU DE PARFUM",
"font": "Serif typeface with wide spacing",
"appearance_details": "Matching small capitals with wide spacing, flat and crisp with no shadow",
"size": "Small",
"color": "Muted warm charcoal grey"
}
],
"edit_instruction": "Create a luxury fragrance poster by placing the perfume bottle from <image_2> upright on the grey boulder in the misty water from <image_3>, and add the minimalist typography from <image_1> in the upper sky.",
"context": "This is a conceptual luxury fragrance advertising campaign designed for a high-end magazine spread or billboard.",
"short_description": "A high-end luxury fragrance poster featuring the perfume bottle from <image_2> centered atop the large grey boulder resting in calm water from <image_3>, with the minimalist typography from <image_1> floating in the misty sky above.",
"background_setting": "Perfectly calm, mirror-like water surface reflecting a dense, soft fog and low cloud sky with a warm peach-cream glow breaking through near the top.",
"lighting": {
"shadows": "Soft contact shadows beneath the perfume bottle on the stone",
"direction": "Top-lit",
"conditions": "Soft diffused fog light with warm peach glow from above"
},
"style_medium": "photograph",
"objects": [
{
"location": "Center, on top of the boulder",
"number_of_objects": 1,
"appearance_details": "Soft diffused fog light wrapping the glass, gentle edge highlights, and a subtle warm glow in the liquid",
"description": "A square clear glass perfume flacon with thick beveled walls, crisp edges, filled with rose-gold liquid, featuring a thin internal dip tube, a short dark metal collar, and a wide matte black cap.",
"texture": "Smooth glass and matte metal",
"orientation": "Upright",
"relationship": "Resting upright on the flat top surface of the large grey boulder",
"shape_and_color": "Square prism, clear glass with rose-gold liquid and black cap",
"relative_size": "Medium within frame"
},
{
"location": "Lower half of the frame",
"number_of_objects": 1,
"appearance_details": "Catches soft diffused light on its upper facets",
"description": "A single large grey boulder with a weathered, slightly rough stone surface sitting in calm water.",
"texture": "Rough, weathered stone",
"orientation": "Static",
"relationship": "Supporting the perfume bottle on its flat top surface and casting a complete reflection in the water below",
"shape_and_color": "Irregular block shape, grey stone",
"relative_size": "Large within frame"
}
],
"aesthetics": {
"mood_atmosphere": "Serene, minimalist, luxurious, and tranquil",
"composition": "Centered editorial composition with rule of thirds horizon",
"color_scheme": "Muted palette of fog grey, slate, blue-grey, and warm peach, accented by rose-gold"
}
}
}url string* requiredThe URL where the file can be downloaded from.
content_type stringThe mime type of the file.
file_name stringThe name of the file. It will be auto-generated if not provided.
file_size integerThe size of the file in bytes.
width integerThe width of the image in pixels.
height integerThe height of the image in pixels.
short_description stringA short description of the image to be generated.
A list of objects in the image to be generated, along with their attributes and relationships to other objects in the image.
background_setting stringThe background setting of the image to be generated.
The lighting of the image to be generated.
The aesthetics of the image to be generated.
The photographic characteristics of the image to be generated.
style_medium stringThe style medium of the image to be generated.
A list of text to be rendered in the image.
context stringThe context of the image to be generated.
artistic_style stringThe artistic style of the image to be generated.
edit_instruction stringThe edit instruction for the image.
depth_of_field stringThe depth of field in the image to be generated.
focus stringThe focus in the image to be generated.
camera_angle stringThe angle of the camera in the image to be generated.
lens_focal_length stringThe focal length of the lens in the image to be generated.
text string* requiredThe text to render. fibo-2 is also shown an image of it, so it renders as written.
location stringWhere the text sits in the image.
size stringThe size of the text in the image.
color stringThe color of the text.
font stringThe style of the font.
appearance_details stringAny other notable visual details of the text.
description stringA description of the object to be generated.
location stringThe location of the object in the image.
relationship string* requiredThe relationship of the object to other objects in the image.
relative_size stringThe relative size of the object in the image.
shape_and_color stringThe shape and color of the object.
texture stringThe texture of the object.
appearance_details stringThe appearance details of the object.
number_of_objects integerThe number of objects in the image.
pose stringThe pose of the object in the image.
expression stringThe expression of the object in the image.
clothing stringThe clothing of the object in the image.
action stringThe action of the object in the image.
gender stringThe gender of the object in the image.
skin_tone_and_texture stringThe skin tone and texture of the object in the image.
orientation stringThe orientation of the object in the image.
conditions stringThe conditions of the lighting in the image to be generated.
direction stringThe direction of the lighting in the image to be generated.
shadows stringThe shadows in the image to be generated.
composition stringThe composition of the image to be generated.
color_scheme stringThe color scheme of the image to be generated.
mood_atmosphere stringThe mood and atmosphere of the image to be generated.