Spaces:
Sleeping
Sleeping
Yaron Koresh
commited on
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,6 +1,5 @@
|
|
| 1 |
|
| 2 |
-
|
| 3 |
-
|
| 4 |
from collections import namedtuple
|
| 5 |
from inspect import signature
|
| 6 |
import os
|
|
@@ -555,7 +554,7 @@ def get_tensor_length(tensor):
|
|
| 555 |
ret = ret * num
|
| 556 |
return ret
|
| 557 |
|
| 558 |
-
def
|
| 559 |
text, max_len=20, min_len=10
|
| 560 |
):
|
| 561 |
log(f'CALL summarize_text')
|
|
@@ -564,12 +563,12 @@ def summarize_text(
|
|
| 564 |
while get_tensor_length(inputs) > max_len:
|
| 565 |
print(f'DBG summarize_text 1 {i}')
|
| 566 |
outputs = model.generate(
|
| 567 |
-
inputs[:512],
|
| 568 |
-
max_length=max_len,
|
| 569 |
-
min_length=min_len,
|
| 570 |
length_penalty=2.0,
|
| 571 |
-
num_beams=
|
| 572 |
-
early_stopping=True
|
|
|
|
|
|
|
| 573 |
)
|
| 574 |
inputs = torch.tensor([[*list(outputs[0]), *list(inputs[0][512:])]])
|
| 575 |
i = i + 1
|
|
@@ -631,6 +630,25 @@ def all_pipes(pos,neg,artist,song):
|
|
| 631 |
|
| 632 |
return imgs
|
| 633 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 634 |
@spaces.GPU(duration=300)
|
| 635 |
def handle_generation(artist,song,genre,lyrics):
|
| 636 |
|
|
@@ -644,11 +662,11 @@ def handle_generation(artist,song,genre,lyrics):
|
|
| 644 |
pos_genre = ' '.join(word[0].upper() + word[1:] for word in pos_genre.split())
|
| 645 |
|
| 646 |
pos_lyrics = re.sub(f'[{punctuation}]', '', re.sub("([ \t\n]){1,}", " ", lyrics)).lower().strip()
|
| 647 |
-
pos_lyrics_sum = pos_lyrics if pos_lyrics == "" else
|
| 648 |
|
| 649 |
neg = f"Sexuality, Humanity, Textual, Labeled, Distorted, Discontinuous, Blurry, Doll-Like, Overly Plastic, Low-Quality, Painted, Smoothed, Artificial, Phony, Gaudy, Digital Effects."
|
| 650 |
q = "\""
|
| 651 |
-
pos = f'HQ Hyper-realistic { pos_genre } song "{ pos_song }"{ pos_lyrics_sum if pos_lyrics_sum == "" else ": " + pos_lyrics_sum }.'
|
| 652 |
|
| 653 |
print(f"""
|
| 654 |
Positive: {pos}
|
|
@@ -693,13 +711,13 @@ if __name__ == "__main__":
|
|
| 693 |
max_lines=1
|
| 694 |
)
|
| 695 |
genre = gr.Textbox(
|
| 696 |
-
placeholder="Genre
|
| 697 |
value="",
|
| 698 |
container=False,
|
| 699 |
max_lines=1
|
| 700 |
)
|
| 701 |
lyrics = gr.Textbox(
|
| 702 |
-
placeholder="Lyrics
|
| 703 |
value="",
|
| 704 |
container=False,
|
| 705 |
max_lines=1
|
|
|
|
| 1 |
|
| 2 |
+
from langdetect import detect as get_language
|
|
|
|
| 3 |
from collections import namedtuple
|
| 4 |
from inspect import signature
|
| 5 |
import os
|
|
|
|
| 554 |
ret = ret * num
|
| 555 |
return ret
|
| 556 |
|
| 557 |
+
def summarize(
|
| 558 |
text, max_len=20, min_len=10
|
| 559 |
):
|
| 560 |
log(f'CALL summarize_text')
|
|
|
|
| 563 |
while get_tensor_length(inputs) > max_len:
|
| 564 |
print(f'DBG summarize_text 1 {i}')
|
| 565 |
outputs = model.generate(
|
| 566 |
+
inputs[0][:512],
|
|
|
|
|
|
|
| 567 |
length_penalty=2.0,
|
| 568 |
+
num_beams=max(8,get_tensor_length(inputs)),
|
| 569 |
+
early_stopping=True,
|
| 570 |
+
max_length=max( get_tensor_length(inputs) // 4 , max_len ),
|
| 571 |
+
min_length=min_len
|
| 572 |
)
|
| 573 |
inputs = torch.tensor([[*list(outputs[0]), *list(inputs[0][512:])]])
|
| 574 |
i = i + 1
|
|
|
|
| 630 |
|
| 631 |
return imgs
|
| 632 |
|
| 633 |
+
def translate(txt,to_lang="en",from_lang=False):
|
| 634 |
+
log(f'CALL translate')
|
| 635 |
+
if not from_lang:
|
| 636 |
+
from_lang = get_language(txt)
|
| 637 |
+
if(from_lang == to_lang):
|
| 638 |
+
log(f'RET translate with txt as {txt}')
|
| 639 |
+
return txt
|
| 640 |
+
inputs = tokenizer.encode(f"translate {from_lang} to {to_lang}: " + text, return_tensors="pt", max_length=float('inf'), truncation=False)
|
| 641 |
+
chunks_length = math.ceil(get_tensor_length(inputs) / 512):
|
| 642 |
+
ret = ""
|
| 643 |
+
for index in range(chunks_length):
|
| 644 |
+
ret = ret + ("" if ret == "" else " ") + tokenizer.decode(
|
| 645 |
+
model.generate(
|
| 646 |
+
inputs[0][ index*512:index*512+512 ]
|
| 647 |
+
)[0]
|
| 648 |
+
)
|
| 649 |
+
log(f'RET translate with ret as {ret}')
|
| 650 |
+
return ret
|
| 651 |
+
|
| 652 |
@spaces.GPU(duration=300)
|
| 653 |
def handle_generation(artist,song,genre,lyrics):
|
| 654 |
|
|
|
|
| 662 |
pos_genre = ' '.join(word[0].upper() + word[1:] for word in pos_genre.split())
|
| 663 |
|
| 664 |
pos_lyrics = re.sub(f'[{punctuation}]', '', re.sub("([ \t\n]){1,}", " ", lyrics)).lower().strip()
|
| 665 |
+
pos_lyrics_sum = pos_lyrics if pos_lyrics == "" else summarize(pos_lyrics)
|
| 666 |
|
| 667 |
neg = f"Sexuality, Humanity, Textual, Labeled, Distorted, Discontinuous, Blurry, Doll-Like, Overly Plastic, Low-Quality, Painted, Smoothed, Artificial, Phony, Gaudy, Digital Effects."
|
| 668 |
q = "\""
|
| 669 |
+
pos = f'HQ Hyper-realistic { translate(pos_genre) } song "{ translate(pos_song) }"{ pos_lyrics_sum if pos_lyrics_sum == "" else ": " + translate(pos_lyrics_sum) }.'
|
| 670 |
|
| 671 |
print(f"""
|
| 672 |
Positive: {pos}
|
|
|
|
| 711 |
max_lines=1
|
| 712 |
)
|
| 713 |
genre = gr.Textbox(
|
| 714 |
+
placeholder="Genre",
|
| 715 |
value="",
|
| 716 |
container=False,
|
| 717 |
max_lines=1
|
| 718 |
)
|
| 719 |
lyrics = gr.Textbox(
|
| 720 |
+
placeholder="Lyrics",
|
| 721 |
value="",
|
| 722 |
container=False,
|
| 723 |
max_lines=1
|