Поставил своё Android‑приложение на старую Sony и научил камеры отправлять и обрабатывать кадры

Я из тех людей, кто очень любит фотографировать и очень не любит заниматься потом всей рутиной, связанной с перекидыванием и обработкой равок. Поэтому я сделал «Проявку». Ты просто жмешь на затвор, и через полминуты кадр уже у тебя в телеграме с закосом на пленочный лук: цвет, зерно, засвет и дата в углу, все как мы любим.
Работает с моими Sony A7C II и a6300 и вообще с любой камерой, которая умеет отдавать фото по FTP, и почти со всеми старыми Sony, куда можно поставить свое приложение. Проект открытый: github.com/Melnikoff07/proyavka
Сразу скажу — автор не имеет никаких особенных технических знаний и знаком с программированием очень посредственно, поэтому весь софт решено было создавать клодом всем известным способом. Ниже расскажу, как все получилось и как поставить себе это за 10 минут. Так что это не туториал «как надо», а история о том, как далеко можно зайти с нейросетью и упрямством. Код открыт — критика и пул‑реквесты приветствуются!
Фуджифильм хочется, а деньги на него тратить — нет
Не так давно я вспомнил о возможности эмуляции пленок в Fujifilm сразу на жпег и, конечно, загорелся идеей покупки этой камеры, ведь все, что я хочу, уже есть там! Ты просто жмешь на затвор, и твоя картинка с закосом на пленку готова — никаких тебе лайтрумов, перекидывания фото и вымеривания пикселей.
Но фуджифильм не решал вторую проблему — фотки с камеры все еще надо доставать, а все проприетарные системы с перекидыванием на телефон я удобными не считаю. Являюсь владельцем Sony a6300 и Sony A7C II, и спустя кучу времени их использования могу с уверенностью сказать, что я лучше подожду до дома и перенесу все с SD на ноутбук, чем буду пользоваться их приложениями — это ад!
Идея: камера сама отправляет кадр, сервер сам его проявляет
Я обнаружил на A7C II функцию передачи по FTP, которую всегда обходил стороной и особо не замечал за ненадобностью — я не занимаюсь профессиональными съемками, и этот пункт был бесполезен. Но тут пришла идея.
Было решено делать сервер, который будет автоматически принимать каждый кадр от камеры и дальше запускать цепочку событий, конец которой — телеграм‑бот, выдающий тебе обработанную фотку. Это решало сразу две проблемы:
Отсутствие необходимости покупки фуджифильма — пленка теперь автоматически проставляется на любой камере с FTP.
Мои кадры автоматически в телеграме, и я могу сразу отправить их друзьям или посмотреть на другом устройстве.
А так как финальной целью является не идеально вылизанный кадр, а только простота съемки и ее интерактивность — то это идеально!
Оставались только 2 проблемы.
Белого IP дома нет, а камере нужен адрес в интернете — и его получение стоит копеечку в месяц. Решилось это выделенным VPS сервером, который по сути был посредником между камерой и распберри (забегая вперед скажу — опробовав выкинуть из этой схемы распберри, ничего особо не поменялось, даже слабенький VPS справляется с поставленной задачей шустро. И да, этот репозиторий никак не влияет на неизвестное содержимое вашего впс — ладно, все мы знаем, что там обычно крутится).
Wi‑Fi на прогулке. Ковыряться во время прогулки с вай‑фаем — раздавать его с телефона, садить телефон и камеру быстрее — тоже не кажется выходом, хотя и является неплохим решением, если важна срочность. Но особо решать это и не требовалось: по приходу домой вы можете зайти в свою Sony, просто кликнуть FTP transfer и выделить нужный период — а на стороне сервера уже стоит защита от дубликатов, поэтому даже если часть фото совпадет, бот получит только те, которые отличаются.
Первая версия и мини‑приложение
И таким образом появилась первая версия бота. Под капотом она имела 12 пресетов, вдохновленных пленкой, и при щелчке затвора получала исходный жпег (а именно в нем мы и будем фотографировать — RAW+J можете использовать для пущей уверенности в непропадании кадров), после чего рандомно накладывала один из пресетов и выдавала результат в чат с ботом.

