All core features aviable

This commit is contained in:
Mr Finchum 2024-12-17 11:25:44 +00:00
parent 7965b55302
commit bc69b077b0
9 changed files with 579 additions and 14 deletions

View file

@ -1,18 +1,66 @@
# README
OPTIMA-35 stands for Organizing, Processing, Tweaking Images, and Modifying Analogs (35mm film scans).
# OPTIMA-35
This project is a soft port of my previous [Bash script collection](https://gitlab.com/sf-bashscripts/analogphotography/-/tree/main), designed to process images (specifically 35mm film scans). It includes functionalities such as renaming, EXIF metadata editing, color adjustment, and more.
## Overview
By transitioning to Python, I aim to transform the script collection into a more cohesive program with enhanced functionality and structure. Additionally, this project serves as a means to strengthen my coding skills and explore Pythons capabilities.
# Dependencies
- textual
- pyyaml
- piexif
- pillow
**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.
Textual will be used for TUI, PyExifTool is used to acces exiftool and Wand is used to interact with ImageMagick.
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.
Python packages can be installed with pip, exiftool and ImageMagick has to be installed depending on your OS.
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](https://gitlab.com/python_projects3802849/optima-35/-/raw/feature/core/demo.gif?ref_type=heads)
## 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`:
```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.
## 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.
@ -25,10 +73,26 @@ In the interest of transparency, I disclose that Generative AI (GAI) large langu
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.
Formating for readme not finished yet.
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)
#### Orignal latext cites:
@inproceedings{Huang2024OpenCoderTO,
title={OpenCoder: The Open Cookbook for Top-Tier Code Large Language Models},
@ -37,7 +101,6 @@ unsloth gguf Q4K_M Instruct version of both Qwen/QWEN2 1.5B and 3B
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},
@ -45,7 +108,6 @@ unsloth gguf Q4K_M Instruct version of both Qwen/QWEN2 1.5B and 3B
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},