Loading API documentation
Generate
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/generate", {
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-2/generate", {
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-2/generate", {
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/generate", {
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.
prompt stringWhat to generate, in free-form text. It is expanded into a VGL, which is returned. With 'vgl', the change to make to it.
style EnumA style for the generated image. Requires 'prompt'; not with 'image_url', 'vgl' or 'negative_prompt'.
Possible enum values: Kodak Film, Hard Flash, Hazy Dreamy, Rough Realism
image_url stringA reference image (inspire mode). With 'prompt', VGL uses it as a visual reference for the prompt's scene and generates a new image of that scene, not the image. Alone, the VGL describes the image itself, so the result is a close variation of it. Not with 'vgl'.
A VGL (Visual Generation Language) document: the structured JSON description of the scene. Alone, the model renders it as-is. With 'prompt', VGL changes it by the prompt (refine) and the result is rendered. Accepts what a previous request returned. Not with 'image_url' or 'style'.
seed integerRandom seed for reproducibility, 0 to 2147483647. Default value: 5555
aspect_ratio AspectRatioEnumAspect ratio of the image, at about one megapixel. Options: 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 Default value: "1:1"
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
sync_mode booleanIf true, returns the image directly in the response (increases latency).
{
"vgl": {
"photographic_characteristics": {
"focus": "crisp, ultra-sharp focus on the ribbed fabric texture, chain links, sunglasses, and suspended sand grains",
"depth_of_field": "moderately shallow, keeping the subject in sharp focus while the distant background mountains have a soft falloff",
"camera_angle": "low angle",
"lens_focal_length": "wide-angle lens"
},
"lighting": {
"shadows": "a long, sharp shadow cast by the subject across the sand to the right",
"direction": "front-lit from the front-left by the flash, contrasting with the backlit ambient sky",
"conditions": "strong off-camera flash combined with ambient dusk twilight"
},
"background_setting": "Flat scrubby desert featuring sparse dry bushes, subtle footprints in the sand, and low dark silhouetted mountains along the horizon. The sky is a deep cobalt-blue with streaks of grey-violet clouds and a glowing orange and gold sunset band stretching along the left horizon.",
"objects": [
{
"location": "center-right",
"appearance_details": "glossy highlights on skin, windswept hair flying across her face, right arm swinging out behind with fingers spread",
"description": "A young woman with shoulder-length dark brown hair, twisting mid-motion with her body turning away while looking back over her shoulder at the camera with slightly parted lips. She wears wraparound mirrored silver sport sunglasses, a heavy silver chain necklace, a fitted white ribbed tank top, and loose light-grey cargo pants with large side pockets.",
"pose": "twisting mid-motion, turning body away while looking back over shoulder",
"skin_tone_and_texture": "warm skin tone with glossy highlights from the flash",
"orientation": "tilted dynamically, facing slightly left while head turns back",
"clothing": "fitted white ribbed tank top, loose light-grey cargo pants with large side pockets sitting low on hips, heavy silver chain necklace, wraparound mirrored silver sport sunglasses",
"expression": "confident, intense gaze with lips slightly parted",
"relationship": "main subject of the photograph, commanding the frame",
"action": "twisting and looking back over her shoulder while swinging right arm",
"gender": "female",
"shape_and_color": "dynamic human silhouette in white and grey with metallic accents",
"texture": "mixed textures of soft skin, ribbed cotton, heavy metallic links, and smooth synthetic sunglasses",
"relative_size": "large within frame"
},
{
"location": "bottom-left foreground and surrounding legs",
"number_of_objects": 1,
"appearance_details": "individual sand grains sparkling under the hard flash light",
"description": "A burst of kicked-up sand billowing around her legs and to the lower left, with individual grains sharply frozen in mid-air by the flash.",
"texture": "grainy, particulate, and sharp",
"orientation": "scattered horizontally and vertically",
"relationship": "interacts with the model's movement, emphasizing action",
"action": "billowing and suspended in the air",
"shape_and_color": "cloud-like amorphous cluster of sandy beige and golden-brown particles",
"relative_size": "medium"
}
],
"context": "This is a concept for an early-2000s retro-futuristic fashion editorial photograph intended for a high-end style magazine spread.",
"short_description": "An early-2000s fashion editorial photograph capturing a young woman dynamically twisting in a desert at dusk. Lit by a strong off-camera flash against a deep cobalt-blue and orange sunset sky, she wears Y2K-inspired streetwear including mirrored silver sunglasses, a white ribbed tank top, and loose cargo pants, surrounded by kicked-up sand.",
"artistic_style": "realistic",
"style_medium": "photograph",
"aesthetics": {
"mood_atmosphere": "Y2K action-editorial energy, dynamic, confident, edgy, and cinematic",
"composition": "low angle shot, medium-tight framing cropped mid-thigh at the bottom, dynamic off-center placement following the rule of thirds",
"color_scheme": "high contrast palette featuring saturated cobalt blues, warm golden-orange sunset tones, and neutral greys and whites"
}
},
"seed": 5555,
"aspect_ratio": "1:1"
}The generated image.
Single-element list holding the same image, as the sibling FIBO apps return.
The VGL the image was generated from.
{
"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/0aaf2623/1zjIB_bIKvzMpu6fsECUP_fibo-2-generate-example-prod.png"
}
],
"vgl": {
"photographic_characteristics": {
"focus": "crisp, ultra-sharp focus on the ribbed fabric texture, chain links, sunglasses, and suspended sand grains",
"depth_of_field": "moderately shallow, keeping the subject in sharp focus while the distant background mountains have a soft falloff",
"camera_angle": "low angle",
"lens_focal_length": "wide-angle lens"
},
"lighting": {
"shadows": "a long, sharp shadow cast by the subject across the sand to the right",
"direction": "front-lit from the front-left by the flash, contrasting with the backlit ambient sky",
"conditions": "strong off-camera flash combined with ambient dusk twilight"
},
"background_setting": "Flat scrubby desert featuring sparse dry bushes, subtle footprints in the sand, and low dark silhouetted mountains along the horizon. The sky is a deep cobalt-blue with streaks of grey-violet clouds and a glowing orange and gold sunset band stretching along the left horizon.",
"objects": [
{
"location": "center-right",
"appearance_details": "glossy highlights on skin, windswept hair flying across her face, right arm swinging out behind with fingers spread",
"description": "A young woman with shoulder-length dark brown hair, twisting mid-motion with her body turning away while looking back over her shoulder at the camera with slightly parted lips. She wears wraparound mirrored silver sport sunglasses, a heavy silver chain necklace, a fitted white ribbed tank top, and loose light-grey cargo pants with large side pockets.",
"pose": "twisting mid-motion, turning body away while looking back over shoulder",
"skin_tone_and_texture": "warm skin tone with glossy highlights from the flash",
"orientation": "tilted dynamically, facing slightly left while head turns back",
"clothing": "fitted white ribbed tank top, loose light-grey cargo pants with large side pockets sitting low on hips, heavy silver chain necklace, wraparound mirrored silver sport sunglasses",
"expression": "confident, intense gaze with lips slightly parted",
"relationship": "main subject of the photograph, commanding the frame",
"action": "twisting and looking back over her shoulder while swinging right arm",
"gender": "female",
"shape_and_color": "dynamic human silhouette in white and grey with metallic accents",
"texture": "mixed textures of soft skin, ribbed cotton, heavy metallic links, and smooth synthetic sunglasses",
"relative_size": "large within frame"
},
{
"location": "bottom-left foreground and surrounding legs",
"number_of_objects": 1,
"appearance_details": "individual sand grains sparkling under the hard flash light",
"description": "A burst of kicked-up sand billowing around her legs and to the lower left, with individual grains sharply frozen in mid-air by the flash.",
"texture": "grainy, particulate, and sharp",
"orientation": "scattered horizontally and vertically",
"relationship": "interacts with the model's movement, emphasizing action",
"action": "billowing and suspended in the air",
"shape_and_color": "cloud-like amorphous cluster of sandy beige and golden-brown particles",
"relative_size": "medium"
}
],
"context": "This is a concept for an early-2000s retro-futuristic fashion editorial photograph intended for a high-end style magazine spread.",
"short_description": "An early-2000s fashion editorial photograph capturing a young woman dynamically twisting in a desert at dusk. Lit by a strong off-camera flash against a deep cobalt-blue and orange sunset sky, she wears Y2K-inspired streetwear including mirrored silver sunglasses, a white ribbed tank top, and loose cargo pants, surrounded by kicked-up sand.",
"artistic_style": "realistic",
"style_medium": "photograph",
"aesthetics": {
"mood_atmosphere": "Y2K action-editorial energy, dynamic, confident, edgy, and cinematic",
"composition": "low angle shot, medium-tight framing cropped mid-thigh at the bottom, dynamic off-center placement following the rule of thirds",
"color_scheme": "high contrast palette featuring saturated cobalt blues, warm golden-orange sunset tones, and neutral greys and whites"
}
}
}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.
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.
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.
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.