liuxh0319 commited on
Commit
d580b27
·
verified ·
1 Parent(s): 5c26951

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -62
app.py CHANGED
@@ -118,16 +118,6 @@ def text_to_speech(text, processor, model, vocoder, embeddings_dataset):
118
  raise
119
 
120
  def main():
121
- # 初始化会话状态
122
- required_states = {
123
- 'generated': False,
124
- 'audio': None,
125
- 'story': ""
126
- }
127
- for key, val in required_states.items():
128
- if key not in st.session_state:
129
- st.session_state[key] = val
130
-
131
  # 界面配置
132
  st.set_page_config(
133
  page_title="Magic Story Box",
@@ -139,49 +129,18 @@ def main():
139
  st.markdown("---")
140
  st.write("Upload an image to get your magical story!")
141
 
142
- # 加载模型
143
- try:
144
- (blip_proc, blip_model, story_gen,
145
- tts_proc, tts_model, vocoder, embeddings) = load_models()
146
- except:
147
- return
148
 
149
- # 文件上传组件
150
- uploaded_file = st.file_uploader(
151
- "Choose your magic image",
152
- type=["jpg", "png", "jpeg"],
153
- help="Upload photos of pets, toys or adventures!",
154
- key="uploader"
155
- )
156
 
157
- # 处理上传文件
158
- if uploaded_file and not st.session_state.generated:
159
- try:
160
- image = Image.open(uploaded_file).convert("RGB")
161
- st.image(image, caption="Your Magic Picture ✨", use_container_width=True)
162
-
163
- with st.status("Creating Magic...", expanded=True) as status:
164
- # 生成故事
165
- st.write("🔍 Reading the image...")
166
- story = generate_story(image, blip_proc, blip_model, story_gen)
167
-
168
- # 生成语音
169
- st.write("🔊 Adding sounds...")
170
- audio_array, sr = text_to_speech(story, tts_proc, tts_model, vocoder, embeddings)
171
-
172
- # 保存结果
173
- st.session_state.story = story
174
- st.session_state.audio = (audio_array, sr)
175
- status.update(label="Ready!", state="complete", expanded=False)
176
-
177
- st.session_state.generated = True
178
- st.rerun()
179
-
180
- except Exception as e:
181
- st.error(f"Magic failed: {str(e)}")
182
 
183
  # 显示结果
184
- if st.session_state.get('generated', False):
185
  st.markdown("---")
186
  st.subheader("Your Story 📖")
187
  st.markdown(f'<div style="background:#fff3e6; padding:20px; border-radius:10px;">{st.session_state.story}</div>',
@@ -189,19 +148,8 @@ def main():
189
 
190
  st.markdown("---")
191
  st.subheader("Listen 🎧")
192
- if st.session_state.audio is not None:
193
- audio_data, sr = st.session_state.audio
194
- st.audio(audio_data, sample_rate=sr)
195
- else:
196
- st.warning("Audio not available")
197
-
198
- st.markdown("---")
199
- if st.button("Create New Story", use_container_width=True):
200
- # 安全重置状态
201
- st.session_state.generated = False
202
- st.session_state.audio = None
203
- st.session_state.story = ""
204
- st.rerun()
205
 
206
  if __name__ == "__main__":
207
  main()
 
118
  raise
119
 
120
  def main():
 
 
 
 
 
 
 
 
 
 
121
  # 界面配置
122
  st.set_page_config(
123
  page_title="Magic Story Box",
 
129
  st.markdown("---")
130
  st.write("Upload an image to get your magical story!")
131
 
132
+ # 初始化会话状态
133
+ if 'generated' not in st.session_state:
134
+ st.session_state.generated = False
 
 
 
135
 
136
+ # 加载模型(保持不变...)
137
+
138
+ # 文件上传组件(保持不变...)
 
 
 
 
139
 
140
+ # 处理上传文件(保持不变...)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
 
142
  # 显示结果
143
+ if st.session_state.generated:
144
  st.markdown("---")
145
  st.subheader("Your Story 📖")
146
  st.markdown(f'<div style="background:#fff3e6; padding:20px; border-radius:10px;">{st.session_state.story}</div>',
 
148
 
149
  st.markdown("---")
150
  st.subheader("Listen 🎧")
151
+ audio_data, sr = st.session_state.audio
152
+ st.audio(audio_data, sample_rate=sr)
 
 
 
 
 
 
 
 
 
 
 
153
 
154
  if __name__ == "__main__":
155
  main()