Skip to main content

CLI tool that easily converts a directory of images into a dataset for training generative ai models

Project description

ecko-cli

[!IMPORTANT] This tool makes use of the SmilingWolf/wd-eva02-large-tagger-v3 library, which you will need to download and place in the models directory inside the ecko_cli folder of this project. Make sure to not rename the file as the script will be looking for model.onnx.

Huggingface Repo

[!IMPORTANT] This tools has the option to now use the JoyCaption model for captioning images. You will need to have huggingface hub installed to download the model and the tokenizer. Also JoyCaption is a large model and will require a GPU with a healthy amount of memory. Demo on Huggingface // Huggingface Repo

[!IMPORTANT] This tool makes use of the flash-attention library, which has known to be problematic to install based on PyTorch > and CUDA versions. You may need to install the dependencies manually if you encounter issues. The way to install flash-attention is to clone > the repo and install the package with pip. This is the recommended way to install the package. You can also install the package with pip, but you will need to clone the repo first

git clone https://github.com/Dao-AILab/flash-attention.git
cd flash-attention
pip install flash_attn --no-build-isolation
pip install timm

Install via pipx

pipx inject ecko-cli flash_attn
pipx inject ecko-cli timm

Install via the CLI

ecko tools install-flash-attention

[!NOTE] You may notice a delay when first using the tool...normally this means that the models are being downloaded/update from huggingface or that they are being moved to your GPU. Check your terminal to make see progress

Overview

ecko-cli is a simple CLI tool that streamlines the process of processingimages in a directory, generating captions, and saving them as text files. Additionally, it provides functionalities to create a JSONL file from images in the directory you specify. Images will be captioned using the Microsoft Florence-2-large model and the ONNX Runtime engine. Images are resized to multiple sizes for better captioning results. [1024, 768, 672, 512]. The WD14 model is used for captioning all images based on a modified version of the selected tags it was trained on.

screenshot

Why

I wanted to create a tool that would allow me to process images in bulk quickly and efficiently for using in generative art projects. This tool allows me to generate captions for images that I can use as training data captions for my training LORAs (Large OpenAI Research Agents) and other generative models.

Installation (Recommended)

You have a couple of options for installing/running the tool:

Install pipx, then run the tool with the following command

pipx install ecko-cli

Alternatively, you can install using pip

pip install .

Configuration

[!IMPORTANT] Before using the tool, It's required to set up a .env file in the parent directory of the script or your home user dir [windows] or $HOME/.config/ecko-cli-itsjustregi/.env

The application intelligently locates your .env file, accommodating various platforms like Windows and Linux, or defaulting to the current directory.

Usage // Available Commands

Once installed via pipx or pip:

ecko process-images /path/to/images watercolors --padding 4
ecko process-images --use_joy_cap /path/to/images watercolors --padding 4
ecko process-images /path/to/images doors --is_object True
ecko process-images /path/to/images doors --trigger WORD
ecko create-jsonl /path/to/images [dataset]
ecko ui /path/to/images

Dependencies

This tool requires Python 3.11 or higher and has the following dependencies:

"typer",
"rich",
"shellingham",
"python-dotenv",
"onnxruntime-gpu",
"numpy",
"pandas",
"torch",
"pillow",
"einops"
"transformers"
"timm"
"torchvision"
"huggingface_hub[cli]"

Contact

For any inquiries, feedback, or suggestions, please feel free to open an issue on this repository.

License

This project is licensed under the MIT License.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecko_cli-1.4.1.tar.gz (264.3 kB view details)

Uploaded Source

Built Distribution

ecko_cli-1.4.1-py3-none-any.whl (266.0 kB view details)

Uploaded Python 3

File details

Details for the file ecko_cli-1.4.1.tar.gz.

File metadata

  • Download URL: ecko_cli-1.4.1.tar.gz
  • Upload date:
  • Size: 264.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for ecko_cli-1.4.1.tar.gz
Algorithm Hash digest
SHA256 f4f3ba7261cccb5f1e7b5b002d4557169ed8dd60babe43bccf143fc04b0c5b62
MD5 c1f343d057215d8f08d0e22cfe4c8e30
BLAKE2b-256 ae9684bb819997467a214fbd5c6b9316847c8748a984d7f895e106e1f289b591

See more details on using hashes here.

File details

Details for the file ecko_cli-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: ecko_cli-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 266.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for ecko_cli-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1a6baa69ebde076770bae290a2f223e45a607a9bc01f6c03d5e27e5338302b7a
MD5 2f9af9406a885b7bce91d77ea3621d78
BLAKE2b-256 cd24d5236ffc527140eff16e7aca8d8ee8bf715bb38a2e0d598e86aea0428e0a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page