Include Clipdrop processing
Browse files- image_processing_pipeline.py +15 -9
- utils/clipdrop.py +2 -2
image_processing_pipeline.py
CHANGED
@@ -3,15 +3,17 @@ import argparse
|
|
3 |
import shutil
|
4 |
import sys
|
5 |
from dotenv import load_dotenv, find_dotenv
|
|
|
6 |
|
7 |
# Importing modules from the utils package
|
8 |
from utils.resize_images import main as resize_images_main
|
9 |
from utils.removebg import iterate_over_directory as removebg_iterate
|
10 |
from utils.photoroom import iterate_over_directory as photoroom_iterate
|
11 |
from utils.bria_rmbg20 import iterate_over_directory as bria_iterate
|
|
|
12 |
from utils.add_green_background import process_directory as add_green_background_process
|
13 |
from utils.upload_to_dataset import upload_to_dataset
|
14 |
-
from utils.resize_processed_images import process_images
|
15 |
|
16 |
def check_env_variables():
|
17 |
"""Check if the necessary environment variables are loaded."""
|
@@ -20,9 +22,9 @@ def check_env_variables():
|
|
20 |
|
21 |
load_dotenv()
|
22 |
|
23 |
-
required_keys = ['REMOVEBG_API_KEY', 'PHOTOROOM_API_KEY', 'BRIA_API_TOKEN']
|
24 |
missing_keys = [key for key in required_keys if not os.getenv(key)]
|
25 |
-
|
26 |
if missing_keys:
|
27 |
sys.exit(f"Error: Missing environment variables: {', '.join(missing_keys)}")
|
28 |
|
@@ -84,15 +86,19 @@ def main():
|
|
84 |
bg_removal_dirs = {
|
85 |
"removebg": os.path.join(bg_removed_dir, "removebg"),
|
86 |
"photoroom": os.path.join(bg_removed_dir, "photoroom"),
|
87 |
-
"bria": os.path.join(bg_removed_dir, "bria")
|
|
|
88 |
}
|
89 |
|
90 |
for dir_path in bg_removal_dirs.values():
|
91 |
os.makedirs(dir_path, exist_ok=True)
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
|
|
|
|
|
|
|
96 |
|
97 |
print("Adding green background...")
|
98 |
add_green_background_process(bg_removed_dir, green_bg_dir)
|
@@ -104,10 +110,10 @@ def main():
|
|
104 |
for subdir in subdirectories:
|
105 |
input_directory = os.path.join(green_bg_dir, subdir)
|
106 |
output_directory = os.path.join(args.output_dir, subdir)
|
107 |
-
|
108 |
|
109 |
original_output_directory = os.path.join(args.output_dir, "web-original-images")
|
110 |
-
|
111 |
|
112 |
if args.dataset_name:
|
113 |
upload_to_dataset(original_output_directory, args.output_dir, args.dataset_name, dry_run=not args.push_dataset)
|
|
|
3 |
import shutil
|
4 |
import sys
|
5 |
from dotenv import load_dotenv, find_dotenv
|
6 |
+
from concurrent.futures import ThreadPoolExecutor
|
7 |
|
8 |
# Importing modules from the utils package
|
9 |
from utils.resize_images import main as resize_images_main
|
10 |
from utils.removebg import iterate_over_directory as removebg_iterate
|
11 |
from utils.photoroom import iterate_over_directory as photoroom_iterate
|
12 |
from utils.bria_rmbg20 import iterate_over_directory as bria_iterate
|
13 |
+
from utils.clipdrop import iterate_over_directory as clipdrop_iterate
|
14 |
from utils.add_green_background import process_directory as add_green_background_process
|
15 |
from utils.upload_to_dataset import upload_to_dataset
|
16 |
+
from utils.resize_processed_images import process_images as downsize_processed_images
|
17 |
|
18 |
def check_env_variables():
|
19 |
"""Check if the necessary environment variables are loaded."""
|
|
|
22 |
|
23 |
load_dotenv()
|
24 |
|
25 |
+
required_keys = ['REMOVEBG_API_KEY', 'PHOTOROOM_API_KEY', 'BRIA_API_TOKEN', 'CLIPDROP_API_KEY']
|
26 |
missing_keys = [key for key in required_keys if not os.getenv(key)]
|
27 |
+
|
28 |
if missing_keys:
|
29 |
sys.exit(f"Error: Missing environment variables: {', '.join(missing_keys)}")
|
30 |
|
|
|
86 |
bg_removal_dirs = {
|
87 |
"removebg": os.path.join(bg_removed_dir, "removebg"),
|
88 |
"photoroom": os.path.join(bg_removed_dir, "photoroom"),
|
89 |
+
"bria": os.path.join(bg_removed_dir, "bria"),
|
90 |
+
"clipdrop": os.path.join(bg_removed_dir, "clipdrop")
|
91 |
}
|
92 |
|
93 |
for dir_path in bg_removal_dirs.values():
|
94 |
os.makedirs(dir_path, exist_ok=True)
|
95 |
|
96 |
+
# Use ThreadPoolExecutor to parallelize API calls
|
97 |
+
with ThreadPoolExecutor(max_workers=4) as executor:
|
98 |
+
executor.submit(removebg_iterate, input_resized_dir, bg_removal_dirs["removebg"])
|
99 |
+
executor.submit(photoroom_iterate, input_resized_dir, bg_removal_dirs["photoroom"])
|
100 |
+
executor.submit(bria_iterate, input_resized_dir, bg_removal_dirs["bria"])
|
101 |
+
executor.submit(clipdrop_iterate, input_resized_dir, bg_removal_dirs["clipdrop"])
|
102 |
|
103 |
print("Adding green background...")
|
104 |
add_green_background_process(bg_removed_dir, green_bg_dir)
|
|
|
110 |
for subdir in subdirectories:
|
111 |
input_directory = os.path.join(green_bg_dir, subdir)
|
112 |
output_directory = os.path.join(args.output_dir, subdir)
|
113 |
+
downsize_processed_images(input_directory, output_directory, target_width)
|
114 |
|
115 |
original_output_directory = os.path.join(args.output_dir, "web-original-images")
|
116 |
+
downsize_processed_images(original_images_dir, original_output_directory, target_width)
|
117 |
|
118 |
if args.dataset_name:
|
119 |
upload_to_dataset(original_output_directory, args.output_dir, args.dataset_name, dry_run=not args.push_dataset)
|
utils/clipdrop.py
CHANGED
@@ -37,9 +37,9 @@ def iterate_over_directory(directory_path, result_directory):
|
|
37 |
for file in files:
|
38 |
if file.lower().endswith(('.png', '.jpg', '.jpeg', '.webp', '.heic')):
|
39 |
file_path = os.path.join(root, file)
|
40 |
-
|
41 |
result_file_name = os.path.splitext(os.path.basename(file_path))[0] + '.png'
|
42 |
-
result_file_directory = os.path.join(result_directory
|
43 |
|
44 |
if not os.path.exists(result_file_directory):
|
45 |
os.makedirs(result_file_directory)
|
|
|
37 |
for file in files:
|
38 |
if file.lower().endswith(('.png', '.jpg', '.jpeg', '.webp', '.heic')):
|
39 |
file_path = os.path.join(root, file)
|
40 |
+
|
41 |
result_file_name = os.path.splitext(os.path.basename(file_path))[0] + '.png'
|
42 |
+
result_file_directory = os.path.join(result_directory)
|
43 |
|
44 |
if not os.path.exists(result_file_directory):
|
45 |
os.makedirs(result_file_directory)
|