Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,29 +1,37 @@
|
|
|
|
|
| 1 |
import os
|
| 2 |
-
import sys
|
| 3 |
|
| 4 |
-
#
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
print("=== ไม่พบ Gradio กำลังติดตั้ง... ===")
|
| 10 |
-
os.system('pip install gradio --upgrade')
|
| 11 |
-
import gradio as gr
|
| 12 |
|
| 13 |
-
|
| 14 |
-
|
| 15 |
|
| 16 |
-
# โหลด Interface จาก Space ต้นทาง
|
| 17 |
-
# src="spaces" คือคีย์สำคัญที่บอกว่าให้ดึงหน้าเว็บมาแสดงผล ไม่ใช่โหลดโมเดลมาลงเครื่อง
|
| 18 |
try:
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
except Exception as e:
|
| 21 |
-
#
|
| 22 |
-
print(f"
|
| 23 |
-
print("กำลังล
|
| 24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
| 26 |
# รันแอปพลิเคชัน
|
| 27 |
if __name__ == "__main__":
|
| 28 |
-
# ใน HF Space ไม่จำเป็นต้องใช้ share=True แต่ถ้าเผื่อรันใน Colab ก็ใส่ไว้ได้
|
| 29 |
demo.launch()
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
import os
|
|
|
|
| 3 |
|
| 4 |
+
# ชื่อ Space ต้นทาง
|
| 5 |
+
source_space = "selfit-camera/omni-image-editor"
|
| 6 |
+
src_url = f"https://huggingface.co/spaces/{source_space}"
|
| 7 |
+
|
| 8 |
+
print(f"=== กำลังพยายามเชื่อมต่อกับ {source_space} ===")
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
+
# ดึง HF Token จาก Settings (ถ้ามี) เพื่อช่วยในการ Wake up space
|
| 11 |
+
hf_token = os.getenv("HF_TOKEN")
|
| 12 |
|
|
|
|
|
|
|
| 13 |
try:
|
| 14 |
+
# วิธีที่ 1: พยายามโหลดแบบ Native API (ดีที่สุด)
|
| 15 |
+
# ใส่ hf_token เพื่อช่วยปลุก Space ที่หลับอยู่ได้ดีขึ้น
|
| 16 |
+
demo = gr.load(name=source_space, src="spaces", hf_token=hf_token)
|
| 17 |
+
print("=== เชื่อมต่อ API สำเร็จ! ===")
|
| 18 |
+
|
| 19 |
except Exception as e:
|
| 20 |
+
# วิธีที่ 2: ถ้า API พัง หรือ Space หลับ (เจอ JSONDecodeError) -> ใช้ Iframe แทน
|
| 21 |
+
print(f"=== ไม่สามารถโหลด API ได้ ({e}) ===")
|
| 22 |
+
print("=== กำลังสลับไปใช้โหมด Iframe เพื่อแสดงผลหน้าเว็บโดยตรง ===")
|
| 23 |
+
|
| 24 |
+
with gr.Blocks() as demo:
|
| 25 |
+
gr.Markdown(f"### ⚠️ เชื่อมต่อ API โดยตรงไม่ได้ (Space ต้นทางอาจกำลังหลับ) \nระบบสลับมาใช้โหมดแสดงผลหน้าเว็บแทน คุณยังสามารถใช้งานได้ตามปกติ")
|
| 26 |
+
# ฝังหน้าเว็บต้นทางลงไปเลย (วิธีนี้ไม่มีวัน Error)
|
| 27 |
+
gr.HTML(f"""
|
| 28 |
+
<iframe src="{src_url}"
|
| 29 |
+
width="100%"
|
| 30 |
+
height="800px"
|
| 31 |
+
style="border:none;">
|
| 32 |
+
</iframe>
|
| 33 |
+
""")
|
| 34 |
|
| 35 |
# รันแอปพลิเคชัน
|
| 36 |
if __name__ == "__main__":
|
|
|
|
| 37 |
demo.launch()
|