Files
tensors/TODO.md
T
Adam Ladachowski 11a289ebd0 Phase 3: Enhanced Server API
Add comprehensive server API for remote operations:

Step 3.1 - Gallery endpoints:
- GET /api/images - List images (paginated, newest first)
- GET /api/images/{id} - Get image file
- GET /api/images/{id}/meta - Get generation metadata
- POST /api/images/{id}/edit - Update metadata (tags, notes)
- DELETE /api/images/{id} - Delete image + sidecar
- Gallery module with image management and sidecar JSON support

Step 3.2 - Model management:
- GET /api/models - List available checkpoints
- GET /api/models/active - Current loaded model info
- POST /api/models/switch - Switch model (hot reload)
- GET /api/models/loras - List available LoRAs
- GET /api/models/scan - Scan all model directories

Step 3.3 - Download proxy:
- POST /api/download - Start background download from CivitAI
- GET /api/download/status/{id} - Check download progress
- GET /api/download/active - List active downloads
- Auto-scan and link files after download

Step 3.4 - Enhanced generation:
- POST /api/generate - Generate with gallery integration
- Saves images to gallery with metadata sidecar
- Supports all sd-server params
- GET /api/samplers, /api/schedulers - List options

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-14 01:40:25 +01:00

2.6 KiB
Raw Blame History

TODO: tsr Server/Client Architecture

Phase 1: Model-Specific Docker Images (SKIPPED)

  • Step 1.1: Create rocm-docker/model-defaults.toml (skipped)
  • Step 1.2: Parameterize Dockerfile.sd-server (skipped)
  • Step 1.3: Create rocm-docker/build-all.sh (skipped)

Phase 2: Models Database in tensors

  • Step 2.1: Create tensors/db.py + tensors/schema.sql (SQLite wrapper, schema, CRUD)
  • Step 2.2: Add tsr db CLI commands (scan, link, cache, list, search, triggers, stats)
  • Step 2.3: Add /api/db/* endpoints (files, models, triggers, scan, link, cache, stats)

Phase 3: Enhanced Server API

  • Step 3.1: Add /api/images gallery endpoints (list, get, delete, edit)
  • Step 3.2: Add /api/models endpoints (list, active, switch, loras)
  • Step 3.3: Add /api/download endpoint (CivitAI proxy download)
  • Step 3.4: Enhance /api/generate (gallery integration, full params)

Phase 4: Client Mode for tsr CLI

  • Step 4.1: Create tensors/client.py (TsrClient HTTP wrapper)
  • Step 4.2: Add [remotes] config section + --remote flag support
  • Step 4.3: Update CLI commands with --remote support (generate, images, models, dl, db)

Phase 5: Docker Deployment Automation (SKIPPED)

  • Step 5.1: Create rocm-docker/docker-compose.yml (skipped)
  • Step 5.2: Create rocm-docker/deploy.sh (skipped)
  • Step 5.3: Create rocm-docker/tsr-server.service (skipped)

Phase 6: Tests

  • Step 6.1: tests/test_db.py (database module tests)
  • Step 6.2: tests/test_server.py (API endpoint tests)
  • Step 6.3: tests/test_client.py (client module tests)

Quick Reference

ROCm Docker Run (Unrestricted)

docker run -d --name sd-server \
  --privileged \
  --device=/dev/kfd \
  --device=/dev/dri \
  --group-add video \
  --ipc=host \
  --shm-size=8G \
  -v /path/to/models:/models \
  -p 1234:1234 \
  -e MODEL=/models/model.safetensors \
  sd-server:rocm

sd-server API Endpoints

  • POST /sdapi/v1/txt2img — Generate image (A1111 compatible)
  • POST /sdapi/v1/img2img — Edit image
  • GET /sdapi/v1/loras — List LoRAs
  • GET /sdapi/v1/samplers — List samplers
  • GET /sdapi/v1/schedulers — List schedulers

Model Family Defaults (from models.md)

Family Resolution Steps CFG Sampler Scheduler
SD 1.5 512×512 20-30 7-8 DPM++ 2M Karras
SDXL 1024×1024 25-30 5-7 DPM++ 2M Karras
Pony 1024×1024 25-30 5-7 Euler a simple
Illustrious 1024×1024 25-30 5-7 Euler a simple
Flux 1024×1024 20-30 1-3 Euler simple