openfree commited on
Commit
6141d0e
1 Parent(s): 2b5b4f4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -65
app.py CHANGED
@@ -355,79 +355,79 @@ def generate_image_to_image(prompt_mash, image_input_path, image_strength, steps
355
  ).images[0]
356
  return final_image
357
 
358
- # run_lora 함수 수정
359
  def run_lora(prompt, image_input, image_strength, cfg_scale, steps, selected_indices, lora_scale_1, lora_scale_2, randomize_seed, seed, width, height, loras_state, progress=gr.Progress(track_tqdm=True)):
360
  try:
361
-
362
-
363
- if any('\u3131' <= char <= '\u318E' or '\uAC00' <= char <= '\uD7A3' for char in prompt):
364
- translated = translator(prompt, max_length=512)[0]['translation_text']
365
- print(f"Original prompt: {prompt}")
366
- print(f"Translated prompt: {translated}")
367
- prompt = translated
368
-
369
- if not selected_indices:
370
- raise gr.Error("You must select at least one LoRA before proceeding.")
371
-
372
- selected_loras = [loras_state[idx] for idx in selected_indices]
373
-
374
- # Build the prompt with trigger words
375
- prepends = []
376
- appends = []
377
- for lora in selected_loras:
378
- trigger_word = lora.get('trigger_word', '')
379
- if trigger_word:
380
- if lora.get("trigger_position") == "prepend":
381
- prepends.append(trigger_word)
382
- else:
383
- appends.append(trigger_word)
384
- prompt_mash = " ".join(prepends + [prompt] + appends)
385
- print("Prompt Mash: ", prompt_mash)
386
-
387
- # Unload previous LoRA weights
388
- with calculateDuration("Unloading LoRA"):
389
- pipe.unload_lora_weights()
390
- pipe_i2i.unload_lora_weights()
391
-
392
- print(pipe.get_active_adapters())
393
- # Load LoRA weights with respective scales
394
- lora_names = []
395
- lora_weights = []
396
- with calculateDuration("Loading LoRA weights"):
397
- for idx, lora in enumerate(selected_loras):
398
- lora_name = f"lora_{idx}"
399
- lora_names.append(lora_name)
400
- lora_weights.append(lora_scale_1 if idx == 0 else lora_scale_2)
401
- lora_path = lora['repo']
402
- weight_name = lora.get("weights")
403
- print(f"Lora Path: {lora_path}")
404
- if image_input is not None:
405
- if weight_name:
406
- pipe_i2i.load_lora_weights(lora_path, weight_name=weight_name, low_cpu_mem_usage=True, adapter_name=lora_name)
407
  else:
408
- pipe_i2i.load_lora_weights(lora_path, low_cpu_mem_usage=True, adapter_name=lora_name)
409
- else:
410
- if weight_name:
411
- pipe.load_lora_weights(lora_path, weight_name=weight_name, low_cpu_mem_usage=True, adapter_name=lora_name)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
412
  else:
413
- pipe.load_lora_weights(lora_path, low_cpu_mem_usage=True, adapter_name=lora_name)
414
- print("Loaded LoRAs:", lora_names)
415
- print("Adapter weights:", lora_weights)
416
- if image_input is not None:
417
- pipe_i2i.set_adapters(lora_names, adapter_weights=lora_weights)
418
- else:
419
- pipe.set_adapters(lora_names, adapter_weights=lora_weights)
420
- print(pipe.get_active_adapters())
421
- # Set random seed for reproducibility
422
- with calculateDuration("Randomizing seed"):
423
- if randomize_seed:
424
- seed = random.randint(0, MAX_SEED)
 
 
 
425
 
 
426
  if image_input is not None:
427
  final_image = generate_image_to_image(prompt_mash, image_input, image_strength, steps, cfg_scale, width, height, seed)
428
  return final_image, seed, gr.update(visible=False)
429
  else:
430
  image_generator = generate_image(prompt_mash, steps, seed, cfg_scale, width, height, progress)
 
431
  final_image = None
432
  step_counter = 0
433
  for image in image_generator:
@@ -444,8 +444,6 @@ def run_lora(prompt, image_input, image_strength, cfg_scale, steps, selected_ind
444
  print(f"Error in run_lora: {str(e)}")
445
  return None, seed, gr.update(visible=False)
446
 
447
-
448
-
449
  run_lora.zerogpu = True
450
 
451
  def get_huggingface_safetensors(link):
 
355
  ).images[0]
