gaur3009 commited on
Commit
157d2ac
·
verified ·
1 Parent(s): ee8c642

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -31
app.py CHANGED
@@ -202,8 +202,8 @@ def train_model(scraper, progress=gr.Progress()):
202
  # ======================
203
  def create_interface():
204
  with gr.Blocks() as app:
205
- scraper = gr.State(lambda: WebScraper())
206
- model_runner = gr.State(lambda: ModelRunner())
207
 
208
  with gr.Row():
209
  with gr.Column():
@@ -214,47 +214,38 @@ def create_interface():
214
 
215
  train_btn = gr.Button("Start Training")
216
  training_status = gr.Textbox(label="Training Status")
217
- training_progress = gr.Textbox(label="Training Progress", value="Epoch 0/10 | Batch 0/0")
218
-
219
  with gr.Column():
220
  prompt_input = gr.Textbox(label="Generation Prompt")
221
  model_choice = gr.Radio(["Pretrained", "Custom"], label="Model Type", value="Pretrained")
222
  generate_btn = gr.Button("Generate Image")
223
  output_image = gr.Image(label="Generated Image")
 
 
 
 
224
 
225
- # Scraping monitoring
226
- def monitor_scraping(scraper):
227
- while True:
228
- if hasattr(scraper, 'scraping_progress'):
229
- yield f"{scraper.scraping_progress:.1f}% ({scraper.scraped_count}/{scraper.total_images})"
230
- else:
231
- yield "0% (0/0)"
232
- time.sleep(CONFIG["scraping"]["progress_interval"])
233
-
234
- # Training monitoring
235
- def monitor_training():
236
- while True:
237
- if os.path.exists(CONFIG["paths"]["model_save"]):
238
- with open(CONFIG["paths"]["model_save"], 'rb') as f:
239
- stats = os.stat(f.fileno())
240
- yield f"Model size: {stats.st_size//1024}KB"
241
- else:
242
- yield "No trained model"
243
- time.sleep(1)
244
-
245
- app.load(
246
- monitor_scraping,
247
  inputs=[scraper],
248
  outputs=[scraping_progress],
249
  every=CONFIG["scraping"]["progress_interval"]
250
  )
251
 
252
- app.load(
253
- monitor_training,
254
  outputs=[training_progress],
255
- every=1
256
  )
257
-
258
  # Event handlers
259
  scrape_btn.click(
260
  lambda s, q: s.start_scraping(q),
@@ -265,7 +256,7 @@ def create_interface():
265
  train_btn.click(
266
  lambda s: train_model(s),
267
  [scraper],
268
- [training_status]
269
  )
270
 
271
  generate_btn.click(
 
202
  # ======================
203
  def create_interface():
204
  with gr.Blocks() as app:
205
+ scraper = gr.State(WebScraper)
206
+ model_runner = gr.State(ModelRunner)
207
 
208
  with gr.Row():
209
  with gr.Column():
 
214
 
215
  train_btn = gr.Button("Start Training")
216
  training_status = gr.Textbox(label="Training Status")
217
+ training_progress = gr.Textbox(label="Training Progress", value="Not started")
218
+
219
  with gr.Column():
220
  prompt_input = gr.Textbox(label="Generation Prompt")
221
  model_choice = gr.Radio(["Pretrained", "Custom"], label="Model Type", value="Pretrained")
222
  generate_btn = gr.Button("Generate Image")
223
  output_image = gr.Image(label="Generated Image")
224
+
225
+ # Real-time updates using event triggers
226
+ def update_scraping_progress(scraper):
227
+ return f"{scraper.scraping_progress:.1f}% ({scraper.scraped_count}/{scraper.total_images})"
228
 
229
+ def update_training_progress():
230
+ if os.path.exists(CONFIG["paths"]["model_save"]):
231
+ stats = os.stat(CONFIG["paths"]["model_save"])
232
+ return f"Model size: {stats.st_size//1024}KB"
233
+ return "No trained model"
234
+
235
+ # Set up periodic updates
236
+ scraping_progress.change(
237
+ update_scraping_progress,
 
 
 
 
 
 
 
 
 
 
 
 
 
238
  inputs=[scraper],
239
  outputs=[scraping_progress],
240
  every=CONFIG["scraping"]["progress_interval"]
241
  )
242
 
243
+ training_progress.change(
244
+ update_training_progress,
245
  outputs=[training_progress],
246
+ every=CONFIG["training"]["progress_interval"]
247
  )
248
+
249
  # Event handlers
250
  scrape_btn.click(
251
  lambda s, q: s.start_scraping(q),
 
256
  train_btn.click(
257
  lambda s: train_model(s),
258
  [scraper],
259
+ [training_status, training_progress]
260
  )
261
 
262
  generate_btn.click(