Transform creative briefs into complete visual asset libraries with AI-powered shot planning and FIBO's JSON-native image generation
PromptVision is a professional visual asset pipeline that turns a simple creative brief into a complete library of brand-consistent images. Powered by a multi-agent AI system and Bria's FIBO model, it automates the entire creative workflow from concept to final assets.
๐ Creative Brief โ ๐ค AI Agents โ ๐จ FIBO Generation โ ๐ฆ Asset Library
Creating visual assets for brands, products, or campaigns typically requires:
- Hours of back-and-forth with designers
- Inconsistent results across different shots
- Expensive reshoots when parameters need tweaking
- No reproducibility or version control
PromptVision solves this by combining AI planning with FIBO's deterministic, JSON-native generation.
Four specialized AI agents work together to transform your brief:
| Agent | Role | What It Does |
|---|---|---|
| ๐จ Brand Analyst | Strategic Analysis | Extracts brand essence, target audience, visual identity |
| ๐ฌ Visual Strategist | Creative Direction | Defines color palettes, lighting styles, mood boards |
| ๐ธ Shot Planner | Technical Planning | Creates 6-12 shots with camera specs, composition, angles |
| โ Quality Reviewer | Consistency Check | Validates coherence, fills gaps, ensures brand alignment |
Every image is generated with precise, reproducible parameters:
{
"scene": {
"description": "Premium coffee product on marble surface",
"environment": "Minimalist studio with soft shadows"
},
"camera": {
"angle": "eye_level",
"shot_type": "medium_shot",
"focal_length": "85mm"
},
"lighting": {
"type": "soft_studio",
"direction": "front_left",
"intensity": "medium"
},
"color_palette": ["#8B4513", "#F5F5DC", "#2F4F4F"]
}|
Generate 4-8 variations of any shot with controlled seeds for A/B testing and exploration. Professional color depth with Display P3 and Adobe RGB color space support. |
Set a reference shot and maintain visual coherence across your entire project. Modify ONE attribute without affecting others - change lighting without changing composition. |
- ZIP Download - All assets organized with metadata
- JSON Prompts - Full reproducibility for any shot
- Seed Tracking - Recreate exact results anytime
Powered by Liveblocks, collaborate with your team in real-time:
| Feature | Description |
|---|---|
| ๐ฑ๏ธ Live Cursors | See where teammates are working in real-time |
| ๐ค Presence Avatars | Know who's online with color-coded avatars |
| ๐ Activity Sync | Shot updates broadcast to all collaborators |
| ๐จ Persistent Identity | Your name and color persist across sessions |
| Requirement | Version | Purpose |
|---|---|---|
| Node.js | 18+ | Frontend runtime |
| Python | 3.10+ | Backend runtime |
| pnpm | Latest | Package manager |
| Bria API Key | - | FIBO image generation |
| OpenRouter API Key | - | Multi-agent LLM |
# Clone the repository
git clone https://github.com/N-45div/PromptVision.git
cd PromptVision
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Backend Setup
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your API keys:
# BRIA_API_KEY=your_bria_api_key
# OPENROUTER_API_KEY=your_openrouter_api_key
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Frontend Setup
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
cd ../frontend
pnpm install# Terminal 1 - Backend
cd backend && source venv/bin/activate
uvicorn main:app --reload --port 8000
# Terminal 2 - Frontend
cd frontend
pnpm dev๐ Open http://localhost:3000
cd backend
# Option 1: One-command deploy
./deploy.sh YOUR_GCP_PROJECT_ID us-central1
# Option 2: Manual steps
gcloud builds submit --tag gcr.io/YOUR_PROJECT/promptvision-api
gcloud run deploy promptvision-api \
--image gcr.io/YOUR_PROJECT/promptvision-api \
--platform managed \
--region us-central1 \
--allow-unauthenticated
# Set environment variables
gcloud run services update promptvision-api \
--set-env-vars "BRIA_API_KEY=xxx,OPENROUTER_API_KEY=xxx"- Push to GitHub
- Import project at vercel.com/new
- Set root directory to
frontend - Add environment variable:
NEXT_PUBLIC_API_URL=https://your-cloud-run-url.run.app NEXT_PUBLIC_LIVEBLOCKS_PUBLIC_KEY=pk_xxx - Deploy! ๐
flowchart TB
subgraph Frontend["๐ฅ๏ธ Frontend (Next.js 16)"]
LP[Landing Page]
DB[Dashboard]
PD[Project Detail]
SC[Shot Cards]
LP --> DB
DB --> PD
PD --> SC
end
subgraph Backend["โ๏ธ Backend (FastAPI)"]
API[REST API]
subgraph Agents["๐ค Multi-Agent Pipeline"]
BA[Brand Analyst]
VS[Visual Strategist]
SP[Shot Planner]
QR[Quality Reviewer]
BA --> VS --> SP --> QR
end
subgraph Services["๐ง Services"]
FS[FIBO Service]
PS[Project Service]
end
API --> Agents
API --> Services
Agents --> FS
end
subgraph External["โ๏ธ External APIs"]
FIBO[Bria FIBO API]
LLM[OpenRouter LLM]
end
Frontend <--> API
FS <--> FIBO
Agents <--> LLM
style Frontend fill:#1a1a2e,stroke:#0ea5e9,color:#fff
style Backend fill:#1a1a2e,stroke:#10b981,color:#fff
style External fill:#1a1a2e,stroke:#f59e0b,color:#fff
style Agents fill:#2d2d44,stroke:#8b5cf6,color:#fff
style Services fill:#2d2d44,stroke:#06b6d4,color:#fff
sequenceDiagram
autonumber
participant U as ๐ค User
participant F as ๐ฅ๏ธ Frontend
participant API as โ๏ธ FastAPI
participant MA as ๐ค Multi-Agent
participant FIBO as ๐จ FIBO API
U->>F: Enter creative brief
F->>API: POST /api/projects
rect rgb(45, 45, 68)
Note over MA: Multi-Agent Pipeline
API->>MA: Process brief
MA->>MA: 1๏ธโฃ Brand Analyst<br/>Extract brand essence
MA->>MA: 2๏ธโฃ Visual Strategist<br/>Define visual style
MA->>MA: 3๏ธโฃ Shot Planner<br/>Create shot list
MA->>MA: 4๏ธโฃ Quality Reviewer<br/>Validate consistency
end
MA-->>API: Shot definitions + brand guidelines
API-->>F: Project created
F-->>U: Show project with shots
U->>F: Click "Generate All"
F->>API: POST /api/projects/{id}/generate
loop For each shot
rect rgb(40, 60, 60)
API->>FIBO: Generate structured prompt
FIBO-->>API: JSON prompt
API->>FIBO: Generate image
FIBO-->>API: Image URL + seed
end
end
API-->>F: All shots generated
F-->>U: Display generated images
sequenceDiagram
autonumber
participant U as ๐ค User
participant F as ๐ฅ๏ธ Frontend
participant API as โ๏ธ FastAPI
participant FIBO as ๐จ FIBO API
U->>F: Click "Refine" on shot
U->>F: Enter: "make lighting more dramatic"
F->>API: POST /api/projects/{id}/shots/{shot_id}/refine
rect rgb(45, 45, 68)
Note over API,FIBO: Disentangled Refinement
API->>FIBO: Refine structured prompt<br/>(only lighting changes)
FIBO-->>API: Updated JSON prompt
API->>FIBO: Generate with same seed
FIBO-->>API: New image<br/>(composition preserved)
end
API-->>F: Refined shot
F-->>U: Display updated image
Note over U,FIBO: โจ Only lighting changed<br/>Everything else preserved
sequenceDiagram
autonumber
participant U as ๐ค User
participant F as ๐ฅ๏ธ Frontend
participant API as โ๏ธ FastAPI
participant FIBO as ๐จ FIBO API
alt Seed Variations
U->>F: Click "Variations"
F->>API: POST /shots/{id}/variations?num=4
loop 4 times (parallel)
API->>FIBO: Generate with seed+i
FIBO-->>API: Variation image
end
API-->>F: 4 variations
F-->>U: Display variation grid
end
alt HDR Generation
U->>F: Click "HDR"
F->>API: POST /shots/{id}/hdr?mode=professional
API->>FIBO: Generate 16-bit Adobe RGB
FIBO-->>API: HDR image + metadata
API-->>F: HDR result
F-->>U: Display with HDR badge
end
alt ControlNet
U->>F: Upload control image
F->>API: POST /shots/{id}/controlnet
API->>FIBO: Generate with depth/canny guide
FIBO-->>API: Guided image
API-->>F: ControlNet result
F-->>U: Display guided output
end
alt Style Reference
U->>F: Click "Set as Style Ref"
F->>API: POST /style-reference?shot_id=X
API-->>F: Style locked
Note over F: Future shots use<br/>this style + seed
end
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 16, React 19, TailwindCSS | Modern UI with server components |
| State | Zustand | Lightweight state management |
| UI Components | shadcn/ui, Lucide Icons | Beautiful, accessible components |
| Real-time | Liveblocks | Live cursors & presence |
| Backend | FastAPI, Python 3.10+ | High-performance async API |
| AI Agents | LangGraph, LangChain | Multi-agent orchestration |
| LLM | OpenRouter (Claude 3.5 Sonnet) | Agent reasoning |
| Image Gen | Bria FIBO API | JSON-native generation |
| Storage | File-based JSON | Simple, portable persistence |
Choose from professional templates or write your own brief:
"Create brand assets for EcoBean, a sustainable coffee company targeting eco-conscious millennials. The brand is warm, authentic, and modern with earthy tones. We need hero shots of the coffee product, lifestyle images, and social media content."
The multi-agent pipeline processes your brief with real-time visualization:
โ Brand Analyst โ Extracted brand essence and target audience
โ Visual Strategist โ Defined color palette and lighting style
โ Shot Planner โ Created 8 diverse shots with camera specs
โ Quality Reviewer โ Validated consistency and filled gaps
- Generate All - Create all shots in parallel
- Refine - "make the lighting more dramatic"
- Regenerate - New seed, same parameters
- Variations - Generate 4 alternatives
- HDR - Professional 16-bit output
- Style Ref - Lock in visual consistency
Download all assets as a ZIP with organized folders and metadata.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/projects |
Create project from brief |
GET |
/api/projects |
List all projects |
GET |
/api/projects/{id} |
Get project details |
DELETE |
/api/projects/{id} |
Delete project |
GET |
/api/projects/{id}/export |
Download ZIP |
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/projects/{id}/generate |
Generate all pending shots |
POST |
/api/projects/{id}/shots/{shot_id}/refine |
Refine with instruction |
POST |
/api/projects/{id}/shots/{shot_id}/regenerate |
Regenerate with new seed |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/projects/capabilities |
List available features |
POST |
/api/projects/{id}/shots/{shot_id}/variations |
Generate seed variations |
POST |
/api/projects/{id}/shots/{shot_id}/hdr |
Generate HDR version |
POST |
/api/projects/{id}/shots/{shot_id}/controlnet |
Generate with ControlNet guidance |
POST |
/api/projects/{id}/style-reference |
Set style reference |
GET |
/api/projects/{id}/style-reference |
Get style reference |
PromptVision/
โโโ ๐ backend/
โ โโโ ๐ app/
โ โ โโโ ๐ agent/ # Multi-agent pipeline
โ โ โ โโโ multi_agent.py # LangGraph orchestration
โ โ โโโ ๐ models/ # Pydantic schemas
โ โ โ โโโ schemas.py # Data models
โ โ โโโ ๐ routers/ # API endpoints
โ โ โ โโโ projects.py # Project routes
โ โ โโโ ๐ services/ # Business logic
โ โ โโโ fibo_service.py # FIBO API integration
โ โ โโโ project_service.py
โ โโโ main.py # FastAPI app
โ โโโ requirements.txt
โ
โโโ ๐ frontend/
โ โโโ ๐ src/
โ โ โโโ ๐ app/ # Next.js pages
โ โ โ โโโ page.tsx # Landing
โ โ โ โโโ dashboard/ # Project list
โ โ โ โโโ projects/[id]/ # Project detail
โ โ โโโ ๐ components/ # React components
โ โ โ โโโ shot-card.tsx # Shot display
โ โ โ โโโ create-project-dialog.tsx
โ โ โ โโโ ๐ ui/ # shadcn components
โ โ โโโ ๐ lib/ # Utilities
โ โ โ โโโ api.ts # API client
โ โ โโโ ๐ store/ # Zustand
โ โ โโโ project-store.ts
โ โโโ package.json
โ
โโโ README.md
- Multi-agent brief decomposition
- JSON-native FIBO generation
- Disentangled refinement
- Seed variations
- HDR/16-bit output
- Style consistency
- ZIP export
- Professional templates
- ControlNet integration (depth, canny, recolor, color grid)
- Real-time collaboration (Liveblocks)
- Figma/Canva export
- Custom agent training
MIT License - see LICENSE for details.
Built with โค๏ธ using Bria FIBO