Мой блог
Как я создал «Проявку»: отправляем снимки с камер Sony в Telegram с пленочными пресетами
Я всегда увлекался фотографией, но искренне недолюбливал рутинный процесс переноса и последующей обработки файлов в формате RAW. Именно поэтому я разработал собственный проект под названием «Проявка».
Теперь достаточно просто нажать на кнопку затвора, и спустя каких-то тридцать секунд готовый снимок со стилизацией под аналоговую пленку, красивыми цветами, зернистостью, световыми эффектами и датой в углу уже ждет меня в Telegram. Инструмент отлично взаимодействует с моими актуальными камерами Sony A7C II и проверенной временем a6300, а также подходит практически для любых фотоаппаратов Sony с поддержкой FTP-передачи или возможностью установки пользовательских приложений. Поскольку я не обладаю глубокими познаниями в профессиональном программировании, весь софт мне помогал писать известный искусственный интеллект Claude. В этой публикации я подробно расскажу, как устроен этот проект и как запустить его самостоятельно всего за десять минут.




В поисках аналоговой эстетики без лишних затрат
Не так давно я вспомнил про встроенные функции имитации пленочных профилей в фотоаппаратах Fujifilm и всерьез загорелся покупкой такой техники. Вся суть подобного подхода заключается в том, что вы просто делаете кадр, а на выходе сразу получаете готовый JPEG с характерным пленочным настроением — без необходимости открывать сложные редакторы, вручную перекидывать файлы с карточек памяти и вымерять каждый пиксель на мониторе.
Однако техника Fujifilm не решала другую фундаментальную задачу — отснятый материал все равно требуется как-то извлекать из камеры, а существующие фирменные утилиты для беспроводной передачи на смартфон всегда казались мне крайне неудобными. Я владею моделями a6300 и A7C II и по личному опыту знаю, что гораздо проще дождаться возвращения домой и перекинуть кадры через картридер на ноутбук, чем пытаться наладить стабильную работу мобильных приложений от производителя.
Идея автоматизации: камера отправляет кадр, сервер его обрабатывает
Изучая характеристики своей A7C II, я обнаружил функцию FTP-трансфера, которую раньше никогда не использовал за ненадобностью в любительской съемке. В этот момент у меня родилась концепция рабочего процесса: создать удаленный сервер, который будет в автоматическом режиме принимать каждый новый файл, поступающий с камеры, и запускать цепочку обработки, завершающуюся отправкой готового кадра в телеграм-бот.
Такой подход позволил элегантно решить сразу две важные проблемы. Во-первых, отпала необходимость приобретать отдельную камеру ради пленочных пресетов — теперь аналогичный эффект автоматически накладывается на снимки с любого устройства, поддерживающего передачу по FTP. Во-вторых, фотографии сразу оказываются в мессенджере, откуда их можно мгновенно переслать друзьям или оценить с экрана планшета.
Конечная цель заключалась вовсе не в получении технически безупречных студийных кадров, а в достижении максимальной простоты и интерактивности во время съемочного процесса. Конечно, на пути реализации возникли определенные технические нюансы. Поскольку домашнего выделенного IP-адреса у меня не было, а камере необходим стабильный доступ к сети, я арендовал недорогой VPS-сервер, который взял на себя роль связующего звена между фотоаппаратом и облачной инфраструктурой.
Организовывать раздачу интернета со смартфона прямо во время прогулки тоже не хотелось, чтобы лишний раз не садить аккумулятор телефона и камеры. В этом не было острой необходимости, ведь по возвращении домой достаточно зайти в меню своей Sony, выбрать пункт FTP-передачи и указать нужный временной интервал. При этом на серверной стороне предусмотрена надежная защита от дубликатов, поэтому даже при повторной синхронизации бот обработает только новые кадры.

