85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
# 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](https://gitlab.com/sf-bashscripts/analogphotography), transitioning functionality to a more modular and maintainable design.
|
||
|
||
**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.
|
||
|
||
## **Current Status**
|
||
- While the program works and core features are available, there are currently no safety checks in place. For example, the program will write / save an image without verifying if a file with the same name already exists.
|
||
- Additionally, while EXIF data/metadata should be implemented correctly, there is a possibility of overlooked issues. In the worst case, a program might throw an error when handling EXIF data, though this has not occurred so far.
|
||
|
||
### Available Features:
|
||
- Initial basic TUI functionality using `simple_term_menu`
|
||
- Core features:
|
||
- resizing
|
||
- renaming
|
||
- grayscale
|
||
- Change brightness
|
||
- Change contrast
|
||
- Exif management
|
||
- Add watermark
|
||
|
||
**Gif of program in action**
|
||
|
||

|
||
|
||
## Dependencies
|
||
|
||
To run **OPTIMA-35**, the following Python libraries are required:
|
||
|
||
- **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`:
|
||
|
||
```bash
|
||
pip install textual pyyaml piexif pillow simple-term-menu
|
||
```
|
||
|
||
Alternatively, you can use `conda` or its alternatives (`anaconda`, `mamba`, `micromamba`):
|
||
|
||
```bash
|
||
conda install -c conda-forge textual pyyaml piexif pillow simple-term-menu
|
||
```
|
||
|
||
## Development Approach
|
||
Compared to my previous project, [FTL Save Manager](https://gitlab.com/python_projects3802849/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.
|
||
|
||
# Use of LLMs
|
||
In the interest of transparency, I disclose that Generative AI (GAI) large language models (LLMs), including OpenAI’s 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](https://arxiv.org/pdf/2411.04905)
|
||
|
||
2. **Hui, Binyuan, et al.**
|
||
*Qwen2.5-Coder Technical Report.*
|
||
*arXiv preprint arXiv:2409.12186*, 2024. [arXiv](https://arxiv.org/abs/2409.12186)
|
||
|
||
3. **Yang, An, et al.**
|
||
*Qwen2 Technical Report.*
|
||
*arXiv preprint arXiv:2407.10671*, 2024. [arXiv](https://arxiv.org/abs/2407.10671)
|