100 lines
3.4 KiB
Markdown
100 lines
3.4 KiB
Markdown
# **OptimaLab35**
|
||
_Last updated: 28 Jan 2025_
|
||
|
||
## **Overview**
|
||
|
||
**OptimaLab35** enhances **OPTIMA35** (**Organizing, Processing, Tweaking Images, and Modifying scanned Analogs from 35mm Film**) by offering a user-friendly graphical interface for efficient image and metadata management.
|
||
|
||
It serves as a GUI for the [OPTIMA35 library](https://gitlab.com/CodeByMrFinchum/optima35), providing an intuitive way to interact with the core functionalities.
|
||
|
||
---
|
||
|
||
## **Current Status**
|
||
### **Alpha Stage**
|
||
|
||
OptimaLab35 is built using **PySide6** and **Qt**, offering a modern and flexible interface for **OPTIMA35**.
|
||
|
||
The program is under **active development**, and while versions released on PyPI should not contain major bugs, occasional issues may arise.
|
||
|
||
For the most accurate and detailed update information, please refer to the well-maintained [**CHANGELOG**](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/blob/main/CHANGELOG.md), as this README may occasionally lag behind the latest updates.
|
||
|
||
---
|
||
|
||
## **Features**
|
||
|
||
### **Image Processing**
|
||
- Resize images (upscale or downscale)
|
||
- Convert images to grayscale
|
||
- Adjust brightness and contrast
|
||
- Add customizable text-based watermarks
|
||
|
||
### **Image preview**
|
||
- Load a single image and see how change in brightness and contrast changes the image
|
||
|
||
### **EXIF Management**
|
||
- Add EXIF data using a simple dictionary
|
||
- Copy EXIF data from the original image
|
||
- Remove EXIF metadata completely
|
||
- Add timestamps (e.g., original photo timestamp)
|
||
- Automatically adjust EXIF timestamps based on image file names
|
||
- Add GPS coordinates to images
|
||
|
||
---
|
||
|
||
## **Installation**
|
||
|
||
Install via **pip** (dependencies are handled automatically):
|
||
```bash
|
||
pip install OptimaLab35
|
||
```
|
||
|
||
---
|
||
|
||
## Preview GUI
|
||
**PREVIEW** might be out of date.
|
||
|
||
**Main tab**
|
||
|
||
{width=40%}
|
||
|
||
**Preview window**
|
||
|
||
{width=40%}
|
||
|
||
**Exif tab**
|
||
|
||
{width=40%}
|
||
|
||
**Exif editor**
|
||
|
||
{width=40%}
|
||
|
||
---
|
||
|
||
# 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.
|
||
|
||
**Ollama**
|
||
- 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)
|