Notice: GPT Image 2.6 Flare and Sunburst are newly launched with a limited-time 20% off, try it now
HiAPI
Blog

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

Nov 12, 2026 5 min read
Bria FIBO 2.0 getting-started guide blog cover image, with flat brass and dark green wide ribbons interwoven into a solid-color grid on a dark green background.
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.
The two main branches correspond to the Text-to-Image and Image-to-Image entry points, while side branches are cut off at the boundary—each handles only one job.

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)

ParameterRequiredDescription
promptRequiredDescription of the image; it is recommended to write it using the six-section structure described below.
styleOptionalChoose one of four: Kodak Film, Hard Flash, Hazy Dreamy, or Rough Realism. Mutually exclusive with image_url; do not pass both.
image_urlOptionalA single reference image; must be a publicly accessible http/https URL. Mutually exclusive with style; do not pass both.
aspect_ratioOptional21 possible values; default is 1:1.
seedOptionalInteger, 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)

ParameterRequiredDescription
instructionRequiredUse natural language to clearly state what to change; you can reference specific images with <image_1> and <image_2>.
image_urlsRequired1–4 images. The first image is the one being edited; the rest serve as reference images.
mask_urlOptionalBlack-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_ratioOptionalThe same 21 values as Text-to-Image. If omitted, it follows the first image.
seedOptionalDefault 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.

The weaves with different densities correspond to the parameter comparison between the two models: the field names are similar, but the value ranges and constraints are not the same.

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.

Lifecycle of an async task: submit input, wait for generation, and poll to retrieve the result URL.

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 →

Start building with persistent AI artifacts

Get your API key and call image, video and audio models through one task-based API.

Read the API docs