Spaces:
Paused
title: SumakaClone
emoji: π¨
colorFrom: green
colorTo: blue
sdk: docker
app_port: 7860
pinned: false
SumakaClone
SumakaClone is a production-oriented Telegram AI image generation and editing system built with Python 3.12, Aiogram 3, FastAPI, MongoDB, Redis, Celery, ComfyUI, Hugging Face model sync, Cloudflare R2-compatible object storage, and Nginx.
High-Level Architecture
- Telegram users interact with the
aiogrambot service over long polling. - The bot and the FastAPI API share the same repository and service layer, so credits, jobs, settings, referrals, and audit rules stay consistent.
- Job creation writes MongoDB documents, charges credits, enforces daily quotas, and dispatches work to Celery queues backed by Redis.
- Celery workers upload source assets to ComfyUI, submit workflows, track progress, and store finished images in S3-compatible storage or local disk. Local model sync can be enabled for self-hosted GPU nodes or disabled for remote notebook backends.
- FastAPI exposes
/api/v1/*routes plus an admin dashboard for monitoring users, jobs, credits, models, and broadcasts. - Nginx fronts the API/admin panel and handles reverse proxy duties in containerized deployments.
Folder Structure
SumakaClone/
βββ backend/
β βββ app/
β β βββ admin/
β β βββ api/
β β βββ bot/
β β βββ configs/
β β βββ database/
β β βββ middleware/
β β βββ models/
β β βββ repositories/
β β βββ services/
β β βββ storage/
β β βββ utils/
β β βββ workers/
β βββ scripts/
β βββ tests/
β βββ Dockerfile
β βββ pyproject.toml
βββ docker/
β βββ comfyui/
β βββ nginx/
βββ docs/
βββ .env.example
βββ docker-compose.yml
βββ DEPLOYMENT.md
Database Collections
users: Telegram accounts, admin accounts, roles, credits, quotas, locale, premium state.subscriptions: provider subscriptions and billing periods.credits: immutable ledger of top-ups, charges, referrals, admin adjustments, and refunds.transactions: checkout/payment records and provider references.jobs: queueable generation/editing tasks with progress and worker metadata.images: stored originals, masks, previews, and generated outputs.prompts: sanitized prompts and moderation flags.referrals: referral reward links.admin_logs: dashboard/admin actions.audit_logs: security and system audit events.
Core Runtime
- API:
uvicorn app.main:app --host 0.0.0.0 --port 8080 - Bot:
python -m app.bot.main - Worker:
celery -A app.workers.celery_app.celery_app worker -l info -Q jobs.high,jobs.default,jobs.low - Beat:
celery -A app.workers.celery_app.celery_app beat -l info - ComfyUI:
python main.py --listen 0.0.0.0 --port 8188
Feature Coverage
- Telegram bot commands:
/start,/help,/profile,/credits,/history,/settings, plus admin commands. - Multilingual bot UX with English, Hindi, Spanish, and Russian catalogs.
- Text-to-image and image-to-image job creation with model selection, aspect ratios, HD mode, negative prompts, seeds, and batch fields in the job schema.
- Edit modes for anime, Ghibli, cartoon, realistic enhancement, face enhancement, background changes, object edits, repainting, inpainting/outpainting, upscaling, colorization, and old-photo restoration.
- Mongo-backed user system with free signup credits, referrals, premium-aware discounts, and payment transaction records.
- JWT-protected FastAPI admin panel with role checks, rate limits, request IDs, audit trails, and credit management.
- Celery retry logic, queue priority routing, worker progress updates, and scheduled cleanup of expired storage objects.
Quick Start
- Copy
.env.exampleto.env. - Fill in your Telegram bot token and JWT secret.
- Start the stack:
docker compose up --build
- Bootstrap the first admin user:
docker compose run --rm api python scripts/bootstrap_admin.py --username admin --password change-me --email admin@example.com
- Open:
- API docs:
http://localhost/docs - Admin dashboard:
http://localhost/admin - MinIO console:
http://localhost:9001
Free Remote GPU Path
If you want to avoid paid inference APIs and avoid running a local GPU, use the remote notebook path:
- Copy
.env.remote.exampleto.env.remote. - Run either:
- the bash script notebooks/colab_kaggle_comfyui_single_cell.sh in a
%%bashcell, or - the Python runner notebooks/colab_kaggle_comfyui_single_cell.py in a normal Python cell.
- the bash script notebooks/colab_kaggle_comfyui_single_cell.sh in a
- Copy the printed
COMFYUI__BASE_URLandCOMFYUI__WEBSOCKET_URLinto.env.remote. - Start the CPU-side services:
docker compose -f docker-compose.remote.yml up --build -d
More detail lives in docs/FREE_REMOTE_BACKEND.md.
API Documentation
Route-level notes live in docs/API.md. The interactive OpenAPI docs are served from /docs.
Deployment Guide
Deployment paths for local development, VPS, dedicated GPU, Docker, and cloud environments live in DEPLOYMENT.md.
Hugging Face Space
A Hugging Face Space deployment path is included with a root Dockerfile, supervisor config, and startup script. Setup details live in docs/HUGGINGFACE_SPACE.md.
Test Suite
Run the backend tests from backend/:
python -m pytest