AI Brand Asset Generator with 25 commands for image generation, LoRA training, quality pipeline, and history management. Built with AFD principles.
Generate on-brand illustrations and icons using AI with Agent-First Development patterns.
| Request type | Load reference |
|---|---|
| Command schemas, CLI usage | references/commands.md |
| ML backends, model selection | references/ml-backends.md |
| Azure deployment, CI/CD | references/deployment.md |
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā SURFACES (Thin Wrappers) ā
ā āāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā VS Code / ā ā Web UI ā ā Figma Plugin ā ā
ā ā Cursor (MCP) ā ā (Vanilla JS) ā ā (v2) ā ā
ā āāāāāāāāāā¬āāāāāāāāā āāāāāāāāāā¬āāāāāāāāā āāāāāāāāāāāāāā¬āāāāāāāāāāāāā ā
ā ā MCP (stdio) ā REST API ā REST API ā
ā āāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā¼ ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā COMMAND LAYER (Source of Truth) ā
ā Python + FastMCP + Pydantic (25 Commands) ā
ā asset.* ā job.* ā model.* ā lora.* ā quality.* ā history.* ā favorites.* ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā ML INFERENCE LAYER ā
ā Mock | HuggingFace | Fireworks.ai (FLUX) | Replicate ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
| Category | Commands | Purpose |
|---|---|---|
asset.* |
2 | Image generation |
job.* |
3 | Job management |
model.* |
2 | Model discovery |
lora.* |
7 | Custom style training |
quality.* |
5 | Image refinement |
history.* |
3 | Generation history |
favorites.* |
3 | Saved generations |
# Generate images
noisett asset.generate '{"prompt": "cloud computing concept", "asset_type": "product"}'
# LoRA Training workflow
noisett lora.create '{"name": "Xbox Style", "trigger_word": "xboxstyle"}'
noisett lora.upload-images '{"lora_id": "lora_xxx", "images": [...]}'
noisett lora.train '{"lora_id": "lora_xxx"}'
# Quality pipeline
noisett upscale '{"image_url": "...", "scale": 4}'
noisett refine '{"image_url": "...", "strength": 0.3}'
All commands return structured results:
{
"success": true,
"data": {...},
"reasoning": "Started generation of 4 product illustrations",
"confidence": 0.95,
"suggestions": ["Try 'premium' for marketing-grade quality"]
}
1. DEFINE ā Create command with Pydantic schema
2. VALIDATE ā Test via CLI: noisett <command> '<json>'
3. SURFACE ā Build UI that calls command
The Honesty Check: If it can't be done via CLI, the architecture is wrong.
src/
āāā commands/ # Command definitions
ā āāā asset.py # asset.generate, asset.types
ā āāā job.py # job.status, job.cancel, job.list
ā āāā model.py # model.list, model.info
ā āāā lora.py # lora.* (7 commands)
ā āāā quality.py # quality.* (5 commands)
ā āāā history.py # history.* (3 commands)
ā āāā favorites.py # favorites.* (3 commands)
āāā core/ # Shared types (CommandResult, errors)
āāā ml/ # ML backends
āāā server/
āāā mcp.py # FastMCP server
āāā api.py # FastAPI REST server