Generate, edit, enhance, and transform images through Bria's commercially-safe visual AI models.
Try asking
Encrypted at rest, isolated from the model
Resolved from an AES-256-GCM vault at the moment of the call and attached to the request — the model never sees the secrets.
Remove background from an image, optionally guided by a prompt naming what to keep or drop. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. prompt: Optional plain-language text that refines what is kept, e.g. "the person with the mat", "without the dog", "only the chair". It adjusts the default cut (adds, drops, or narrows within the main subject) and keeps the original pixels; it does not perform a different edit. Slower than the default call. If guided removal is unavailable for the organization, the tool returns an error instead of a result. Omit it or leave it blank for the default behavior. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
Apply blur effect to an image background. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. scale: Blur intensity (1-5, default: 5) visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
remove the background from an image and crop tightly around the foreground or remaining region of interest. Supports both images with and without a background. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. padding: Optional Integer, of how much padding to add to the region of interest. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
Upscale image by 2x or 4x. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. scale: Upscaling factor (2 or 4, default: 2) visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
Expand an image or change its aspect ratio using generative AI. This function can expand images, change aspect ratios, or generate multiple aspect ratios. Use this tool when users want to change aspect ratio, convert to specific aspect ratios like 1:1, 16:9, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, or when they mention "aspect ratio" in their request. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. aspect_ratio: str | float. Automatically expands or crops the input image to the specified aspect ratio. Can be one of ["1:1", "4:3", "16:9", "3:2", "2:3", "9:16", "3:4", "4:5", "5:4"] or a float number between 0.5 and 3.0. preserve_alpha: (boolean, default=False). Controls whether the alpha channel values from the input image are retained in the output. content_moderation: (boolean, default=False) Legacy flag, kept for existing callers. The current API ignores it; use visual_input_content_moderation / visual_output_content_moderation instead. prompt: Optional English description of what to generate in the expanded area. Omit it (or leave it empty) and the service writes one from the input image. prompt_content_moderation: (optional boolean, API default=True; sent only when set) If True, the prompt is checked for unsafe content before processing and the request fails if it does not pass. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
Generate or replace an image background with a generated scene. Must have either prompt or reference_images! Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. prompt: str. Optional Text description of the desired background reference_images: List of URL of reference images for the background fast: (boolean, default=False). Use fast mode for better speed/quality balance prompt_content_moderation: (optional boolean, API default=True; sent only when set) If True, the prompt is checked for unsafe content before processing and the request fails if it does not pass. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image and reference images are checked for unsafe content and the request fails if they do not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
Erase the foreground object from a provided image, while generating the area behind it. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
Erase the object a mask covers and fill the area so it matches its surroundings. composite false (default, context aware) also removes what the object casts outside the mask, such as its shadow or reflection, so mask only the object. composite true (pixel perfect) keeps everything outside the mask as it was, for retouching where nothing else may change. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. mask: Black-and-white mask for image, where white marks what to erase. Mask URL (preferred) or base64 data. composite: False (default) for context aware, True for pixel perfect. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image (not the mask) is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
Enhance an image by generating richer details, sharper textures, and higher clarity, optionally upscaling. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. preserve_alpha: (boolean, default=True). Controls whether the alpha channel values from the input image are retained in the output. content_moderation: (boolean, default=False) Legacy flag, kept for existing callers. The current API ignores it; use visual_input_content_moderation / visual_output_content_moderation instead. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: A preview image plus a URL for the full-quality result.
Edit an existing image with a natural language instruction, optionally combining up to 4 images in total (the one being edited plus references). Use this tool whenever the user wants to change something in an image they already have - theirs, or one generated earlier in the conversation - and keep the rest of it intact: "make the jacket red", "remove the person on the left", "put this mug on a marble counter", "give her the hairstyle from this other photo". It is also the tool for combining several images: taking the subject from one and a style, background, or object from another. Not for garments or held products. Putting clothes on a person is virtual_tryon; putting a product in someone's hands is product_holding - both preserve the person's identity and pose more reliably than a general instruction here. Referring to the images (important). The images list is ordered, and that order is how the instruction addresses them: the first image is "image 1", the second "image 2", and so on. Write the instruction as plain prose using those words, for example: images = ["<living room image>", "<painting image>"] instruction = "hang the painting from image 2 on the wall in image 1" With a single image there is nothing to disambiguate, so just describe the change ("change the mug color to red"). Put the image being edited first and the references after it. Args: images: 1 to 4 images, in the order the instruction refers to them. Each is an image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. instruction: What to change, in natural language. Reference extra images by position ("image 2", "image 3"). Describe the desired result, not the mechanics. seed: Optional random seed. Pass the same seed to reproduce a previous result. aspect_ratio: Optional output aspect ratio, e.g. "1:1", "4:3", "16:9", "3:4", "9:16". Only honored with 2 or more images; with a single image the output follows that image and the response carries a warning saying so. Omit it to follow the first image. prompt_content_moderation: (optional boolean, API default=False; sent only when set) If True, the instruction is checked for unsafe content before processing and the request fails if it does not pass. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input images are checked for unsafe content and the request fails if they do not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: CallToolResult containing the edited image, the structured prompt behind it when the service reports one, and a URL for the full-quality result. An edit takes tens of seconds.
Put a product in someone's hands. No prompt is needed - a person photo and one to three product photos are a complete request. Use this tool when the user wants a person shown holding or carrying a product. Packaging, a second angle, or a companion item can be composed from multiple product references in one call. The person's identity, pose, and background are preserved, and the output keeps person_image's aspect ratio unless you set aspect_ratio; the product keeps its exact geometry, colors, branding, and label text. Args: person_image: Photo of the person to edit. Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. product_images: 1 to 3 images of the product - packaging, a second angle, or a companion item. Each is an image URL (preferred) or base64 data; local file paths work only when the server runs on the same machine. instruction: Optional extra direction for this shot, e.g. "Replace the paper coffee cup in her right hand with the can, logo facing the camera." Send only the detail to steer, not a full prompt - the tool works without it. aspect_ratio: Optional output aspect ratio, e.g. "1:1", "4:3", "16:9", "3:4", "9:16". Defaults to the aspect ratio of person_image. seed: Optional random seed. Pass the same seed to reproduce a previous result. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: CallToolResult containing the resulting image, the structured prompt behind it when the service reports one, and a URL for the full-quality result. This takes tens of seconds.
Put garments on a person. No prompt is needed - a person photo and one to three garment photos are a complete request. Use this tool when the user wants a person shown wearing one or more garments or accessories. Send a full outfit together to change several items in one call instead of stacking edits. Garment fidelity is preserved: print scale, stripe alignment across seams, collar and closure type, and how a garment reads from behind. The person's identity, pose, and background are preserved, and the output keeps person_image's aspect ratio unless you set aspect_ratio. Args: person_image: Photo of the person to edit. Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. garment_images: 1 to 3 garment or accessory images to put on the person. Each is an image URL (preferred) or base64 data; local file paths work only when the server runs on the same machine. instruction: Optional extra direction for the styling, e.g. "He wears the navy blazer over the white t-shirt he already has." Send only the detail to steer, not a full prompt - the tool works without it. aspect_ratio: Optional output aspect ratio, e.g. "1:1", "4:3", "16:9", "3:4", "9:16". Defaults to the aspect ratio of person_image. seed: Optional random seed. Pass the same seed to reproduce a previous result. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the result is checked for unsafe content and the request fails if it does not pass. Returns: CallToolResult containing the resulting image, the structured prompt behind it when the service reports one, and a URL for the full-quality result. This takes tens of seconds.
Generate a new image using Bria's Fibo 2 model, from a text prompt or from an existing image as inspiration. Fibo 2 is Bria's advanced image generation model, with precise control over the output. Every call produces a new image: given a prompt it generates from scratch, given an image it takes that image as inspiration for a new one, and given a previous generation's structured_prompt it re-imagines that same scene - a different setting, lighting, styling or composition. This tool always re-renders the whole image. Any request to change one thing and keep the rest intact - "make the mug red", "remove the sign", "put this product on that counter" - belongs to the edit_image tool instead, on generated and user-supplied images alike, as does anything that combines two images. Args: image: Image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. Used as inspiration for a new image, not as something to edit. Optional. prompt: Text description of the desired output image. Guides the generation process. negative_prompt: Text description of what to avoid in the generated image. structured_prompt: Dictionary containing structured prompt parameters for more precise control. Can include elements like style, composition, lighting, etc. Feed a previous generation's structured prompt back in to re-imagine that scene. aspect_ratio: Desired aspect ratio for the generated image. Common values include: "1:1", "16:9", "9:16", "4:3", "3:4", etc. seed: Random seed for reproducible results (default 42). model_version: The Fibo model variant to use. Options: - "FIBO": Standard model, Fibo 2 (default) - "FIBO_LITE": Lightweight version for faster generation style: Photographic look applied to a text-to-image generation, for when the user wants one of these looks: - "kodak_film": Kodak film - "hard_flash": Hard flash - "hazy_dreamy": Hazy dreamy - "rough_realism": Rough realism Text-to-image on "FIBO" only: the API rejects it together with image, structured_prompt or "FIBO_LITE". prompt_content_moderation: (optional boolean, API default=False; sent only when set) If True, the prompt is checked for unsafe content before processing and the request fails if it does not pass. visual_input_content_moderation: (optional boolean, API default=False; sent only when set) If True, the input image is checked for unsafe content and the request fails if it does not pass. visual_output_content_moderation: (optional boolean, API default=False; sent only when set) If True, the generated image is checked for unsafe content and the request fails if it does not pass. Returns: CallToolResult containing: - TextContent: URL for the full-quality result - TextContent: The structured prompt used to build the image. Feed it back in to re-imagine the scene - ImageContent: A JPEG preview of the generated image
Turn a finished, flat ad image back into editable layers. Separates a completed creative into background, imagery, logo, headline, body copy and CTA. Image layers come back as their own downloadable assets; text layers keep their copy and typography, so the wording can be changed. Use it to recover a lost design file, to make a shipped ad editable again, or to resize or translate one. A run takes 2-3 minutes. Ads over 2048px per side require an enterprise plan. Args: image: Ad image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. prompt: Optional guidance for something the pixels alone do not settle, e.g. "the roundel top-right is the brand logo, not part of the product". effort: How much reasoning to spend reading the ad. One of "low", "medium", or "high". Defaults to "medium". Returns: CallToolResult with the canvas size, one entry per layer (id, role, position, text or asset URL), and the URL of the full layer manifest.
Resize a finished, flat ad image into one or more target sizes. Bria turns the ad into editable layers and lays each size out again with its own layout engine, so the headline is re-set rather than stretched and the logo and product stay in frame. Every result comes back as a URL - use this when the ad is already done and just needs to exist at other dimensions (a different placement, platform, or aspect ratio), not when it still needs editing. A call takes a few minutes. Only a flat raster image is a valid source - PNG or JPG, not a PSD or a Figma file. Use ad_to_layers first if the source needs to become editable rather than just resized. Sources over 2048px per dimension require an enterprise plan; on other plans the source is downscaled to fit before resizing, and the response says so. Args: image: Ad image URL (preferred) or base64 data. Local file paths work only when the server runs on the same machine. formats: Up to 10 target sizes. Each needs a name (echoed back on its result) and a width/height in pixels. prompt: Optional guidance for how the ad should be adapted to each size, e.g. "keep the logo in the top-left corner". Returns: CallToolResult with one entry per target (name, size, status, its URL or error, and the route that produced it as `strategy`, informational: the API produces every size through the layered route, `delayer_dispatch`) and a note if the source had to be downscaled first. Open a target's URL to view or download the image; no image bytes are inlined.
Remove background from a video while maintaining the foreground subject. Args: video: Video URL (preferred) or base64 data. URLs provide best performance. background_color: Solid colour to fill the removed background with, or "Transparent" to keep an alpha channel. One of: Transparent, Black, White, Gray, Red, Green, Blue, Yellow, Cyan, Magenta, Orange (hex values are not supported). Defaults to "Black". "Transparent" only works if the API's output format supports alpha; otherwise the background falls back to "Black". Returns: CallToolResult containing the video URL with removed background.
Increase the resolution of a video by a specified factor. Args: video: Video URL (preferred) or base64 data. URLs provide best performance. desired_increase: Factor by which to increase the video resolution. Allowed values: 2 or 4. Defaults to 2. Returns: CallToolResult containing the video URL with increased resolution.
Mask a video by a prompt (will trim video to match proper length). Args: video: Video URL (preferred) or base64 data. URLs provide best performance. prompt: Text prompt to guide the masking process. Returns: CallToolResult containing the video URL with masked content.
Erase an object from a video based on a mask video or given prompt. Args: video: Video URL (preferred) or base64 data. URLs provide best performance. mask_video: Video URL (preferred) or base64 data. URLs provide best performance. prompt: Text prompt to guide the masking process. Returns: CallToolResult containing the video URL with masked content.
Pick your app for a step-by-step guide. Most sign in with OAuth, so there is no API key to copy.
Discovery, routing, credentials, tool scoping and execution logs all happen at the gateway→connections stay ACTIVE with no work from you
Bria MCP runs through a gateway that holds the credentials, scopes the access and records every call.
Managed auth, hosted MCP servers, and every Bria MCP tool your agent needs.
Free to start.
Add as preferred source on GoogleRead the diff, flag correctness issues inline, suggest cleanups, and leave a summary ready for the author.