MonsterMMORPG commited on
Commit
90bfba4
1 Parent(s): d5244db

Upload gradio_web_server.py

Browse files
Files changed (1) hide show
  1. gradio_web_server.py +42 -22
gradio_web_server.py CHANGED
@@ -155,28 +155,48 @@ def add_text(state, text, image, image_process_mode, request: gr.Request):
155
 
156
 
157
  def batch_process_images(folder_path, textbox, model_selector, temperature, top_p, max_output_tokens, request: gr.Request):
158
- print("calling batch_process_images")
159
-
160
- for filename in os.listdir(folder_path):
161
- if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
162
- image_path = os.path.join(folder_path, filename)
163
- with Image.open(image_path) as image:
164
- state = default_conversation.copy()
165
- state, _, _, _, _, _, _, _, _ = add_text(state, textbox, image, "Default", request)
166
-
167
- # Call http_bot and iterate over the generator
168
- response_text = ""
169
- for state_update in http_bot(state, model_selector, temperature, top_p, max_output_tokens, request):
170
- # Update state and extract response text
171
- state, chatbot_output, *_ = state_update
172
- response_text = chatbot_output
173
-
174
- # Save the final response to a file
175
- try:
176
- with open(os.path.splitext(image_path)[0] + '.txt', 'w') as f:
177
- f.write(response_text[0][1])
178
- except Exception as e:
179
- print(f"An error occurred: {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
 
181
  return "Batch processing completed."
182
 
 
155
 
156
 
157
  def batch_process_images(folder_path, textbox, model_selector, temperature, top_p, max_output_tokens, request: gr.Request):
158
+ print("Starting batch processing of images")
159
+
160
+ # Initialize counters and timer
161
+ image_files = [f for f in os.listdir(folder_path) if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]
162
+ total_images = len(image_files)
163
+ processed_images = 0
164
+ total_processing_time = 0
165
+
166
+ # Process each image file
167
+ for filename in image_files:
168
+ image_path = os.path.join(folder_path, filename)
169
+ start_time = time.time()
170
+
171
+ with Image.open(image_path) as image:
172
+ state = default_conversation.copy()
173
+ state, _, _, _, _, _, _, _, _ = add_text(state, textbox, image, "Default", request)
174
+
175
+ # Call http_bot and iterate over the generator
176
+ response_text = ""
177
+ for state_update in http_bot(state, model_selector, temperature, top_p, max_output_tokens, request):
178
+ # Update state and extract response text
179
+ state, chatbot_output, *_ = state_update
180
+ response_text = chatbot_output
181
+
182
+ # Save the final response to a file
183
+ try:
184
+ with open(os.path.splitext(image_path)[0] + '.txt', 'w') as f:
185
+ f.write(response_text[0][1])
186
+ except Exception as e:
187
+ print(f"An error occurred: {e}")
188
+
189
+ # Update processing information
190
+ processed_images += 1
191
+ processing_time = time.time() - start_time
192
+ total_processing_time += processing_time
193
+ average_processing_time = total_processing_time / processed_images
194
+ images_left = total_images - processed_images
195
+ eta_seconds = average_processing_time * images_left
196
+ eta = datetime.timedelta(seconds=int(eta_seconds))
197
+
198
+ # Display progress information
199
+ print(f"{processed_images}/{total_images} images processed, {images_left} left, average process time {average_processing_time :.2f} seconds, ETA: {str(eta)}")
200
 
201
  return "Batch processing completed."
202