Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
144 |
-
|
145 |
-
tts_proc, tts_model, vocoder, embeddings) = load_models()
|
146 |
-
except:
|
147 |
-
return
|
148 |
|
149 |
-
#
|
150 |
-
|
151 |
-
|
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.
|
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 |
-
|
193 |
-
|
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()
|