Guide
Bria FIBO 2.0 Text-to-Image and Image-to-Image: Parameters, Prompts, and Call Examples
Two models, 21 aspect ratios, $0.0572 per image: a complete guide from prompts to mask editing
- Model
- fibo-2.0
On this page
Two model entry points for Bria FIBO 2.0
Bria FIBO 2.0 offers two models on the platform: Bria FIBO 2.0 Text-to-Image (fibo-2.0/text-to-image) generates an image from a prompt, and Bria FIBO 2.0 Image-to-Image (fibo-2.0/image-to-image) edits an existing image according to natural-language instructions. Both have the same pricing, $0.0572 per image; output is about 1 megapixel, and at a 1:1 aspect ratio it is 1024×1024.
Bria trains its models on licensed data, making them suitable for commercial use. The model has strong control over photographic elements such as camera angle, lighting, depth of field, and composition, which is the most valuable capability to take advantage of when using it: instead of piling on adjectives, write these elements as explicit descriptions that can be adjusted section by section.
Three types of work well suited to it
- Camera angle and lighting adjustments for existing assets: You have a finished product photo or portrait and only want to change the viewpoint to a 45-degree overhead shot or change the lighting from noon to dusk, without changing the person's pose, clothing, or background. Image-to-Image excels at changing just one attribute while keeping everything else unchanged, which makes it a good fit for this type of request.
- Scene concept images in a specified style: Use a structured description to spell out the scene, camera angle, and lighting, then choose one style from Kodak Film, Hard Flash, Hazy Dreamy, or Rough Realism for early visual direction exploration.
- Masked local replacements: Change only one area of the image, such as replacing a decorative object on a table or swapping out a sign in the background. Use a black-and-white mask to define the area, and leave the rest unchanged.

How to use the parameters
The two models have different input structures: the core field for Text-to-Image is prompt, and the core field for Image-to-Image is instruction. The field names are similar, but their values and constraints differ, so it is safer to review them separately.
Bria FIBO 2.0 Text-to-Image (fibo-2.0/text-to-image)
| Parameter | Required | Description |
|---|---|---|
| prompt | Required | Description of the image; it is recommended to write it using the six-section structure described below. |
| style | Optional | Choose one of four: Kodak Film, Hard Flash, Hazy Dreamy, or Rough Realism. Mutually exclusive with image_url; do not pass both. |
| image_url | Optional | A single reference image; must be a publicly accessible http/https URL. Mutually exclusive with style; do not pass both. |
| aspect_ratio | Optional | 21 possible values; default is 1:1. |
| seed | Optional | Integer, 0–2147483647, default 5555. The same seed plus the same prompt reproduces the result. |
The 21 aspect_ratio values are 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 16:10, 10:16, 2:1, 1:2, 21:9, 9:21, 3:1, 1:3, 4:1, 1:4, 5:1, and 1:5. If omitted, the image is generated at 1:1. Total output is about 1 megapixel; the aspect ratio only changes how the width and height are allocated.
style and image_url cannot be used together, so validate this in your code before submitting: pass style when you need a fixed style, and pass image_url when you need to reference the visual characteristics of a specific image; choose only one. Parameter conflicts are not automatically resolved during image generation, so catching them early saves time compared with troubleshooting afterward.
Bria FIBO 2.0 Image-to-Image (fibo-2.0/image-to-image)
| Parameter | Required | Description |
|---|---|---|
| instruction | Required | Use natural language to clearly state what to change; you can reference specific images with <image_1> and <image_2>. |
| image_urls | Required | 1–4 images. The first image is the one being edited; the rest serve as reference images. |
| mask_url | Optional | Black-and-white mask; white areas indicate the parts to change, and the dimensions must match the original image. When mask_url is passed, image_urls can contain only 1 image. |
| aspect_ratio | Optional | The same 21 values as Text-to-Image. If omitted, it follows the first image. |
| seed | Optional | Default 5555. |
The order of image_urls matters: the first image determines the subject being edited, and the other images take effect only when referenced in instruction. To reference them, write <image_1> and <image_2> in instruction. If a reference image is not mentioned in instruction, it is effectively unused.
If aspect_ratio is omitted, it follows the first image; single-image editing always keeps the original aspect ratio. Use mask_url only when you need to limit the area of change: the mask is a black-and-white image, white indicates the area to change, and its dimensions must match the original image for proper alignment. When using a mask, image_urls can contain only 1 image, and you cannot attach additional reference images.
When using Image-to-Image, it is best to target only one attribute in the instruction. Choose one of camera angle, lighting, time, clothing, or material, and write "keep unchanged" for everything else; this makes it easier to judge whether the result meets expectations.

