"Modern minimalist tooth illustration, flat design, pastel palette."
Da Vinci turns Claude Code into a visual studio. Just say what you need — Claude analyzes intent, picks the best model, checks the cost, and drops the asset in ./assets/generated/ with a full audit trail.
Every provider has a strength. Da Vinci knows which one to use and stops you before you accidentally spend $3 on a hero image.
Photorealism, vector art, character consistency, cinematic video — each use case maps to the model that actually wins at it. No more guessing.
Under $0.10 runs silently. $0.10–$1 warns. Over $1 needs an explicit --force. No surprise bills.
OpenAI · Gemini · FAL.ai · KIE.ai · HeyGen · ElevenLabs. Bring one key or all six — Da Vinci uses what you have.
Pass images or URLs as --refs for character consistency, style transfer, or editing. Nano-Banana handles the tricky ones.
Every generation writes to manifest.json: prompt, model, cost, refs, output path. Query total spend in one line.
Infisical for teams, .env for solo, env vars for CI. Auto-detected in that order — no config file to hand-tune.
These aren't stock photos. Each was generated by the CLI with the exact prompt and cost shown.
"Modern minimalist tooth illustration, flat design, pastel palette."
"Minimalist logo of a calendar with clock overlay, geometric, high contrast."
"Same tooth, add sparkles around it, keep the exact style." Reference: image #1.
A quick reference. Claude uses the full matrix in references/model-matrix.md to pick automatically.
| Use case | Best model | Provider | Typical cost |
|---|---|---|---|
| Photorealistic image | flux-pro-ultra |
FAL | $0.06 |
| Vector / SVG logo | recraft-v3-svg |
FAL | $0.08 |
| Edit with references | nano-banana |
Gemini | $0.039 |
| Video · 5s cinematic | kling-1.6-pro |
FAL | $0.42 |
| Text inside image | ideogram-v3 |
FAL | $0.08 |
| Character consistency | nano-banana |
Gemini | $0.039 |
| Video + sync audio confirm required | veo-3 |
Gemini | $2.50 |
Da Vinci auto-detects the source. Pick the one that matches your workflow.
Recommended for solo use. Da Vinci looks at ~/.config/da-vinci/.env automatically.
# One-time setup — chmod 600 keeps the file readable only by you mkdir -p ~/.config/da-vinci cat > ~/.config/da-vinci/.env <<'EOF' OPENAI_API_KEY=sk-proj-... GEMINI_API_KEY=AIza... FAL_API_KEY=xxx:yyy KIE_API_KEY=... HEYGEN_API_KEY=... ELEVENLABS_API_KEY=... EOF chmod 600 ~/.config/da-vinci/.env
Rotation, audit, multi-machine sync. Zero secrets on disk.
# Add to ~/.zshrc or ~/.bashrc export INFISICAL_URL="https://your-infisical.com" export INFISICAL_CLIENT_ID="<client-id>" export INFISICAL_CLIENT_SECRET="<client-secret>" export DAVINCI_PROJECT_ID="<project-uuid>" export DAVINCI_ENV="prod" # Reload — Da Vinci will detect Infisical and use it source ~/.zshrc
Perfect for GitHub Actions, Docker, ephemeral scripts.
# .github/workflows/generate.yml - name: Generate hero image env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} FAL_API_KEY: ${{ secrets.FAL_API_KEY }} GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} run: | node ~/.claude/skills/da-vinci/scripts/generate.mjs image \ --provider fal --model flux-pro-ultra \ --prompt "clean product hero, studio lighting" \ --aspect 16:9
Say the words "Da Vinci" in Claude Code and the whole pipeline runs — analysis, model selection, cost estimate, execution, audit log.
"Da Vinci, make a hero image for AgendaZap — modern, dental, calm blues."
Reads intent, aspect ratio, need for references, and consults the model matrix.
Selects flux-pro-ultra, computes cost, checks the gating threshold.
Executes davinci image with the right flags. Streams progress.
Writes the asset and appends a full entry to manifest.json.