Bria FIBO
Bria FIBO without the 16GB download — cloud text-to-image that's built for editing
- image
- advancedFeatures.watermark.image
- image
FIBO is Bria's big swing at text-to-image: a model trained on long, structured captions where every training image is described with the same fine-grained attributes, so you can steer individual visual factors - lighting, lens, framing, subject details - instead of hoping the prompt sticks. The release thread that announced it in late 2025 got a lot of "very nice but can't get workflow and weights for Comfy" replies, and for good reason: the transformer alone is over 16 GB and the VAE is nearly 3 GB. That's the whole pitch of this node. No download, no VRAM budget, no offload tricks. It's Bria FIBO running on Runware's GPUs, and you pay per image.
If that sounds like the cloud pitch, yes, it is. But FIBO is worth meeting this way if you're not married to running everything locally - the "long captions, fine-grained control" thing is genuinely different from stock SDXL, and its iterative-editing lineage (there's a dedicated Edit variant in this same pack) means the plain generation node already accepts an input image if you want to work from a starting point.
What actually matters on this node
- positivePrompt - required, multiline. This is where FIBO's long-caption training pays off; it can actually chew on a detailed structured prompt instead of choking on it.
- width / height - required, default 1024×1024. Set both.
- image - optional. Feed an IMAGE tensor and you've got image-to-image / a first editing step, no extra node.
- CFGScale - this is an enum with only 3, 4, 5, not a slider. FIBO is a low-guidance model, and the node is honest about it by only giving you the sensible range.
- steps - 20 to 50, default 50. Bump down to 20 for drafts; the distilled-friendly range exists for a reason.
- numberResults - 1 to 20. Each result is a separate paid inference with its own seed. This is the cost multiplier; don't set it to 20 by accident.
Everything else - seed, negativePrompt, outputFormat (JPG/PNG/WEBP), outputQuality, safety, and the providerSettings.bria.ipSignal flag for IP-related content - you can leave alone. The output is a single IMAGE socket. Wire it into Preview Image or Save Image and you're done.
Install
This is the standard Runware pack, so it's one install and one key for every node in it. ComfyUI Manager, search Runware, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Then grab a key from the Runware dashboard and paste it into ComfyUI Settings → Runware API key (or set RUNWARE_API_KEY). The dependency footprint is tiny - runware-sdk, pillow, soundfile - because there are no model files to install. The model lives on their servers; this node is a thin client that converts your prompt and image tensors into a request and turns the response back into an IMAGE tensor.
Where people get burned
Two things. First, cost: every numberResults is a separate billed inference, and the node prints cost + NSFW flag on its title bar after each run, which is a nice reality check. Second, the license - the FIBO weights and code shipped under a non-commercial Creative Commons license, and the community called out Bria for calling it "open source." That's a real constraint if you're building a product. If it's for personal work, none of that stops you, and "Bria FIBO in ComfyUI without a 16 GB download" is exactly the trade this node exists to make.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| imageopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| negativePromptopt | STRING | Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1). | |
| sizeopt | COMBO | 1K (1:1) | Output size. Only one of resolution or dimensions is sent. |
| seedopt | INT | 11–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| stepsopt | INT | 5020–50 | Total number of denoising steps. Higher values generally produce more detailed results but take longer. |
| CFGScaleopt | COMBO | 5 | Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| providerSettings.bria.ipSignalopt | BOOLEAN | false | Flag potential IP-related content in prompt or output. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |