Описание:
Бот принимает фотографию с повреждениями и обрабатывает (восстанавливает) различными способами.
Каждый шаг обработки производится над результатом предыдущей обработки: Сначала убираются повреждения на фотографии, царапины, надрывы, пятна и т.п. далее фотографии придаётся натуральный цвет, потом увеличивается резкость и добавляются детали.
Это мой самый большой проект в n8n, для удобства разработки он разбит на 15 workflow разных типов взаимодействующих друг с другом (Sub-workflow, HTTP webhook, Telegram Triggers, Schedule Trigger).
Реализован скрипт копирования dev версии проекта (всех workflow) в prod на другой инстанс n8n через n8n API.
Используется Supabase Database для полноценного хранения данных (пользователи, тарифы, оплата, задачи для обработки, промпты, и т.п.)
На данный момент бот продолжает разрабатываться и есть несколько планов на будущее:
- Переход с flux-kontext-pro на gemini-2-5-flash-image
- Замена Supabase Database на локальный postgres
- вынесение очереди выполнения задач на отдельный сервер
- добавление сервера очередей
Возможности бота:
- Пошаговая обработка фотографий, а также возможность независимой обработки фотографии различными промптами.
- к каждому промпту можно добавить зависимость от другого промпта, для реализации пошаговой обработки.
- Хранение в базе данных (Supabase) различной информации (пользователи, фотографии, задачи на обработку, тарифы, счета на оплату, прокси серверы, токены для нейросети и т.п.)
- Приём реальных платежей двумя способами: через API Yoomoney (внешняя ссылка) и встроенной в Телеграм системой оплаты (вы выходя из телеграм).
- Генерация и выдача чека после оплаты (интергация с API личного кабинета в налоговой)
- Добавление водяных знаков с указанием ссылки на телеграм бота для демонстрационных фотографий (с помощью самописаного внешнего микросервиса на FastAPI)
- Ротация токенов и прокси серверверов для обработки фотографий (для разработки использую бесплатные способы генерации)
- Синхронизация и проверка прокси серверов с помощью стороннего сервиса через API.
- Система оценки результатов пользователем.
- Возможность написать отзыв или жалобу на результат
- Реализация очереди выполнения заданий
- повсеместно используются inlineKeyboard как удобный элемент взяимодействия с пользователем
- реализован отдельный микросервис для запросов с прокси серверами, т.к. обнаружилось, что стандартная нода HTTPRequest может зависнуть намертво на неопределённое время несмотря на заданный таймаут.