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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -22
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(WebScraper)
206
- model_runner = gr.State(ModelRunner)
207
 
208
  with gr.Row():
209
  with gr.Column():
@@ -214,38 +214,47 @@ 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="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,7 +265,7 @@ def create_interface():
256
  train_btn.click(
257
  lambda s: train_model(s),
258
  [scraper],
259
- [training_status, training_progress]
260
  )
261
 
262
  generate_btn.click(
 
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
 
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
  train_btn.click(
266
  lambda s: train_model(s),
267
  [scraper],
268
+ [training_status]
269
  )
270
 
271
  generate_btn.click(