Files
vision/card-renderer/assets/README.md
Gregor Klevze 58ee1b3bdd feat: add card-renderer internal service (v1)
- New card-renderer FastAPI service (Python 3.11 + Pillow)
  - GET /health, GET /templates
  - POST /render (URL input)
  - POST /render/file (multipart upload)
  - POST /render/meta (dry-run layout metadata)
  - nova-artwork-v1 template: cover crop, gradient overlay, text, logo
  - SSRF-safe async image fetch with redirect validation
  - Smart center cover crop isolated for future YOLO focal-point support
  - Graceful font/logo fallback when assets are absent

- docker-compose.yml: add card-renderer service + healthcheck;
  extend gateway with CARD_RENDERER_URL and depends_on

- gateway/main.py: proxy endpoints under /cards/*
  - GET  /cards/templates
  - POST /cards/render
  - POST /cards/render/file
  - POST /cards/render/meta
  All protected by existing APIKeyMiddleware
2026-03-31 10:39:29 +02:00

389 B
Raw Permalink Blame History

Card Renderer Assets

Place the following files here before building the image:

  • fonts/Inter-Regular.ttf — body text
  • fonts/Inter-Bold.ttf — title text
  • logo.png — Skinbase Nova logo (RGBA, ~320×120 px)

The renderer will fall back to PIL's built-in font if TTF files are absent, and will skip the logo overlay silently if logo.png is missing.