Imaging: foundations

accepted

Imaging — foundations RFC

Status

*ccepted*— ratificada 20260509 (mesmo dia da abertura) como parte da onda piloto de bootstrap servicesai. Implementação iniciada em `servicesaiimaging; tickets em servicesaiimagingbacklogpending/{001..005}`.

Summary

Foundation pra geração de imagem (texttoimage, imagetoimage, inpainting). Selfhosted Stable Diffusion XL/3 + proxy pra DALLEImagenMidjourney via gateway.

Motivation

Geração de imagem é core hoje (marketing, mockup, icon variants, OG images dinâmicas como em landing-pages/packages.kmd). Hoje zero foundation; cada produto chama provider externo direto.

Scope

In

  • Txt2img (texttoimage)
  • Img2img (imagetoimage)
  • Inpainting
  • Upscaling
  • Asset OG composer (consumido por landing-pages/packages.kmd)

Out (yet)

  • Video gen (→ video)
  • 3D mesh gen (→ scene3d)
  • Avatar gen (sub-tópico futuro)

Initial design

Surfaces

  • backend/ — Go API + worker GPU
  • app/ — não aplicável v1

Key APIs

  • POST /v1/imaging/generate — txt2img
  • POST /v1/imaging/edit — img2img + inpainting
  • POST /v1/imaging/upscale — super-resolution

Dependencies

  • services/ai/gateway — proxy pra DALL-EImagenMidjourney
  • services/ai/runtime — SDXL/SD3 local
  • infra/data/kdb-blob — storage de assets gerados

Relation to existing sectors

  • Complementa vision (input) com output
  • Será consumido por meta/sites/ (OG composition) e produtos de marketing

Selfhostedfirst analysis (5 gates)

  • *1 Feature parity* zero
  • *2 Performance* N/A
  • *3 Stability* N/A
  • *4 Capability* SDXL viável local
  • *5 Criticalpath readiness* bloqueia OG images dinâmicas (Hub package pages têm bug histórico 202604-29)

Open questions

  • Q1: GPU dedicada vs compartilhar com runtime?
  • Q2: kpkg para distribuir LoRAs/checkpoints?

Next steps

  1. Ratificar esta RFC (1 round de comments).
  2. Criar sector dir services/ai/imaging/ com koder.toml, README.md, skeleton.
  3. Abrir tickets de implementação em services/ai/imaging/backlog/pending/.
  4. Registrar em meta/docs/stack/registries/self-hosted-pairs.md se substituir externo.

Source: ../home/koder/dev/koder/meta/docs/stack/rfcs/imaging-RFC-001-foundations.kmd