import os
from PIL import Image

def save_image_metadata_to_txt(folder_path):
    # Count total images
    total_images = sum(1 for filename in os.listdir(folder_path) if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')))
    processed_images = 0

    for filename in os.listdir(folder_path):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
            image_path = os.path.join(folder_path, filename)
            txt_path = os.path.splitext(image_path)[0] + '.txt'
            
            try:
                with Image.open(image_path) as img:
                    metadata = img.info

                with open(txt_path, 'w') as txt_file:
                    for key, value in metadata.items():
                        txt_file.write(f'{key}: {value}\n')

                processed_images += 1
                print(f'Generation Status: {processed_images} processed, {total_images - processed_images} left')

            except Exception as e:
                print(f"Error processing {filename}: {e}")

    print("All images processed and metadata saved.")

# Example usage
folder_path = r'C:\SDXL DreamBooth tutorial\showcase 2 fooocus'
save_image_metadata_to_txt(folder_path)
