rahul7star commited on
Commit
7a5b44b
·
verified ·
1 Parent(s): e4b3867

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -12
app.py CHANGED
@@ -504,32 +504,47 @@ def start_training(
504
  @app.post("/train-from-hf")
505
  def auto_run_lora_from_repo():
506
  try:
 
 
 
 
 
507
  local_dir = Path(f"/tmp/{LORA_NAME}-{uuid.uuid4()}")
508
  os.makedirs(local_dir, exist_ok=True)
509
 
 
510
  snapshot_path = snapshot_download(
511
- repo_id=REPO_ID,
512
- repo_type="model",
513
- local_dir=local_dir,
514
- local_dir_use_symlinks=False,
515
- allow_patterns=[f"{FOLDER_IN_REPO}/*"], # only files inside the subfolder
516
- )
517
 
518
- # Resolve image path relative to downloaded snapshot
519
  image_dir = Path(snapshot_path) / FOLDER_IN_REPO
520
 
521
-
522
- image_paths = list(image_dir.rglob("*.jpg")) + list(image_dir.rglob("*.jpeg")) + list(image_dir.rglob("*.png"))
 
 
523
 
524
  if not image_paths:
525
- return JSONResponse(status_code=400, content={"error": "No images found in the HF repo folder."})
 
 
 
526
 
 
527
  captions = [
528
- f"Autogenerated caption for {img.stem} in the {CONCEPT_SENTENCE} [trigger]" for img in image_paths
 
529
  ]
530
 
 
531
  dataset_path = create_dataset(image_paths, *captions)
532
 
 
533
  result = start_training(
534
  lora_name=LORA_NAME,
535
  concept_sentence=CONCEPT_SENTENCE,
@@ -556,5 +571,7 @@ augmentation:
556
 
557
  return {"message": result}
558
 
 
 
559
  except Exception as e:
560
- return JSONResponse(status_code=500, content={"error": str(e)})
 
504
  @app.post("/train-from-hf")
505
  def auto_run_lora_from_repo():
506
  try:
507
+ # Set HF cache path if not already set
508
+ os.environ["HF_HOME"] = "/tmp/hf_cache"
509
+ os.makedirs("/tmp/hf_cache", exist_ok=True)
510
+
511
+ # Create temporary directory to hold downloaded files
512
  local_dir = Path(f"/tmp/{LORA_NAME}-{uuid.uuid4()}")
513
  os.makedirs(local_dir, exist_ok=True)
514
 
515
+ # Download snapshot from model repo using allow_patterns
516
  snapshot_path = snapshot_download(
517
+ repo_id=REPO_ID,
518
+ repo_type="model",
519
+ local_dir=local_dir,
520
+ local_dir_use_symlinks=False,
521
+ allow_patterns=[f"{FOLDER_IN_REPO}/*"], # only that folder
522
+ )
523
 
524
+ # Target subfolder inside the snapshot
525
  image_dir = Path(snapshot_path) / FOLDER_IN_REPO
526
 
527
+ # Collect all image files (recursively)
528
+ image_paths = list(image_dir.rglob("*.jpg")) + \
529
+ list(image_dir.rglob("*.jpeg")) + \
530
+ list(image_dir.rglob("*.png"))
531
 
532
  if not image_paths:
533
+ return JSONResponse(
534
+ status_code=400,
535
+ content={"error": "No images found in the HF repo folder."}
536
+ )
537
 
538
+ # Create auto captions
539
  captions = [
540
+ f"Autogenerated caption for {img.stem} in the {CONCEPT_SENTENCE} [trigger]"
541
+ for img in image_paths
542
  ]
543
 
544
+ # Prepare dataset
545
  dataset_path = create_dataset(image_paths, *captions)
546
 
547
+ # Start training
548
  result = start_training(
549
  lora_name=LORA_NAME,
550
  concept_sentence=CONCEPT_SENTENCE,
 
571
 
572
  return {"message": result}
573
 
574
+ except PermissionError as pe:
575
+ return JSONResponse(status_code=500, content={"error": f"Permission denied: {pe}"})
576
  except Exception as e:
577
+ return JSONResponse(status_code=500, content={"error": str(e)})