awacke1 commited on
Commit
9273ac8
·
verified ·
1 Parent(s): c9b3642

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -8
app.py CHANGED
@@ -63,7 +63,7 @@ st.session_state.setdefault('selected_model_type', "Causal LM")
63
  st.session_state.setdefault('selected_model', "None")
64
  st.session_state.setdefault('cam0_file', None)
65
  st.session_state.setdefault('cam1_file', None)
66
- st.session_state.setdefault('characters', []) # Store created characters
67
  if 'asset_gallery_container' not in st.session_state:
68
  st.session_state['asset_gallery_container'] = st.sidebar.empty()
69
 
@@ -670,7 +670,7 @@ with tab_character_editor:
670
  st.header("Character Editor 🧑‍🎨")
671
  st.subheader("Create Your Character")
672
 
673
- # Character creation form
674
  if st.button("Randomize Content 🎲"):
675
  name = f"Character_{random.randint(1000, 9999)}"
676
  gender = random.choice(["Male", "Female", "Non-binary"])
@@ -681,25 +681,25 @@ with tab_character_editor:
681
  st.session_state['char_greeting'] = greeting.format(char=name)
682
 
683
  name = st.text_input("Name (3-25 characters, letters, numbers, underscore, hyphen, space only)",
684
- value=st.session_state.get('char_name', ''),
685
  max_chars=25,
686
  key="char_name")
687
  gender = st.radio("Gender", ["Male", "Female", "Non-binary"],
688
  index=["Male", "Female", "Non-binary"].index(st.session_state.get('char_gender', "Male")),
689
  key="char_gender")
690
  intro = st.text_area("Intro (Publicly seen)",
691
- value=st.session_state.get('char_intro', ''),
692
  max_chars=300,
693
  key="char_intro")
694
  greeting = st.text_area("Greeting",
695
- value=st.session_state.get('char_greeting', ''),
696
  max_chars=300,
697
  key="char_greeting")
698
 
699
  if st.button("Create Character", key="create_character"):
700
  if not name or len(name) < 3:
701
  st.error("Name must be 3-25 characters long.")
702
- elif not re.match(r'^[a-zA-Z0-9_- ]+$', name):
703
  st.error("Name can only contain letters, numbers, underscores, hyphens, and spaces.")
704
  elif not intro or not greeting:
705
  st.error("Intro and Greeting cannot be empty.")
@@ -710,7 +710,7 @@ with tab_character_editor:
710
  "intro": intro,
711
  "greeting": greeting,
712
  "created_at": datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
713
- "tags": ["OC"] # Default tag, can be expanded
714
  }
715
  save_character(character_data)
716
  st.success(f"Character '{name}' created successfully!")
@@ -726,7 +726,7 @@ with tab_character_gallery:
726
  characters = st.session_state.get('characters', [])
727
  if characters:
728
  st.subheader("Your Characters")
729
- cols = st.columns(3) # 3 characters per row
730
  for idx, char in enumerate(characters):
731
  with cols[idx % 3]:
732
  st.markdown(f"**{char['name']}**")
 
63
  st.session_state.setdefault('selected_model', "None")
64
  st.session_state.setdefault('cam0_file', None)
65
  st.session_state.setdefault('cam1_file', None)
66
+ st.session_state.setdefault('characters', [])
67
  if 'asset_gallery_container' not in st.session_state:
68
  st.session_state['asset_gallery_container'] = st.sidebar.empty()
69
 
 
670
  st.header("Character Editor 🧑‍🎨")
671
  st.subheader("Create Your Character")
672
 
673
+ # Character creation form with default values
674
  if st.button("Randomize Content 🎲"):
675
  name = f"Character_{random.randint(1000, 9999)}"
676
  gender = random.choice(["Male", "Female", "Non-binary"])
 
681
  st.session_state['char_greeting'] = greeting.format(char=name)
682
 
683
  name = st.text_input("Name (3-25 characters, letters, numbers, underscore, hyphen, space only)",
684
+ value=st.session_state.get('char_name', 'Character_3857'),
685
  max_chars=25,
686
  key="char_name")
687
  gender = st.radio("Gender", ["Male", "Female", "Non-binary"],
688
  index=["Male", "Female", "Non-binary"].index(st.session_state.get('char_gender', "Male")),
689
  key="char_gender")
690
  intro = st.text_area("Intro (Publicly seen)",
691
+ value=st.session_state.get('char_intro', 'Character_3857 is a gentle healer who speaks softly, always carrying herbs and a warm smile.'),
692
  max_chars=300,
693
  key="char_intro")
694
  greeting = st.text_area("Greeting",
695
+ value=st.session_state.get('char_greeting', "A soft hand touches your shoulder. 'I’m Character_3857, here to heal your wounds—don’t worry, I’ve got you.'"),
696
  max_chars=300,
697
  key="char_greeting")
698
 
699
  if st.button("Create Character", key="create_character"):
700
  if not name or len(name) < 3:
701
  st.error("Name must be 3-25 characters long.")
702
+ elif not re.match(r'^[a-zA-Z0-9 _-]+$', name): # Fixed regex to avoid bad character range
703
  st.error("Name can only contain letters, numbers, underscores, hyphens, and spaces.")
704
  elif not intro or not greeting:
705
  st.error("Intro and Greeting cannot be empty.")
 
710
  "intro": intro,
711
  "greeting": greeting,
712
  "created_at": datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
713
+ "tags": ["OC"]
714
  }
715
  save_character(character_data)
716
  st.success(f"Character '{name}' created successfully!")
 
726
  characters = st.session_state.get('characters', [])
727
  if characters:
728
  st.subheader("Your Characters")
729
+ cols = st.columns(3)
730
  for idx, char in enumerate(characters):
731
  with cols[idx % 3]:
732
  st.markdown(f"**{char['name']}**")