How to write prompts
The recommended description order is: subject and action → scene → camera angle → lighting and time of day → depth of field and focus → material and image quality. Writing in these six sections is like breaking the image into six independently adjustable variables: if you want to change the camera angle, change only the third section; if you want to change the time of day, change only the fourth section; leave the rest of the description untouched, and you can clearly attribute the difference caused by the change. Control over photographic elements is a strength of this model, and these six sections basically cover the range of its strengths.
Example 1: Text-to-Image prompt
A woman in a dark gray wool coat stands on a street corner after the rain, closing a black long-handled umbrella.
On both sides of the street are shops that have not yet opened in the early morning, with rolling shutters half-closed and puddles on the ground.
35mm view, slightly low camera angle, shot from the front left of the person, with the person on the right third line of the frame.
Diffused light on an overcast early morning, with a cool color temperature and no direct sunlight.
f/2 shallow depth of field, the person's face is sharp, and the background buildings gradually blur.
The wool fabric shows fine texture, the metal umbrella ribs have slight highlights, and the overall grain is fine.
When submitting, also set style to Kodak Film, aspect_ratio to 3:2, and seed to 5555. The six description sections are independent; if you later want to switch to the hard-light look of Hard Flash, change only style and the lighting section, and leave the other five lines as they are to compare the difference.
Example 2: Image-to-Image instruction
Change the camera angle of <image_1> to a direct overhead shot, keeping the person's pose, clothing, and position unchanged.
Use <image_2> as a reference for the clothing material, and handle the coat's fabric texture and sheen according to <image_2>.
Here, image_urls contains two images: the first is the original image to edit, and the second is the material reference image, so instruction must explicitly reference them with <image_1> and <image_2>. The instruction itself does only two things—change the camera angle and handle the material according to the reference image—which is exactly the kind of work Image-to-Image is good at: change only one attribute at a time and leave the rest as untouched as possible. Keeping changes to a single dimension reduces rework and makes it easier to judge whether this call meets expectations.

Pricing and content safety
Both models cost $0.0572 per image, and the billing rules are independent of aspect ratio, style, number of reference images, and whether a mask is used. 1:1 and 21:9 cost the same, passing 4 images and passing 1 image cost the same, and using a mask and not using a mask cost the same. The price is determined only by the number of images generated: 100 images cost $5.72, and 1000 images cost $57.2.
There is one thing you must know in advance about content safety: if a description contains disallowed content, the API does not return an error; the model rewrites the prompt into safe content and continues generating the image. The rewritten image may have nothing to do with your original intent, but the call is still billed as usual. Therefore, review prompts before submitting, especially sensitive descriptions involving people, clothing, or scenes—a problem will not show up as an error, but as an unrelated image and a charge.
API call examples
Both models use the async task API: first POST /v1/tasks to submit a task, get the task id from the response, and then poll GET /v1/tasks/{id} to retrieve the image URL.
curl -X POST "$HIAPI_BASE_URL/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "fibo-2.0/text-to-image",
"input": {
"prompt": "A woman in a dark gray wool coat stands on a street corner after the rain, 35mm view, slightly low camera angle, diffused light on an overcast early morning, f/2 shallow depth of field, the wool fabric shows fine texture.",
"style": "Kodak Film",
"aspect_ratio": "3:2",
"seed": 5555
}
}'
curl "$HIAPI_BASE_URL/v1/tasks/{id}" \
-H "Authorization: Bearer $HIAPI_API_KEY"
Image-to-Image uses the same task API, changing only model and input:
curl -X POST "$HIAPI_BASE_URL/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "fibo-2.0/image-to-image",
"input": {
"instruction": "Change the camera angle of <image_1> to a direct overhead shot, keeping the pose and clothing of the person unchanged. Use <image_2> as a reference for the clothing material.",
"image_urls": [
"https://example.com/scene.jpg",
"https://example.com/fabric.jpg"
],
"seed": 5555
}
}'
FAQ
Can style and image_url be passed together?
No. They are mutually exclusive, and passing both causes a conflict. Use style when you need to specify a style, and use image_url when you need to reference the visual characteristics of a specific image; choose one.
After passing mask_url, can image_urls still contain multiple images?
No. When using a mask, image_urls can contain only 1 image, namely the image being edited; the mask itself is a black-and-white image, white areas indicate the parts to change, and its dimensions must match the original image.
How can I reproduce the same image?
Fix the seed. The value range is 0–2147483647, and the default is 5555; the same seed plus the same prompt reproduces the result. The default seed for Image-to-Image is also 5555.
Related articles
View all articles →-
Guide
Ideogram V3 Character Edit for E-commerce Product Images via the hiAPI API
A developer guide to consistent subjects, clean background swaps, and a working hiAPI request
10 min read -
Guide
Using happyhorse-1.1/reference-to-video via the HiAPI API: Prompt Recipes and a Short-Form Video Workflow
A developer's guide to organizing reference images, wording identity-preserving prompts, and pacing short-form clips through HiAPI
10 min read -
Guide
Using qwen-image-2.1-pro for E-commerce Product Images: API Usage and Prompt Recipes
An end-to-end developer guide: transparent PNGs, image editing, text rendering and copy-paste prompts with curl and Python requests
10 min read