OPTIMA35 (Organizing, Processing, Tweaking Images and Modifying scanned Analogs from 35mm Film) is a Python-based project designed to provide a streamlined way to manage and edit metadata and images from analog photography. But can be used for any images.
Find a file
2024-12-17 11:25:44 +00:00
.gitignore All core features aviable 2024-12-17 11:25:44 +00:00
CHANGELOG.md All core features aviable 2024-12-17 11:25:44 +00:00
demo.gif All core features aviable 2024-12-17 11:25:44 +00:00
exif_options.yaml All core features aviable 2024-12-17 11:25:44 +00:00
image_handler.py All core features aviable 2024-12-17 11:25:44 +00:00
LICENSE.md Initiating project. 2024-12-10 15:39:10 +01:00
main.py All core features aviable 2024-12-17 11:25:44 +00:00
README.md All core features aviable 2024-12-17 11:25:44 +00:00
tui.py All core features aviable 2024-12-17 11:25:44 +00:00
utility.py All core features aviable 2024-12-17 11:25:44 +00:00

OPTIMA-35

Overview

OPTIMA-35 (Organizing, Processing, Tweaking Images and Modifying scanned Analogs from 35mm Film) is a Python-based project designed to provide a streamlined way to manage and edit metadata and images from analog photography. But can be used for any images.

This project is a port of my earlier work, an collection of bash script, transitioning functionality to a more modular and maintainable design.

The primary focus is on building a terminal-based user interface (TUI). Initially, the interface will utilize simple_term_menu, with plans to expand to textual for a more dynamic TUI experience in the future.

Please check if a new branch is available and read the changelog to see the progress and current features of the program. The README might sometimes lag behind.

Key Features

  • Intuitive TUI for organizing and editing metadata and image properties.
  • Improved modularity with classes split into separate files for flexibility and maintainability.
  • Supports essential tasks like reading, editing, and saving EXIF data, as well as resizing and processing images.

Gif of program in action

my-gif

Dependencies

To run OPTIMA-35, the following Python libraries are required:

  • textual: For building TUI (planned future updates).
  • pyyaml: To handle YAML files for configuration and settings.
  • piexif: To read, modify, and write EXIF metadata.
  • Pillow: For image processing.
  • simple_term_menu: For building the initial TUI interface.

Installing Dependencies

You can install the dependencies using pip:

pip install textual pyyaml piexif pillow simple-term-menu

Alternatively, you can use conda or its alternatives (anaconda, mamba, micromamba):

conda install -c conda-forge textual pyyaml piexif pillow simple-term-menu

Development Approach

Compared to my previous project, FTL Save Manager, this project emphasizes:

  • Enhanced Modularity: Classes and components are organized into separate files, making the codebase more maintainable and scalable.
  • Improved Design Principles: Focus on creating reusable and flexible code for future expansion.
  • Slower Code Pushes: Updates and code releases will be less frequent but of higher quality, ensuring stability and adherence to best practices.

Current Status

The project is in its early stages, and initial releases will focus on:

  • Basic TUI functionality using simple_term_menu.
  • Core features like image resizing, metadata management, and YAML configuration.

Stay tuned for updates and more features as development progresses!

Use of LLMs

In the interest of transparency, I disclose that Generative AI (GAI) large language models (LLMs), including OpenAIs ChatGPT and Ollama models (e.g., OpenCoder and Qwen2.5-coder), have been used to assist in this project.

Areas of Assistance:

  • Project discussions and planning
  • Spelling and grammar corrections
  • Suggestions for suitable packages and libraries
  • Guidance on code structure and organization

In cases where LLMs contribute directly to code or provide substantial optimizations, such contributions will be disclosed and documented in the relevant sections of the codebase.

mradermacher gguf Q4K-M Instruct version of infly/OpenCoder-1.5B unsloth gguf Q4K_M Instruct version of both Qwen/QWEN2 1.5B and 3B

References

  1. Huang, Siming, et al. OpenCoder: The Open Cookbook for Top-Tier Code Large Language Models. 2024. PDF

  2. Hui, Binyuan, et al. Qwen2.5-Coder Technical Report. arXiv preprint arXiv:2409.12186, 2024. arXiv

  3. Yang, An, et al. Qwen2 Technical Report. arXiv preprint arXiv:2407.10671, 2024. arXiv

Orignal latext cites:

@inproceedings{Huang2024OpenCoderTO, title={OpenCoder: The Open Cookbook for Top-Tier Code Large Language Models}, author={Siming Huang and Tianhao Cheng and Jason Klein Liu and Jiaran Hao and Liuyihan Song and Yang Xu and J. Yang and J. H. Liu and Chenchen Zhang and Linzheng Chai and Ruifeng Yuan and Zhaoxiang Zhang and Jie Fu and Qian Liu and Ge Zhang and Zili Wang and Yuan Qi and Yinghui Xu and Wei Chu}, year={2024}, url={https://arxiv.org/pdf/2411.04905} }

@article{hui2024qwen2, title={Qwen2. 5-Coder Technical Report}, author={Hui, Binyuan and Yang, Jian and Cui, Zeyu and Yang, Jiaxi and Liu, Dayiheng and Zhang, Lei and Liu, Tianyu and Zhang, Jiajun and Yu, Bowen and Dang, Kai and others}, journal={arXiv preprint arXiv:2409.12186}, year={2024} }

@article{qwen2, title={Qwen2 Technical Report}, author={An Yang and Baosong Yang and Binyuan Hui and Bo Zheng and Bowen Yu and Chang Zhou and Chengpeng Li and Chengyuan Li and Dayiheng Liu and Fei Huang and Guanting Dong and Haoran Wei and Huan Lin and Jialong Tang and Jialin Wang and Jian Yang and Jianhong Tu and Jianwei Zhang and Jianxin Ma and Jin Xu and Jingren Zhou and Jinze Bai and Jinzheng He and Junyang Lin and Kai Dang and Keming Lu and Keqin Chen and Kexin Yang and Mei Li and Mingfeng Xue and Na Ni and Pei Zhang and Peng Wang and Ru Peng and Rui Men and Ruize Gao and Runji Lin and Shijie Wang and Shuai Bai and Sinan Tan and Tianhang Zhu and Tianhao Li and Tianyu Liu and Wenbin Ge and Xiaodong Deng and Xiaohuan Zhou and Xingzhang Ren and Xinyu Zhang and Xipin Wei and Xuancheng Ren and Yang Fan and Yang Yao and Yichang Zhang and Yu Wan and Yunfei Chu and Yuqiong Liu and Zeyu Cui and Zhenru Zhang and Zhihao Fan}, journal={arXiv preprint arXiv:2407.10671}, year={2024} }