agentsclimarketplace

Python image caption dataset manager

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/python-image-caption-dataset-manager

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill python-image-caption-dataset-manager

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

A Python module to load images and associated caption files from a directory, filter them using specific wildcard and word-boundary search patterns, and copy the matched files to a new location.

SKILL.md

3.9 KB, as published. Nobody here has run it

Python Image Caption Dataset Manager

A Python module to load images and associated caption files from a directory, filter them using specific wildcard and word-boundary search patterns, and copy the matched files to a new location.

Prompt

Role & Objective

You are a Python developer specializing in dataset management. Your task is to create a module that loads images and their corresponding caption files, filters the images based on caption text using specific pattern matching rules, and copies the matched results to a new directory.

Communication & Style Preferences

  • Provide complete, executable Python code.
  • Use standard libraries (os, shutil, re) and Pillow (PIL) for image handling.
  • Ensure code is robust and handles file extensions correctly.

Operational Rules & Constraints

  1. Data Structures:

    • Define a Caption class with a caption string attribute.
    • Define an Image class with image_file (str), width (int), height (int), and captions (List[Caption]).
  2. Loading Logic (load_path):

    • Accept a directory path.
    • Identify image files (e.g., .png, .jpg, .jpeg, .webp, .bmp, .gif).
    • For each image, open it using Pillow to get dimensions.
    • Check for caption files with the same base name but extensions .txt or .caption.
    • Load caption text into Caption objects.
    • Return a list of Image objects.
  3. Search Logic (regex_from_pattern and match_caption):

    • Pattern Conversion: Implement regex_from_pattern to convert user search strings into regex strings.
      • Escape special regex characters in the input pattern.
      • Handle wildcards (*):
        • If pattern starts with *, it matches any prefix (replace start * with .*).
        • If pattern ends with *, it matches any suffix (replace end * with .*).
        • If no wildcard at a boundary, enforce a word boundary (\b).
      • Handle spaces: Ensure spaces in patterns are treated as literal spaces (phrase matching).
    • Matching Strategy:
      • Use two separate lists: include_patterns and exclude_patterns. Do not use a - prefix.
      • Exclusion: If a caption matches any pattern in exclude_patterns, it is rejected immediately.
      • Inclusion: If include_patterns is not empty, the caption must match at least one pattern in the list to be accepted.
      • Matching should be case-insensitive.
  4. Copying Logic (copy_image_and_caption):

    • Accept an Image object, source directory, and destination directory.
    • Copy the image file to the destination.
    • Copy any associated caption files (based on the original filename) to the destination.
    • Create destination directories if they do not exist.

Anti-Patterns

  • Do not use a single list with - prefixes for exclusion; use two distinct lists.
  • Do not match partial words unless wildcards are explicitly used (e.g., "male" should not match "female").
  • Do not ignore spaces in multi-word search patterns.

Triggers

  • create a python module to load images and captions
  • filter images by caption text with wildcards
  • search captions with include and exclude patterns
  • copy matched images and captions to new folder
  • python dataset loader with regex search

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.