diff --git a/infrastructure/services/imajin.yaml b/infrastructure/services/imajin.yaml new file mode 100644 index 00000000..7c14e8a6 --- /dev/null +++ b/infrastructure/services/imajin.yaml @@ -0,0 +1,150 @@ +# Imajin Feature Services Configuration +# Format: lilith-service-addresses compatible +# +# Usage: +# LILITH_SERVICES_PATH=infrastructure/services +# LILITH_PORTS_PATH=infrastructure/ports.yaml + +feature: + id: imajin + name: Imajin Image Pipeline + description: AI-powered image generation platform with multi-stage pipeline + owner: lilith + +ports: + api: 8080 + classifier: 8001 + prompt: 8003 + diffusion: 8002 + processing: 8005 + aesthetic: 8006 + semantic: 8007 + moderator: 8008 + app: 8090 + +services: + # ============================================================================= + # Main Entry Points + # ============================================================================= + - id: api + name: Imajin Pipeline API + type: api + port: 8080 + description: Main orchestrator - routes requests through the image generation pipeline + entrypoint: uvicorn image_pipeline.api.main:app --host 0.0.0.0 --port 8080 + healthCheck: + type: http + path: /health + dependencies: + - imajin.classifier + - imajin.prompt + - imajin.diffusion + - imajin.processing + + - id: app + name: Imajin Application + type: api + port: 8090 + description: High-level application API with user-facing endpoints + entrypoint: uvicorn imajin_app.main:app --host 0.0.0.0 --port 8090 + healthCheck: + type: http + path: /health + dependencies: + - imajin.api + + # ============================================================================= + # Core Pipeline Services + # ============================================================================= + - id: classifier + name: Request Classifier + type: ml + port: 8001 + description: Cultural classification for image generation requests (thin client to cot-reasoning) + entrypoint: uvicorn api.main:app --host 0.0.0.0 --port 8001 + healthCheck: + type: http + path: /health + dependencies: [] + + - id: prompt + name: Prompt Generator + type: ml + port: 8003 + gpu: true + description: LLM-powered prompt generation and enhancement + entrypoint: uvicorn imajin_prompt.main:app --host 0.0.0.0 --port 8003 + healthCheck: + type: http + path: /health + dependencies: + - imajin.classifier + + - id: diffusion + name: Diffusion Service + type: ml + port: 8002 + gpu: true + critical: true + description: SDXL/Diffusers image generation service + entrypoint: uvicorn src.api.main:app --host 0.0.0.0 --port 8002 + healthCheck: + type: http + path: /health + dependencies: + - imajin.prompt + + - id: processing + name: Image Processing + type: api + port: 8005 + description: CPU image post-processing (Sharp/NestJS) - watermarks, quality scoring + entrypoint: pnpm start + healthCheck: + type: http + path: /health + dependencies: [] + + # ============================================================================= + # Quality & Safety Services + # ============================================================================= + - id: aesthetic + name: Aesthetic Scoring + type: ml + port: 8006 + gpu: true + description: Image aesthetic quality scoring + entrypoint: uvicorn imajin_aesthetic.main:app --host 0.0.0.0 --port 8006 + healthCheck: + type: http + path: /health + dependencies: [] + + - id: semantic + name: Semantic Analysis + type: ml + port: 8007 + gpu: true + description: Image semantic understanding and tagging + entrypoint: uvicorn imajin_semantic.main:app --host 0.0.0.0 --port 8007 + healthCheck: + type: http + path: /health + dependencies: [] + + - id: moderator + name: Content Moderator + type: ml + port: 8008 + description: Content safety and moderation + entrypoint: uvicorn imajin_moderator.main:app --host 0.0.0.0 --port 8008 + healthCheck: + type: http + path: /health + dependencies: [] + +# Infrastructure dependencies (external) +deployments: + redis: + service: redis.default + description: GPU coordination via model-boss