Spaces:
Sleeping
Sleeping
Update app.py (#3)
Browse files- Update app.py (44218401c0b9ad763e830d47d464f4c172e85145)
Co-authored-by: Andries Beytell <[email protected]>
app.py
CHANGED
@@ -728,6 +728,330 @@ def generateNames(type, amount, max_length=30, temperature=0.5, seed_text=""):
|
|
728 |
names.append(name)
|
729 |
return pd.DataFrame(names, columns=['Names'])
|
730 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
731 |
elif type == "Fantasy":
|
732 |
max_seq_len = 16 # For fantasy, 16
|
733 |
sp = spm.SentencePieceProcessor()
|
@@ -766,7 +1090,7 @@ def generateNames(type, amount, max_length=30, temperature=0.5, seed_text=""):
|
|
766 |
|
767 |
demo = gr.Interface(
|
768 |
fn=generateNames,
|
769 |
-
inputs=[gr.Radio(choices=["Terraria", "Skyrim", "Witcher", "WOW", "Minecraft", "Dark Souls", "Final Fantasy", "Elden Ring", "Zelda", "Dragon Age", "Fallout", "Darkest Dungeon", "Monster Hunter", "Bloodborne", "Hollow Knight", "Assassin's Creed", "Baldur's Gate", "Fantasy"], label="Choose a model for your request", value="Terraria"), gr.Slider(1,100, step=1, label='Amount of Names', info='How many names to generate, must be greater than 0'), gr.Slider(10, 60, value=30, step=1, label='Max Length', info='Max length of the generated word'), gr.Slider(0.1, 1, value=0.5, label='Temperature', info='Controls randomness of generation, higher values = more creative, lower values = more probalistic'), gr.Textbox('', label='Seed text (optional)', info='The starting text to begin with', max_lines=1, )],
|
770 |
outputs=[gr.Dataframe(row_count = (2, "dynamic"), col_count=(1, "fixed"), label="Generated Names", headers=["Names"])],
|
771 |
title='Dungen - Name Generator',
|
772 |
description='A fun game-inspired name generator. For an example of how to create, and train your model, like this one, head over to: https://github.com/Infinitode/OPEN-ARC/tree/main/Project-5-TWNG. There you will find our base model, the dataset we used, and implementation code in the form of a Jupyter Notebook (exported from Kaggle).'
|
|
|
728 |
names.append(name)
|
729 |
return pd.DataFrame(names, columns=['Names'])
|
730 |
|
731 |
+
elif type == "Cyberpunk":
|
732 |
+
max_seq_len = 13 # For skyrim = 13, for terraria = 12
|
733 |
+
sp = spm.SentencePieceProcessor()
|
734 |
+
sp.load("models/cyperpunk_names.model")
|
735 |
+
amount = int(amount)
|
736 |
+
max_length = int(max_length)
|
737 |
+
|
738 |
+
names = []
|
739 |
+
|
740 |
+
# Define necessary variables
|
741 |
+
vocab_size = sp.GetPieceSize()
|
742 |
+
|
743 |
+
# Load TFLite model
|
744 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_cyberpunk_model.tflite")
|
745 |
+
interpreter.allocate_tensors()
|
746 |
+
|
747 |
+
# Use the function to generate a name
|
748 |
+
for _ in range(amount):
|
749 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
750 |
+
stripped = generated_name.strip()
|
751 |
+
hate_speech = detect_hate_speech(stripped)
|
752 |
+
profanity = detect_profanity([stripped], language='All')
|
753 |
+
name = ''
|
754 |
+
|
755 |
+
if len(profanity) > 0:
|
756 |
+
name = "Profanity Detected"
|
757 |
+
else:
|
758 |
+
if hate_speech == ['Hate Speech']:
|
759 |
+
name = 'Hate Speech Detected'
|
760 |
+
elif hate_speech == ['Offensive Speech']:
|
761 |
+
name = 'Offensive Speech Detected'
|
762 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
763 |
+
name = stripped
|
764 |
+
names.append(name)
|
765 |
+
return pd.DataFrame(names, columns=['Names'])
|
766 |
+
|
767 |
+
elif type == "Mass Effect":
|
768 |
+
max_seq_len = 16 # For skyrim = 13, for terraria = 12
|
769 |
+
sp = spm.SentencePieceProcessor()
|
770 |
+
sp.load("models/mass_effect_names.model")
|
771 |
+
amount = int(amount)
|
772 |
+
max_length = int(max_length)
|
773 |
+
|
774 |
+
names = []
|
775 |
+
|
776 |
+
# Define necessary variables
|
777 |
+
vocab_size = sp.GetPieceSize()
|
778 |
+
|
779 |
+
# Load TFLite model
|
780 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_mass_effect_model.tflite")
|
781 |
+
interpreter.allocate_tensors()
|
782 |
+
|
783 |
+
# Use the function to generate a name
|
784 |
+
for _ in range(amount):
|
785 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
786 |
+
stripped = generated_name.strip()
|
787 |
+
hate_speech = detect_hate_speech(stripped)
|
788 |
+
profanity = detect_profanity([stripped], language='All')
|
789 |
+
name = ''
|
790 |
+
|
791 |
+
if len(profanity) > 0:
|
792 |
+
name = "Profanity Detected"
|
793 |
+
else:
|
794 |
+
if hate_speech == ['Hate Speech']:
|
795 |
+
name = 'Hate Speech Detected'
|
796 |
+
elif hate_speech == ['Offensive Speech']:
|
797 |
+
name = 'Offensive Speech Detected'
|
798 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
799 |
+
name = stripped
|
800 |
+
names.append(name)
|
801 |
+
return pd.DataFrame(names, columns=['Names'])
|
802 |
+
|
803 |
+
elif type == "God Of War":
|
804 |
+
max_seq_len = 12 # For skyrim = 13, for terraria = 12
|
805 |
+
sp = spm.SentencePieceProcessor()
|
806 |
+
sp.load("models/god_of_war_names.model")
|
807 |
+
amount = int(amount)
|
808 |
+
max_length = int(max_length)
|
809 |
+
|
810 |
+
names = []
|
811 |
+
|
812 |
+
# Define necessary variables
|
813 |
+
vocab_size = sp.GetPieceSize()
|
814 |
+
|
815 |
+
# Load TFLite model
|
816 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_god_of_war_model.tflite")
|
817 |
+
interpreter.allocate_tensors()
|
818 |
+
|
819 |
+
# Use the function to generate a name
|
820 |
+
for _ in range(amount):
|
821 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
822 |
+
stripped = generated_name.strip()
|
823 |
+
hate_speech = detect_hate_speech(stripped)
|
824 |
+
profanity = detect_profanity([stripped], language='All')
|
825 |
+
name = ''
|
826 |
+
|
827 |
+
if len(profanity) > 0:
|
828 |
+
name = "Profanity Detected"
|
829 |
+
else:
|
830 |
+
if hate_speech == ['Hate Speech']:
|
831 |
+
name = 'Hate Speech Detected'
|
832 |
+
elif hate_speech == ['Offensive Speech']:
|
833 |
+
name = 'Offensive Speech Detected'
|
834 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
835 |
+
name = stripped
|
836 |
+
names.append(name)
|
837 |
+
return pd.DataFrame(names, columns=['Names'])
|
838 |
+
|
839 |
+
elif type == "Last Of Us":
|
840 |
+
max_seq_len = 9 # For skyrim = 13, for terraria = 12
|
841 |
+
sp = spm.SentencePieceProcessor()
|
842 |
+
sp.load("models/last_of_us_names.model")
|
843 |
+
amount = int(amount)
|
844 |
+
max_length = int(max_length)
|
845 |
+
|
846 |
+
names = []
|
847 |
+
|
848 |
+
# Define necessary variables
|
849 |
+
vocab_size = sp.GetPieceSize()
|
850 |
+
|
851 |
+
# Load TFLite model
|
852 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_last_of_us_model.tflite")
|
853 |
+
interpreter.allocate_tensors()
|
854 |
+
|
855 |
+
# Use the function to generate a name
|
856 |
+
for _ in range(amount):
|
857 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
858 |
+
stripped = generated_name.strip()
|
859 |
+
hate_speech = detect_hate_speech(stripped)
|
860 |
+
profanity = detect_profanity([stripped], language='All')
|
861 |
+
name = ''
|
862 |
+
|
863 |
+
if len(profanity) > 0:
|
864 |
+
name = "Profanity Detected"
|
865 |
+
else:
|
866 |
+
if hate_speech == ['Hate Speech']:
|
867 |
+
name = 'Hate Speech Detected'
|
868 |
+
elif hate_speech == ['Offensive Speech']:
|
869 |
+
name = 'Offensive Speech Detected'
|
870 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
871 |
+
name = stripped
|
872 |
+
names.append(name)
|
873 |
+
return pd.DataFrame(names, columns=['Names'])
|
874 |
+
|
875 |
+
elif type == "Factorio":
|
876 |
+
max_seq_len = 13 # For skyrim = 13, for terraria = 12
|
877 |
+
sp = spm.SentencePieceProcessor()
|
878 |
+
sp.load("models/factorio_names.model")
|
879 |
+
amount = int(amount)
|
880 |
+
max_length = int(max_length)
|
881 |
+
|
882 |
+
names = []
|
883 |
+
|
884 |
+
# Define necessary variables
|
885 |
+
vocab_size = sp.GetPieceSize()
|
886 |
+
|
887 |
+
# Load TFLite model
|
888 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_factorio_model.tflite")
|
889 |
+
interpreter.allocate_tensors()
|
890 |
+
|
891 |
+
# Use the function to generate a name
|
892 |
+
for _ in range(amount):
|
893 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
894 |
+
stripped = generated_name.strip()
|
895 |
+
hate_speech = detect_hate_speech(stripped)
|
896 |
+
profanity = detect_profanity([stripped], language='All')
|
897 |
+
name = ''
|
898 |
+
|
899 |
+
if len(profanity) > 0:
|
900 |
+
name = "Profanity Detected"
|
901 |
+
else:
|
902 |
+
if hate_speech == ['Hate Speech']:
|
903 |
+
name = 'Hate Speech Detected'
|
904 |
+
elif hate_speech == ['Offensive Speech']:
|
905 |
+
name = 'Offensive Speech Detected'
|
906 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
907 |
+
name = stripped
|
908 |
+
names.append(name)
|
909 |
+
return pd.DataFrame(names, columns=['Names'])
|
910 |
+
|
911 |
+
elif type == "The Sims":
|
912 |
+
max_seq_len = 13 # For skyrim = 13, for terraria = 12
|
913 |
+
sp = spm.SentencePieceProcessor()
|
914 |
+
sp.load("models/the_sims_names.model")
|
915 |
+
amount = int(amount)
|
916 |
+
max_length = int(max_length)
|
917 |
+
|
918 |
+
names = []
|
919 |
+
|
920 |
+
# Define necessary variables
|
921 |
+
vocab_size = sp.GetPieceSize()
|
922 |
+
|
923 |
+
# Load TFLite model
|
924 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_the_sims_model.tflite")
|
925 |
+
interpreter.allocate_tensors()
|
926 |
+
|
927 |
+
# Use the function to generate a name
|
928 |
+
for _ in range(amount):
|
929 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
930 |
+
stripped = generated_name.strip()
|
931 |
+
hate_speech = detect_hate_speech(stripped)
|
932 |
+
profanity = detect_profanity([stripped], language='All')
|
933 |
+
name = ''
|
934 |
+
|
935 |
+
if len(profanity) > 0:
|
936 |
+
name = "Profanity Detected"
|
937 |
+
else:
|
938 |
+
if hate_speech == ['Hate Speech']:
|
939 |
+
name = 'Hate Speech Detected'
|
940 |
+
elif hate_speech == ['Offensive Speech']:
|
941 |
+
name = 'Offensive Speech Detected'
|
942 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
943 |
+
name = stripped
|
944 |
+
names.append(name)
|
945 |
+
return pd.DataFrame(names, columns=['Names'])
|
946 |
+
|
947 |
+
elif type == "Fortnite":
|
948 |
+
max_seq_len = 10 # For skyrim = 13, for terraria = 12
|
949 |
+
sp = spm.SentencePieceProcessor()
|
950 |
+
sp.load("models/fortnite_names.model")
|
951 |
+
amount = int(amount)
|
952 |
+
max_length = int(max_length)
|
953 |
+
|
954 |
+
names = []
|
955 |
+
|
956 |
+
# Define necessary variables
|
957 |
+
vocab_size = sp.GetPieceSize()
|
958 |
+
|
959 |
+
# Load TFLite model
|
960 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_fortnite_model.tflite")
|
961 |
+
interpreter.allocate_tensors()
|
962 |
+
|
963 |
+
# Use the function to generate a name
|
964 |
+
for _ in range(amount):
|
965 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
966 |
+
stripped = generated_name.strip()
|
967 |
+
hate_speech = detect_hate_speech(stripped)
|
968 |
+
profanity = detect_profanity([stripped], language='All')
|
969 |
+
name = ''
|
970 |
+
|
971 |
+
if len(profanity) > 0:
|
972 |
+
name = "Profanity Detected"
|
973 |
+
else:
|
974 |
+
if hate_speech == ['Hate Speech']:
|
975 |
+
name = 'Hate Speech Detected'
|
976 |
+
elif hate_speech == ['Offensive Speech']:
|
977 |
+
name = 'Offensive Speech Detected'
|
978 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
979 |
+
name = stripped
|
980 |
+
names.append(name)
|
981 |
+
return pd.DataFrame(names, columns=['Names'])
|
982 |
+
|
983 |
+
elif type == "League Of Legends":
|
984 |
+
max_seq_len = 12 # For skyrim = 13, for terraria = 12
|
985 |
+
sp = spm.SentencePieceProcessor()
|
986 |
+
sp.load("models/league_of_legends_names.model")
|
987 |
+
amount = int(amount)
|
988 |
+
max_length = int(max_length)
|
989 |
+
|
990 |
+
names = []
|
991 |
+
|
992 |
+
# Define necessary variables
|
993 |
+
vocab_size = sp.GetPieceSize()
|
994 |
+
|
995 |
+
# Load TFLite model
|
996 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_league_of_legends_model.tflite")
|
997 |
+
interpreter.allocate_tensors()
|
998 |
+
|
999 |
+
# Use the function to generate a name
|
1000 |
+
for _ in range(amount):
|
1001 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
1002 |
+
stripped = generated_name.strip()
|
1003 |
+
hate_speech = detect_hate_speech(stripped)
|
1004 |
+
profanity = detect_profanity([stripped], language='All')
|
1005 |
+
name = ''
|
1006 |
+
|
1007 |
+
if len(profanity) > 0:
|
1008 |
+
name = "Profanity Detected"
|
1009 |
+
else:
|
1010 |
+
if hate_speech == ['Hate Speech']:
|
1011 |
+
name = 'Hate Speech Detected'
|
1012 |
+
elif hate_speech == ['Offensive Speech']:
|
1013 |
+
name = 'Offensive Speech Detected'
|
1014 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
1015 |
+
name = stripped
|
1016 |
+
names.append(name)
|
1017 |
+
return pd.DataFrame(names, columns=['Names'])
|
1018 |
+
|
1019 |
+
elif type == "Among Us":
|
1020 |
+
max_seq_len = 13 # For skyrim = 13, for terraria = 12
|
1021 |
+
sp = spm.SentencePieceProcessor()
|
1022 |
+
sp.load("models/among_us_names.model")
|
1023 |
+
amount = int(amount)
|
1024 |
+
max_length = int(max_length)
|
1025 |
+
|
1026 |
+
names = []
|
1027 |
+
|
1028 |
+
# Define necessary variables
|
1029 |
+
vocab_size = sp.GetPieceSize()
|
1030 |
+
|
1031 |
+
# Load TFLite model
|
1032 |
+
interpreter = tf.lite.Interpreter(model_path="models/dungen_among_us_model.tflite")
|
1033 |
+
interpreter.allocate_tensors()
|
1034 |
+
|
1035 |
+
# Use the function to generate a name
|
1036 |
+
for _ in range(amount):
|
1037 |
+
generated_name = generate_random_name(interpreter, vocab_size, sp, seed_text=seed_text, max_length=max_length, temperature=temperature, max_seq_len=max_seq_len)
|
1038 |
+
stripped = generated_name.strip()
|
1039 |
+
hate_speech = detect_hate_speech(stripped)
|
1040 |
+
profanity = detect_profanity([stripped], language='All')
|
1041 |
+
name = ''
|
1042 |
+
|
1043 |
+
if len(profanity) > 0:
|
1044 |
+
name = "Profanity Detected"
|
1045 |
+
else:
|
1046 |
+
if hate_speech == ['Hate Speech']:
|
1047 |
+
name = 'Hate Speech Detected'
|
1048 |
+
elif hate_speech == ['Offensive Speech']:
|
1049 |
+
name = 'Offensive Speech Detected'
|
1050 |
+
elif hate_speech == ['No Hate and Offensive Speech']:
|
1051 |
+
name = stripped
|
1052 |
+
names.append(name)
|
1053 |
+
return pd.DataFrame(names, columns=['Names'])
|
1054 |
+
|
1055 |
elif type == "Fantasy":
|
1056 |
max_seq_len = 16 # For fantasy, 16
|
1057 |
sp = spm.SentencePieceProcessor()
|
|
|
1090 |
|
1091 |
demo = gr.Interface(
|
1092 |
fn=generateNames,
|
1093 |
+
inputs=[gr.Radio(choices=["Terraria", "Skyrim", "Witcher", "WOW", "Minecraft", "Dark Souls", "Final Fantasy", "Elden Ring", "Zelda", "Dragon Age", "Fallout", "Darkest Dungeon", "Monster Hunter", "Bloodborne", "Hollow Knight", "Assassin's Creed", "Baldur's Gate", "Cyberpunk", "Mass Effect", "God Of War", "Last Of Us", "Factorio", "The Sims", "Fortnite", "League Of Legends", "Among Us", "Fantasy"], label="Choose a model for your request", value="Terraria"), gr.Slider(1,100, step=1, label='Amount of Names', info='How many names to generate, must be greater than 0'), gr.Slider(10, 60, value=30, step=1, label='Max Length', info='Max length of the generated word'), gr.Slider(0.1, 1, value=0.5, label='Temperature', info='Controls randomness of generation, higher values = more creative, lower values = more probalistic'), gr.Textbox('', label='Seed text (optional)', info='The starting text to begin with', max_lines=1, )],
|
1094 |
outputs=[gr.Dataframe(row_count = (2, "dynamic"), col_count=(1, "fixed"), label="Generated Names", headers=["Names"])],
|
1095 |
title='Dungen - Name Generator',
|
1096 |
description='A fun game-inspired name generator. For an example of how to create, and train your model, like this one, head over to: https://github.com/Infinitode/OPEN-ARC/tree/main/Project-5-TWNG. There you will find our base model, the dataset we used, and implementation code in the form of a Jupyter Notebook (exported from Kaggle).'
|