How bria-ai/fibo works
FIBO turns short text, an existing structured JSON prompt, or an image into a controllable image-generation request. The CLI resolves prompts through local or Gemini VLM support, normalizes structured captions, and invokes the diffusion pipeline to return an image; refine and inspire are documented modes of the prompt workflow. The repository also includes LoRA fine-tuning and inference support. The README documents hosted/API and ComfyUI options, but those integrations are not implemented in this tree. Some subsystem wiring is inferred only from documented capabilities and module boundaries.
Main entry points: prompt_to_json.py Prompt engine · generate.py Generation CLI · fibo_pipeline.py FIBO pipeline · fine_tune_fibo.py Fine-tuning
Components 20
Prompt workflows
- Generation CLI
generate.py - Inference orchestration
src/fibo_inference/inference.py - Prompt engine
src/fibo_inference/prompt_to_json.py - Caption cleanup
src/fibo_inference/parse_caption.py - Local VLM
src/fibo_inference/vlm/local_vlm.py - Gemini VLM
src/fibo_inference/vlm/gemini_api.py - Sampling config
src/fibo_inference/vlm/common.py
Image generation
- FIBO pipeline
src/fibo_inference/fibo_pipeline.py - FIBO transformer
src/fibo_inference/transformer_fibo.py - TeaCache
src/fibo_inference/teacache.py - Pipeline output
src/fibo_inference/pipeline_output.py
Model adaptation
- Fine-tuning
src/fine_tuning/fine_tune_fibo.py - Training utilities
src/fine_tuning/fine_tune_utils.py - LoRA inference
src/fine_tuning/generate_with_lora.py
Other components
- User
- Gemini API
- Input image
- Generated image
- Training data
- Pretrained weights
Connections 24
- User → Generation CLI: provides request
- Input image → Generation CLI: provides image
- Generation CLI → Inference orchestration: resolves prompt
- Inference orchestration → Prompt engine: requests JSON prompt
- Prompt engine → Local VLM: uses local model
- Prompt engine → Gemini VLM: uses Gemini
- Prompt engine → Sampling config: uses settings
- Gemini VLM → Gemini API: sends request
- Prompt engine → Caption cleanup: cleans prompt
- Generation CLI → Caption cleanup: normalizes JSON
- Generation CLI → Inference orchestration: runs generation
- Inference orchestration → FIBO pipeline: invokes pipeline
- FIBO pipeline → FIBO transformer: denoises latents
- FIBO pipeline → Pipeline output: returns images
- Pipeline output → Generated image: contains image
- User → Fine-tuning: starts training
- Training data → Fine-tuning: supplies examples
- Fine-tuning → Training utilities: uses helpers
- Fine-tuning → Pretrained weights: loads base model
- Fine-tuning → Pretrained weights: saves LoRA weights
- User → LoRA inference: requests generation
- LoRA inference → Pretrained weights: loads weights
- LoRA inference → FIBO pipeline: invokes pipeline
- FIBO pipeline → TeaCache: enables cache