Supports downloading and using models from Hugging Face Hub for various computer vision tasks like object detection.
Uses Imgur for image hosting and sharing in the demonstration examples, displaying the results of image processing operations.
Utilizes NumPy for image manipulation operations, particularly for the cropping functionality through OpenCV's NumPy slicing approach.
🪄 ImageSorcery MCP
Волшебство распознавания и редактирования изображений на основе ComputerVision для помощников с искусственным интеллектом
❌ Без ImageSorcery MCP
Возможности ИИ-помощников при работе с изображениями ограничены:
- ❌ Невозможно изменять или анализировать изображения напрямую
- ❌ Нет в��зможности обрезать, изменять размер или обрабатывать изображения
- ❌ Некоторые LLM не могут обнаруживать объекты или извлекать текст из изображений
- ❌ Ограничено словесными описаниями без визуальной манипуляции
✅ С ImageSorcery MCP
🪄 ImageSorcery
предоставляет помощникам на базе искусственного интеллекта мощные возможности обработки изображений:
- ✅ Обрезайте, изменяйте размер и вращайте изображения с точностью
- ✅ Рисуйте текст и фигуры на изображениях
- ✅ Обнаружение объектов с использованием современных моделей
- ✅ Извлечение текста из изображений с помощью OCR
- ✅ Получите подробные метаданные изображения
- ✅ Используйте широкий спектр предварительно обученных моделей для обнаружения объектов, OCR и многого другого
Просто попросите свой ИИ помочь вам с задачами по обработке изображений:
"скопировать фотографии с домашними животными из папки
photos
в папкуpets
"
«Найдите кошку на фото.jpg и обрежьте изображение пополам по высоте и ширине, чтобы кошка оказалась по центру» 😉 Подсказка: используйте полный путь к файлам.
"Пронумеруйте поля формы в этом
form.jpg
с помощью моделиfoduucom/web-form-ui-field-detection
и заполнитеform.md
списком описанных полей" 😉 Подсказка: укажите модель и степень уверенности.
😉 Подсказка: добавьте «use imagesorcery», чтобы убедиться, что будет использоваться правильный инструмент».
Ваш инструмент будет объединять в себе несколько перечисленных ниже инструментов для достижения вашей цели.
🛠️ Доступные инструменты
Инструмент | Описание | Пример подсказки |
---|---|---|
crop | Обрезает изображение, используя подход нарезки NumPy OpenCV. | «Обрезать мое изображение 'input.png' от координат (10,10) до (200,200) и сохранить его как 'cropped.png'» |
resize | Изменение размера изображения с помощью OpenCV | «Изменить размер моего изображения «photo.jpg» до 800x600 пикселей и сохранить его как «resized_photo.jpg»» |
rotate | Поворачивает изображение с помощью функции imutils.rotate_bound | «Повернуть мое изображение «photo.jpg» на 45 градусов и сохранить его как «rotated_photo.jpg»» |
draw_texts | Рисует текст на изображении с помощью OpenCV | «Добавьте текст «Hello World» в позицию (50,50) и «Copyright 2023» в правый нижний угол моего изображения «photo.jpg»» |
draw_rectangles | Рисует прямоугольники на изображении с помощью OpenCV | «Нарисуйте красный прямоугольник от (50,50) до (150,100) и закрашенный синий прямоугольник от (200,150) до (300,250) на моем изображении 'photo.jpg'» |
get_metainfo | Получает метаданные о файле изображения | «Получить метаданные о моем изображении 'photo.jpg'» |
detect | Обнаруживает объекты на изображении с использованием моделей Ultralytics | «Определить объекты на моем изображении «photo.jpg» с порогом достоверности 0,4» |
find | Находит объекты на изображении по текстовому описанию | «Найти всех собак на моем изображении 'photo.jpg' с порогом достоверности 0,4» |
get_models | Перечисляет все доступные модели в каталоге моделей | «Перечислить все доступные модели в каталоге моделей» |
ocr | Выполняет оптическое распознавание символов (OCR) на изображении с помощью EasyOCR | «Извлеките текст из моего изображения «document.jpg» с помощью OCR на английском языке» |
😉 Совет: подробную информацию и инструкции по использованию каждого инструмента можно найти в файле /src/imagesorcery_mcp/tools/README.md
.
🚀 Начало работы
Требования
Python 3.10
или вышеClaude.app
,Cline
или другой клиент MCP
Установка
- Создайте и активируйте виртуальную среду (настоятельно рекомендуется): для надежной установки всех компонентов, особенно пакета
clip
(устанавливается с помощью скрипта после установки), настоятельно рекомендуется использовать встроенный в Python модульvenv
вместоuv venv
. - Установите пакет в активированную виртуальную среду: можно использовать
pip
илиuv pip
. - Запустите скрипт после установки: Этот шаг имеет решающее значение. Он загружает требуемые модели и пытается установить пакет Python
clip
из GitHub в активную виртуальную среду.
- Создает каталог
models
(обычно в каталоге site-packages вашей виртуальной среды или в определенном пользователем месте, если установлена глобально) для хранения предварительно обученных моделей. - Генерирует там начальный файл
models/model_descriptions.json
. - Загружает стандартные модели YOLO (
yoloe-11l-seg-pf.pt
,yoloe-11s-seg-pf.pt
,yoloe-11l-seg.pt
,yoloe-11s-seg.pt
), необходимые для инструментаdetect
, в этот каталогmodels
. - Попытки установить пакет Python
clip
из репозитория Ultralytics' GitHub напрямую в активную среду Python. Это необходимо для функциональности текстовых подсказок в инструментеfind
. - Загружает файл модели CLIP, необходимый инструменту
find
, в каталогmodels
.
Вы можете запустить этот процесс в любое время, чтобы восстановить модели по умолчанию и попытаться установить clip
.
- Использование
uv venv
для создания виртуальных сред: на основе тестирования виртуальные среды, созданные с помощьюuv venv
могут не включатьpip
таким образом, чтобы скриптimagesorcery-mcp --post-install
автоматически устанавливал пакетclip
из GitHub (это может привести к ошибке «No module named pip» на этапе установкиclip
). Если вы решите использоватьuv venv
:- Создайте и активируйте свой
uv venv
. - Установите
imagesorcery-mcp
:uv pip install imagesorcery-mcp
. - Вручную установите пакет
clip
в ваш активныйuv venv
: - Запустите
imagesorcery-mcp --post-install
. Это загрузит модели, но может не установить пакет Pythonclip
. Для более плавной автоматической установкиclip
через скрипт post-install рекомендуется использоватьpython -m venv
(как описано в шаге 1 выше) для создания виртуальной среды.
- Создайте и активируйте свой
- Использование
uvx imagesorcery-mcp --post-install
: запуск скрипта после установки напрямую с помощьюuvx
(например,uvx imagesorcery-mcp --post-install
) скорее всего не установит пакет Pythonclip
. Это связано с тем, что временная среда, созданнаяuvx
, обычно не имеетpip
, доступного для использования скриптом. Модели будут загружены, но пакетclip
не будет установлен этой командой. Если вы собираетесь использоватьuvx
для запуска основного сервераimagesorcery-mcp
и вам требуется функциональностьclip
, вам нужно будет убедиться, что пакетclip
установлен в доступной среде Python, которую может найтиuvx
, или рассмотреть возможность установкиimagesorcery-mcp
в постоянную среду, созданную с помощьюpython -m venv
.
⚙️ Конфигурация MCP клиента
Добавьте эти настройки в ваш клиент MCP. Если imagesorcery-mcp
находится в PATH вашей системы после установки, вы можете использовать imagesorcery-mcp
напрямую как команду. В противном случае вам нужно будет указать полный путь к исполняемому файлу.
📦 Дополнительные модели
Для некоторых инструментов требуется наличие определенных моделей в каталоге models
:
При загрузке моделей скрипт автоматически обновляет файл models/model_descriptions.json
:
- Для моделей Ultralytics: описания предопределены в
src/imagesorcery_mcp/scripts/create_model_descriptions.py
и включают подробную информацию о назначении, размере и характеристиках каждой модели. - Для моделей Hugging Face: Описания автоматически извлекаются из карточки модели на Hugging Face Hub. Скрипт пытается использовать имя модели из индекса модели или первой строки описания.
После загрузки моделей рекомендуется проверить описания в models/model_descriptions.json
и при необходимости скорректировать их, чтобы предоставить более точную или подробную информацию о возможностях моделей и вариантах использования.
🤝 Вклад
Структура каталога
Этот репозиторий организован следующим образом:
Настройка разработки
- Клонируйте репозиторий:
- (Рекомендуется) Создайте и активируйте виртуальную среду:
- Установите пакет в режиме редактирования вместе с зависимостями разработки:
Это установит imagesorcery-mcp
и все зависимости из [project.dependencies]
и [project.optional-dependencies].dev
(включая build
и twine
).
Правила
Эти правила применяются ко всем участникам: людям и ИИ.
- Прочитайте все файлы
README.md
в проекте. Поймите структуру и цель проекта. Поймите правила для внесения вклада. Подумайте, как это связано с вашей задачей, и как внести соответствующие изменения. - Прочитайте
pyproject.toml
. Обратите внимание на разделы:[tool.ruff]
,[tool.ruff.lint]
,[project.optional-dependencies]
и[project]dependencies
. Строго следуйте стилю кода, определенному вpyproject.toml
. Придерживайтесь стека, определенного в зависимостяхpyproject.toml
и не добавляйте новые зависимости без веской причины. - Напишите свой код в новых и существующих файлах. Если нужны новые зависимости, обновите
pyproject.toml
и установите их черезpip install -e .
илиpip install -e ".[dev]"
. Не устанавливайте их напрямую черезpip install
. Проверьте существующие исходные коды для примеров (например,src/imagesorcery_mcp/server.py
,src/imagesorcery_mcp/tools/crop.py
). Придерживайтесь стиля кода, соглашений об именовании, форматов входных и выходных данных, структуры кододеса, архитектуры и т. д. существующего кода. - Обновите связанные файлы
README.md
с вашими изменениями. Придерживайтесь формата и структуры существующих файловREADME.md
. - Напишите тесты для своего кода. Проверьте существующие тесты на наличие примеров (например,
tests/test_server.py
,tests/tools/test_crop.py
). Придерживайтесь стиля кода, соглашений об именовании, форматов входных и выходных данных, структуры кода, архитектуры и т. д. существующих тестов. - Запустите тесты и линтер, чтобы убедиться, что все работает:
В случае сбоев - исправить код и тесты. Строго необходимо, чтобы весь новый код соответствовал правилам линтера и проходил все тесты.
Советы по кодированию
- Используйте подсказки по типу, где это уместно
- Используйте pydantic для проверки и сериализации данных
📝 Вопросы?
Если у вас есть вопросы, проблемы или предложения относительно этого проекта, обращайтесь:
Вы также можете открыть сообщение об ошибке в репозитории для отправки отчетов об ошибках или запросов на новые функции.
📜 Лицензия
Этот проект лицензирован по лицензии MIT. Это означает, что вы можете свободно использовать, изменять и распространять программное обеспечение в соответствии с условиями лицензии MIT.
Related MCP Servers
- Rust
- GoMIT License
- TypeScript
- -securityAlicense-qualitymcp-victoriametricsLast updated -25GoApache 2.0