Первая версия утилиты и удобное мини-приложение
На начальном этапе я собрал базовую версию бота, в арсенале которой было всего двенадцать пресетов, вдохновленных классическими пленками. Во время спуска затвора система принимала исходный файл в формате JPEG — для надежности и подстраховки во время съемок я рекомендую использовать режим сохранения RAW+JPEG, — после чего случайным образом применяла один из доступных профилей и отправляла результат в чат.
Это был отличный старт для проверки работоспособности концепции, но для повседневного использования требовался более гибкий контроль. В результате прямо внутри Telegram появился полноценный мини-апп. Теперь пользователи могут самостоятельно выбирать нужную пленочную стилизацию, просматривать ленту отснятых кадров с датами, изучать уменьшенные превью перед генерацией полноразмерного файла, настраивать интенсивность наложения префектов в диапазоне от 25% до 150%, а также добавлять случайные световые утечки, рамки и штампы с датой съемки.
Интеллектуальная составляющая бота научилась анализировать окружение и подбирать подходящий пресет в зависимости от условий освещения — будь то ночной город, закатное солнце, пасмурная погода или пейзаж. При желании можно зафиксировать любимый профиль в настройках, чтобы все поступающие фотографии обрабатывались исключительно в единой выбранной эстетике.
Самое интересное: запуск на старой Sony a6300 без поддержки FTP
Перспектива того, что моя компактная камера a6300 останется за бортом этого процесса, меня сильно огорчила, поскольку штатного функционала FTP на ней не предусмотрено. Мой ИИ-помощник сначала предлагал варианты с ручной загрузкой файлов, но я прекрасно понимал, что из-за лишних телодвижений пользоваться такой автоматизацией в итоге не захочется.
Тогда я вспомнил про существование неофициального инструмента OpenMemories-Tweak для старых камер Sony. Тщательно изучив доступные возможности и поковырявшись в системе, я обнаружил интереснейшую деталь: под капотом скрывалась операционная система Android 4.1.2 SDK 16, а также полноценная поддержка интерфейсов ADB и Telnet. За эту зацепку мы и ухватились. Я передал всю собранную информацию и структуру твиков нейросети Claude, после чего мы приступили к отладке кастомного APK-приложения.
Внутреннее устройство системы
Архитектура проекта выглядит следующим образом: современные камеры с поддержкой FTP вроде A7C II или A7 IV отправляют снимки напрямую по протоколу FTPS, в то время как более ранние модели вроде линейки a6000–a6500 или компактных RX100 передают кадры через HTTPS с помощью установленного приложения.
На стороне арендованного VPS установщик автоматически разворачивает FTP-сервер vsftpd и веб-сервер nginx, который принимает входящие запросы от камерного софта. Полученный файл сохраняется в директорию, после чего бот подхватывает его, фильтрует возможные дубликаты, производит цифровую «проявку» и пересылает готовый результат в чат. При необходимости оригинальный файл всегда можно выгрузить в исходном разрешении без какого-либо сжатия со стороны мессенджера.

Важно отметить, что пленочные эффекты здесь реализованы не за счет банального скачивания готовых таблиц лукаут-коррекции. Каждая отдельная пленочная эмуляция представляет собой сложную математическую модель, учитывающую тоновые кривые, баланс теней, светов и общую насыщенность. На основе этих параметров прямо «на лету» генерируется уникальный трехмерный 3D LUT. Добавление нового пленочного профиля сводится к изменению примерно дюжины числовых параметров в конфигурационном файле, структура которого подробно описана в документации проекта в репозитории.
Пошаговое руководство по установке
Не стоит пугаться необходимости аренды выделенного сервера — для тестирования можно взять минимальный тариф буквально на пару часов. Подойдет любой VPS под управлением операционных систем Ubuntu 22.04+ или Debian 12+, причем для стабильной работы вполне хватит одного ядра процессора и одного-двух гигабайт оперативной памяти.
Покупать отдельное доменное имя не требуется, так как скрипт настройки автоматически задействует бесплатный сервис sslug.io и выпустит валидный сертификат безопасности Let’s Encrypt. Самого же телеграм-бота можно создать всего за минуту через официального помощника @BotFather.
После подготовки сервера достаточно подключиться к нему по SSH и выполнить следующие команды:
git clone https://github.com/Melnikoff07/proyavka.git
cd proyavka
python3 setup.py
В процессе выполнения установщик запросит токен созданного бота и самостоятельно выполнит всю необходимую конфигурацию. После этого достаточно отправить боту команду /camera, в ответ на которую он пришлет файлы для записи на карту памяти и подробную инструкцию для конкретной модели вашей камеры. Вся инфраструктура находится под вашим полным контролем на личном сервере — никаких сторонних подписок и облачных хранилищ, ваши снимки принадлежат только вам.
Планы на будущее и развитие проекта
На текущий момент в проект заложены все те функции, которые мы успели реализовать совместно с Claude. Внутренняя архитектура будет постепенно совершенствоваться, а список доступных возможностей — расширяться. В конечном счете нам удалось создать минималистичный инструмент для ленивых фотографов, которые предпочитают наслаждаться процессом съемки, а не тратить часы на постобработку кадров за компьютером.

Данным экспериментом я вовсе не претендую на звание гуру во всех задействованных технологических дисциплинах, но искренне надеюсь вдохновить читателей на собственные эксперименты даже с такими закрытыми и проприетарными экосистемами, как цифровые фотоаппараты. Для творчества всегда найдется пространство! Я приглашаю всех энтузиастов попробовать этот инструмент на практике, оставлять свои комментарии и идеи по улучшению. Если вы обладаете навыками программирования, буду безмерно благодарен за любые пул-реквесты и помощь в развитии открытого репозитория.
