Update app.py
Browse files
app.py
CHANGED
|
@@ -65,6 +65,15 @@ class SimpleModelManager:
|
|
| 65 |
|
| 66 |
def cleanup(self):
|
| 67 |
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
|
| 69 |
# 全局状态管理
|
| 70 |
class AppState:
|
|
@@ -551,8 +560,17 @@ def create_gradio_interface():
|
|
| 551 |
with gr.Row():
|
| 552 |
with gr.Column():
|
| 553 |
gr.Markdown("### 🔧 系统控制")
|
| 554 |
-
cleanup_btn = gr.Button("🧹
|
| 555 |
-
gr.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 556 |
|
| 557 |
# 事件绑定 - 完整的流水线连接
|
| 558 |
analyze_btn.click(
|
|
@@ -579,6 +597,24 @@ def create_gradio_interface():
|
|
| 579 |
outputs=[]
|
| 580 |
)
|
| 581 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 582 |
# 添加使用说明
|
| 583 |
with gr.Row():
|
| 584 |
gr.Markdown("""
|
|
@@ -592,6 +628,7 @@ def create_gradio_interface():
|
|
| 592 |
- 每一步都会调用相应的AI模型,请耐心等待生成完成
|
| 593 |
- 使用ControlNet模型生成高质量的3D试穿效果
|
| 594 |
- 所有设计都基于原始图片的分析结果
|
|
|
|
| 595 |
""")
|
| 596 |
|
| 597 |
return demo
|
|
|
|
| 65 |
|
| 66 |
def cleanup(self):
|
| 67 |
pass
|
| 68 |
+
|
| 69 |
+
def move_models_to_cpu(self):
|
| 70 |
+
pass
|
| 71 |
+
|
| 72 |
+
def move_models_to_gpu(self):
|
| 73 |
+
pass
|
| 74 |
+
|
| 75 |
+
def force_reload_all_models(self):
|
| 76 |
+
pass
|
| 77 |
|
| 78 |
# 全局状态管理
|
| 79 |
class AppState:
|
|
|
|
| 560 |
with gr.Row():
|
| 561 |
with gr.Column():
|
| 562 |
gr.Markdown("### 🔧 系统控制")
|
| 563 |
+
cleanup_btn = gr.Button("🧹 清理显存缓存", variant="secondary")
|
| 564 |
+
cpu_btn = gr.Button("💾 模型移至CPU", variant="secondary")
|
| 565 |
+
gpu_btn = gr.Button("🚀 模型移至GPU", variant="secondary")
|
| 566 |
+
reload_btn = gr.Button("🔄 重新加载模型", variant="primary")
|
| 567 |
+
gr.Markdown("""
|
| 568 |
+
> **使用说明**:
|
| 569 |
+
> - **清理显存缓存**: 只清理缓存,不影响模型
|
| 570 |
+
> - **模型移至CPU**: 释放GPU显存,但推理会变慢
|
| 571 |
+
> - **模型移至GPU**: 将模型移回GPU,恢复正常速度
|
| 572 |
+
> - **重新加载模型**: 如果模型出现问题,强制重新加载
|
| 573 |
+
""")
|
| 574 |
|
| 575 |
# 事件绑定 - 完整的流水线连接
|
| 576 |
analyze_btn.click(
|
|
|
|
| 597 |
outputs=[]
|
| 598 |
)
|
| 599 |
|
| 600 |
+
cpu_btn.click(
|
| 601 |
+
fn=model_manager.move_models_to_cpu,
|
| 602 |
+
inputs=[],
|
| 603 |
+
outputs=[]
|
| 604 |
+
)
|
| 605 |
+
|
| 606 |
+
gpu_btn.click(
|
| 607 |
+
fn=model_manager.move_models_to_gpu,
|
| 608 |
+
inputs=[],
|
| 609 |
+
outputs=[]
|
| 610 |
+
)
|
| 611 |
+
|
| 612 |
+
reload_btn.click(
|
| 613 |
+
fn=model_manager.force_reload_all_models,
|
| 614 |
+
inputs=[],
|
| 615 |
+
outputs=[]
|
| 616 |
+
)
|
| 617 |
+
|
| 618 |
# 添加使用说明
|
| 619 |
with gr.Row():
|
| 620 |
gr.Markdown("""
|
|
|
|
| 628 |
- 每一步都会调用相应的AI模型,请耐心等待生成完成
|
| 629 |
- 使用ControlNet模型生成高质量的3D试穿效果
|
| 630 |
- 所有设计都基于原始图片的分析结果
|
| 631 |
+
- 如果遇到模型问题,可以使用下方的系统控制按钮
|
| 632 |
""")
|
| 633 |
|
| 634 |
return demo
|