HEART для Swift/MLX: локальное увеличение изображений на Apple Silicon
На странице · 3 разделов
29 сентября 2026 года опубликован тег mlx-heart-swift v0.1.0: порт модели HEART для локального увеличения изображений через Swift/MLX на Apple Silicon. Доступны четыре FP16-чекпойнта: один для 2× и три для 4×. Это библиотека для разработчика, а не готовое приложение; заявленные скорость и качество измерены автором порта, Modelium их не воспроизводил.
HEART для Swift/MLX: локальный апскейл на Mac
29 сентября 2026 года автор порта пометил тегом v0.1.0 репозиторий xocialize/mlx-heart-swift. Это реализация модели сверхразрешения HEART в Swift/MLX для Apple Silicon. Модель не новая: исходные веса Phips/HEART появились раньше; новость — доступные MLX-конверсии и опубликованный код запуска в экосистеме MLXEngine. В репозитории есть исходники, тесты и пример вызова; отдельного GitHub Release на момент проверки нет. s1 s2 s3
Что доступно
В mlx-community/HEART-fp16 опубликованы четыре отдельных файла весов: heart_4x_otf_v2_fp16.safetensors (режим .fidelity, 4×), heart_4x_otf_gan_fp16.safetensors (.sharp, 4×), heart_4x_pretrain_fp16.safetensors (.clean, 4×) и heart_2x_fp16.safetensors (.clean2x, 2×). Для сравнения точности есть отдельный репозиторий FP32. Это варианты одной модели, а не четыре разные архитектуры; рантайм загружает выбранный файл при первом использовании. Исходный репозиторий Phips содержит соответствующие четыре PyTorch-чекпойнта и LICENSE. В карточке конверсии указан фиксированный SHA исходных весов 868878ce…. s2 s3 s4
Исходные код и веса HEART помечены Apache-2.0; порт также распространяется под Apache-2.0. Такая лицензия допускает коммерческое использование при соблюдении её условий, но это не обещание пригодности результата для конкретного проекта. Заявление о тренировке на CC0-корпусе принадлежит авторам карточек; отдельно проверять права на свои входные изображения всё равно необходимо. s2 s3 s4
Как выбрать и подключить
Для повреждённых JPEG, размытия и шума автор порта рекомендует .fidelity; .sharp ориентирован на более выразительную текстуру, .clean — на чистый исходник. .clean2x использует собственные веса для 2×. В документации отмечено, что запрос 2× при выбранном .fidelity выполняется через 4× с последующим уменьшением, а не переключается автоматически на .clean2x. Это разные маршруты обработки, и качество лучше сравнивать на своих изображениях. s2 s5
Это Swift Package, а не интерфейс для загрузки фото. В Package.swift указаны macOS 26, зависимости mlx-engine-swift от 0.63.0, mlx-realesrgan-swift от 0.7.0 и mlx-swift от 0.30.0. Разработчик добавляет пакет в своё Swift-приложение, импортирует MLXServeCore и MLXHEART, регистрирует HEARTUpscalePackage.registration с HEARTConfiguration(variant: .fidelity, quant: .fp16) и передаёт ImageUpscaleRequest в MLXServeEngine.run. Точный пример есть в README закреплённого тега; не переносите этот рецепт на обычный Python MLX без проверки совместимости. s2 s6
Что значат цифры и где осторожность
По замерам автора порта на M5 Max, FP16-вариант .fidelity показал около 450 мс на мегапиксель выходного изображения в одном тесте 256² → 1024². Это не независимый тест Modelium и не обещание скорости на другом Mac: в отчёте для 512² → 2048² отмечен рост времени между повторами. Заявленные показатели согласия с PyTorch и различия FP16/FP32 также относятся к методике автора и конкретным наборам изображений; сравнение с ONNX у автора расходится для одного из исходных чекпойнтов, поэтому не выдаём ONNX за безусловный эталон. s5
При обработке больших изображений пакет использует тайлы. У HEART нормализация зависит от изображения целиком, поэтому тайловый результат не идентичен обработке одним проходом. Автор выбрал тайлы 512² с перекрытием 32 пикселя в рамках своего тестового набора; это не гарантия бесшовности на любом входе. Размер файла весов не равен минимальной требуемой памяти: расход зависит от размеров кадра и режима обработки. Начинайте с маленького тестового изображения и сравните детали/швы на собственном материале, прежде чем интегрировать библиотеку в конвейер. s2 s5
Источники
- mlx-heart-swift v0.1.0, аннотированный Git tag. Получено 29.09.2026.
- mlx-heart-swift README, закреплённый тег v0.1.0. Получено 29.09.2026.
- mlx-community/HEART-fp16, карточка и файлы в ревизии 441fd099. Получено 29.09.2026.
- Phips/HEART, исходные файлы и LICENSE в ревизии 868878ce. Получено 29.09.2026.
- PORTING-SPEC.md: авторские проверки, скорость, тайлинг, ограничения ONNX. Получено 29.09.2026.
- Package.swift, совместимость и зависимости. Получено 29.09.2026.