356
  return final_image
357
 
 
358
  def run_lora(prompt, image_input, image_strength, cfg_scale, steps, selected_indices, lora_scale_1, lora_scale_2, randomize_seed, seed, width, height, loras_state, progress=gr.Progress(track_tqdm=True)):
359
  try:
360
+ # 한글 감지 및 번역
361
+ if any('\u3131' <= char <= '\u318E' or '\uAC00' <= char <= '\uD7A3' for char in prompt):
362
+ translated = translator(prompt, max_length=512)[0]['translation_text']
363
+ print(f"Original prompt: {prompt}")
364
+ print(f"Translated prompt: {translated}")
365
+ prompt = translated
366
+
367
+ if not selected_indices:
368
+ raise gr.Error("You must select at least one LoRA before proceeding.")
369
+
370
+ selected_loras = [loras_state[idx] for idx in selected_indices]
371
+
372
+ # Build the prompt with trigger words
373
+ prepends = []
374
+ appends = []
375
+ for lora in selected_loras:
376
+ trigger_word = lora.get('trigger_word', '')
377
+ if trigger_word:
378
+ if lora.get("trigger_position") == "prepend":
379
+ prepends.append(trigger_word)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
380
  else:
381
+ appends.append(trigger_word)
382
+ prompt_mash = " ".join(prepends + [prompt] + appends)
383
+ print("Prompt Mash: ", prompt_mash)
384
+
385
+ # Unload previous LoRA weights
386
+ with calculateDuration("Unloading LoRA"):
387
+ pipe.unload_lora_weights()
388
+ pipe_i2i.unload_lora_weights()
389
+
390
+ print(pipe.get_active_adapters())
391
+ # Load LoRA weights with respective scales
392
+ lora_names = []
393
+ lora_weights = []
394
+ with calculateDuration("Loading LoRA weights"):
395
+ for idx, lora in enumerate(selected_loras):
396
+ lora_name = f"lora_{idx}"
397
+ lora_names.append(lora_name)
398
+ lora_weights.append(lora_scale_1 if idx == 0 else lora_scale_2)
399
+ lora_path = lora['repo']
400
+ weight_name = lora.get("weights")
401
+ print(f"Lora Path: {lora_path}")
402
+ if image_input is not None:
403
+ if weight_name:
404
+ pipe_i2i.load_lora_weights(lora_path, weight_name=weight_name, low_cpu_mem_usage=True, adapter_name=lora_name)
405
+ else:
406
+ pipe_i2i.load_lora_weights(lora_path, low_cpu_mem_usage=True, adapter_name=lora_name)
407
  else:
408
+ if weight_name:
409
+ pipe.load_lora_weights(lora_path, weight_name=weight_name, low_cpu_mem_usage=True, adapter_name=lora_name)
410
+ else:
411
+ pipe.load_lora_weights(lora_path, low_cpu_mem_usage=True, adapter_name=lora_name)
412
+ print("Loaded LoRAs:", lora_names)
413
+ print("Adapter weights:", lora_weights)
414
+ if image_input is not None:
415
+ pipe_i2i.set_adapters(lora_names, adapter_weights=lora_weights)
416
+ else:
417
+ pipe.set_adapters(lora_names, adapter_weights=lora_weights)
418
+ print(pipe.get_active_adapters())
419
+ # Set random seed for reproducibility
420
+ with calculateDuration("Randomizing seed"):
421
+ if randomize_seed:
422
+ seed = random.randint(0, MAX_SEED)
423
 
424
+ # Generate image
425
  if image_input is not None:
426
  final_image = generate_image_to_image(prompt_mash, image_input, image_strength, steps, cfg_scale, width, height, seed)
427
  return final_image, seed, gr.update(visible=False)
428
  else:
429
  image_generator = generate_image(prompt_mash, steps, seed, cfg_scale, width, height, progress)
430
+ # Consume the generator to get the final image
431
  final_image = None
432
  step_counter = 0
433
  for image in image_generator:
 
444
  print(f"Error in run_lora: {str(e)}")
445
  return None, seed, gr.update(visible=False)
446
 
 
 
447
  run_lora.zerogpu = True
448
 
449
  def get_huggingface_safetensors(link):