Edit Open
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-edit-1.5/edit", {
input: {},
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-edit-1.5/edit", {
input: {},
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-edit-1.5/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-edit-1.5/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 reference images (files or URLs). Order is significant: the instruction is resolved against the images in the order they are sent.
instruction stringInstruction for image editing.
aspect_ratio EnumOutput aspect ratio. Left unset, the output keeps the ratio of the first reference image. A chosen ratio applies only with two or more reference images; with a single reference the output keeps that image's ratio either way.
Possible enum values: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9
seed integerRandom seed for reproducibility. Default value: 5555
mask_url stringMask (file or URL) marking the region to regenerate: white where the model should edit, black elsewhere. Single-reference requests only, and it must be the same size as that image. A masked edit comes back at the reference's own resolution.
sync_mode booleanIf true, returns the image directly in the response (increases latency).
A pre-built structured prompt, used verbatim instead of having VGL build one when no instruction is sent. Accepts what a previous edit returned.
{
"image_urls": [
"https://v3b.fal.media/files/b/0aa69153/6d2UFjgrQCRM6BoWpXpZ3_126_1.jpg",
"https://v3b.fal.media/files/b/0aa69153/Gy-fjFofCbQP9w3lsfc2e_126_2.jpg"
],
"instruction": "Uncross her arms and place the serum bottle in her right hand raised beside her face, label toward the camera.",
"seed": 5555
}The edited image, in the source aspect ratio unless aspect_ratio was set.
Single-element list holding the same image, kept for callers of the earlier Fibo Edit endpoint.
The structured instruction the model ran, expanded from the built-in instruction plus anything passed in instruction. Returned so you can see how the brief was interpreted.
{
"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/0aa6910f/ie5dAn55wDh7Y1adCFGyE_85a45d82c6d141c2a28d92367596dfac.png"
}
]
}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.
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.
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.
aesthetic_score stringThe aesthetic score of the image to be generated.
preference_score stringThe preference score of the image to be generated.
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.
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.