Это уже был отличный старт, но до юзабельной вещи далеко. Безусловно, хочется иметь контроль над пленкой — поэтому впоследствии прямо в телеграме появилось мини‑приложение: выбор пленки, лента фото с датами, сразу предпросмотр лоуреза при выборе пленки, по щелчку отрендеривается фуллрез, регулировка силы пресета от 25 до 150%, засветы и их рандомное положение, дата на фото и рамка.
Бот, кстати, умеет более‑менее определять, какой пресет подойдет для какой ситуации — ночь, закат, пасмурно, пейзаж. Но вы можете назначить ему предпочитаемый, и он будет автоматически отдавать вам фотографии в одном пресете.
Самое интересное: a6300 без FTP
Но, конечно, факт того, что со своей более маленькой камерой a6300 так не получится, меня очень расстроил — на a6300 не реализована FTP‑передача, и нейросеть начала предлагать варианты с ручным аплоадом фото. А я знаю наперед: даже при условии автоматизации редактирования этим пользоваться не будет хотеться.
Но тут я вспомнил про наличие OpenMemories‑Tweak на a6300 — поковыряв его и сделав небольшой ресерч, я нашел интересную строчку, а именно Android 4.1.2 SDK 16, да еще и наличие ADB и Telnet! За это и зацепились — я скормил клоду OpenMemories‑Tweak и все свои вводные по камере, и мы принялись отлаживать новорожденное APK‑приложение.


Как это устроено внутри
Камера с FTP (A7C II, A7 IV…) ──FTPS──┐
├──> VPS: приём, проявка ──> Telegram-бот + Mini App
Sony a6000–a6500, RX100 ─────HTTPS────┘На VPS установщик поднимает vsftpd для FTPS и nginx с приёмником для камерного приложения. Кадр падает в папку, бот его подхватывает, отбрасывает дубликаты, проявляет и отправляет в чат. Полный размер можно выгрузить без сжатия Telegram.
Плёнки — это не скачанные LUT‑ы. Каждая плёнка — своя математическая модель: кривые, оттенки теней и светов, насыщенность. Из неё на лету собирается 3D LUT. Новая плёнка — это примерно дюжина чисел в конфиге, всё расписано в docs/films.md. Прогнать свой кадр через все 12 плёнок без Telegram можно командой bot/try_films.py photo.jpg. Названия лишь намекают на жанр и характер, к Kodak, Fujifilm и другим брендам проект отношения не имеет.
Как попробовать
Пусть вас не смущает необходимость наличия VPS‑ки — возьмите ее хоть на часик и опробуйте. Нужен VPS на Ubuntu 22.04+ или Debian 12+, хватит 1 ядра и 1–2 ГБ памяти. Домен не нужен — установщик сам возьмет бесплатное имя через sslip.io и сертификат Let's Encrypt, а бота вы создаете за минуту в @BotFather.
Дальше заходите на сервер и запускаете:
git clone https://github.com/Melnikoff07/proyavka.git
cd proyavka
python3 setup.pyУстановщик спросит токен бота и все настроит сам, а потом отправьте боту /camera — он пришлет файлы для флешки и инструкцию под вашу камеру. Все живет на вашем сервере — никаких подписок и чужого облака, ваши фото только ваши. Простота происходящего вас обязана подкупить!
Что дальше
На данном этапе это все функции, которые claude я успел реализовать. Внутрянка пока осталась такой — но не сомневайтесь, в будущем она будет улучшаться и будут добавляться функции. В конечном счете мы имеем минимальный редактор для самых ленивых — кто хочет просто бегать и щелкать с камерой, а не сидеть на посте.
Этим проектом я не претендую на экспертность хоть в одной из необходимых областей, но вдохновляю себя и вас на эксперименты даже с такими закрытыми системами, как камеры. Всегда есть место для творчества!
Всех энтузиастов с камерами различных моделей призываю попробовать этот инструмент! Фил фри оставлять комменты и предложения по улучшению. А если вы человек с руками — я буду безмерно вам благодарен за помощь в развитии этого открытого проекта: github.com/Melnikoff07/proyavka
Отдельное спасибо проектам OpenMemories‑Tweak и Sony‑PMCA‑RE — без них свое приложение на Sony было бы невозможно.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.