aiqtech commited on
Commit
a21ad48
·
verified ·
1 Parent(s): fd13611

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +104 -229
app.py CHANGED
@@ -1,260 +1,135 @@
1
  import gradio as gr
2
- import time
3
 
4
- # CSS for styling
5
  css = """
6
- .link-box {
7
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
8
- border-radius: 10px;
9
- padding: 20px;
10
  text-align: center;
 
 
 
 
 
 
 
 
 
 
 
11
  color: white;
12
- margin: 20px 0;
 
13
  }
14
 
15
- .link-box a {
16
- color: #ffd700;
17
- font-weight: bold;
18
- font-size: 1.2em;
19
- text-decoration: none;
20
  }
21
 
22
- .link-box a:hover {
23
- text-decoration: underline;
 
 
 
 
 
 
 
 
 
24
  }
25
 
26
- .popup-style {
27
- background: #fff3cd;
28
- border: 2px solid #ffc107;
29
- border-radius: 8px;
30
- padding: 15px;
31
- margin: 10px 0;
32
  }
 
33
 
34
- .important-link {
35
- background: #d1ecf1;
36
- border: 2px solid #17a2b8;
37
- border-radius: 8px;
38
- padding: 20px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  text-align: center;
40
- animation: pulse 2s infinite;
41
  }
42
 
43
- @keyframes pulse {
44
- 0% {
45
- box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.7);
46
- }
47
- 70% {
48
- box-shadow: 0 0 0 10px rgba(23, 162, 184, 0);
49
- }
50
- 100% {
51
- box-shadow: 0 0 0 0 rgba(23, 162, 184, 0);
52
- }
53
  }
54
 
55
- .modal-overlay {
56
- position: fixed;
57
- top: 0;
58
- left: 0;
59
- right: 0;
60
- bottom: 0;
61
- background: rgba(0, 0, 0, 0.7);
62
- display: flex;
63
- justify-content: center;
64
- align-items: center;
65
- z-index: 1000;
66
  }
67
 
68
- .modal-content {
69
- background: white;
70
- padding: 30px;
71
- border-radius: 10px;
72
- max-width: 500px;
73
- text-align: center;
74
  }
75
- """
76
 
77
- def show_link_notification():
78
- """버튼 클릭 시 링크 안내 메시지를 표시"""
79
- return gr.update(visible=True)
 
 
 
 
 
 
 
 
 
80
 
81
- def hide_notification():
82
- """알림 숨기기"""
83
- return gr.update(visible=False)
 
 
84
 
85
- # Gradio 앱 생성
86
- with gr.Blocks(css=css, title="Link Guide Examples") as demo:
87
- gr.Markdown("# 🔗 Gradio 링크 안내 예제")
88
-
89
- # 방법 1: Markdown을 사용한 링크
90
- gr.Markdown("""
91
- ## 방법 1: Markdown 링크
92
-
93
- 👉 **중요 공지**: [여기를 클릭하여 공식 웹사이트를 방문하세요](https://www.example.com)
94
-
95
- ⚡ **특별 이벤트**: [지금 바로 참여하기](https://www.example.com/event) - 선착순 100명!
96
- """)
97
-
98
- # 방법 2: HTML을 사용한 스타일링된 링크
99
- gr.HTML("""
100
- <div class="link-box">
101
- <h3>🎁 특별 혜택 안내</h3>
102
- <p>아래 링크를 클릭하여 특별 혜택을 받으세요!</p>
103
- <a href="https://www.example.com" target="_blank">✨ 특별 혜택 받기 ✨</a>
104
- </div>
105
- """)
106
-
107
- # 방법 3: 중요 알림 스타일
108
- gr.HTML("""
109
- <div class="important-link">
110
- <h3>⚠️ 필수 확인 사항</h3>
111
- <p>서비스 이용을 위해 반드시 ��래 링크를 확인해주세요:</p>
112
- <a href="https://www.example.com/terms" target="_blank" style="font-size: 1.2em; color: #007bff;">
113
- 📋 이용약관 확인하기
114
- </a>
115
- </div>
116
- """)
117
-
118
- # 방법 4: 버튼 클릭 시 링크 안내
119
- with gr.Row():
120
- with gr.Column():
121
- gr.Markdown("### 방법 4: 버튼 클릭으로 링크 안내")
122
- show_link_btn = gr.Button("🔗 중요 링크 보기", variant="primary")
123
-
124
- link_notification = gr.HTML(
125
- """
126
- <div class="popup-style">
127
- <h4>📢 중요 안내</h4>
128
- <p>아래 링크를 클릭하여 추가 정보를 확인하세요:</p>
129
- <ul>
130
- <li><a href="https://www.example.com/guide" target="_blank">📖 사용 가이드</a></li>
131
- <li><a href="https://www.example.com/faq" target="_blank">❓ 자주 묻는 질문</a></li>
132
- <li><a href="https://www.example.com/contact" target="_blank">📞 문의하기</a></li>
133
- </ul>
134
- </div>
135
- """,
136
- visible=False
137
- )
138
-
139
- close_btn = gr.Button("닫기", visible=False)
140
-
141
- # 방법 5: 자동 팝업 스타일 (페이지 로드 시 표시)
142
- gr.HTML("""
143
- <script>
144
- // 페이지 로드 후 3초 뒤에 알림 표시
145
- setTimeout(function() {
146
- // 실제로는 모달 창을 띄우거나 알림을 표시할 수 있습니다
147
- console.log("링크 클릭 안내: https://www.example.com");
148
- }, 3000);
149
- </script>
150
- """)
151
-
152
- # 방법 6: Info 메시지로 링크 안내
153
- with gr.Row():
154
- with gr.Column():
155
- gr.Markdown("### 방법 5: 작업 완료 후 링크 안내")
156
-
157
- def process_and_show_link(text):
158
- # 어떤 처리를 수행
159
- time.sleep(1) # 처리 시뮬레이션
160
-
161
- # 처리 완료 후 링크 안내
162
- result = f"처리 완료: {text}"
163
- link_msg = """
164
- <div style='background: #d4edda; border: 1px solid #c3e6cb;
165
- border-radius: 5px; padding: 15px; margin-top: 10px;'>
166
- <strong>✅ 작업이 완료되었습니다!</strong><br>
167
- 결과를 확인하려면 <a href='https://www.example.com/results'
168
- target='_blank' style='color: #155724; font-weight: bold;'>
169
- 여기를 클릭</a>하세요.
170
- </div>
171
- """
172
- return result, link_msg
173
-
174
- input_text = gr.Textbox(label="텍스트 입력", placeholder="처리할 텍스트를 입력하세요")
175
- process_btn = gr.Button("처리하기", variant="primary")
176
- output_text = gr.Textbox(label="처리 결과")
177
- link_message = gr.HTML()
178
-
179
- # 방법 7: 조건부 링크 표시
180
- with gr.Row():
181
- with gr.Column():
182
- gr.Markdown("### 방법 6: 조건부 링크 안내")
183
-
184
- def check_and_show_link(agree):
185
- if agree:
186
- return """
187
- <div style='background: #cfe2ff; border: 1px solid #6ea8fe;
188
- border-radius: 5px; padding: 15px;'>
189
- <strong>감사합니다!</strong><br>
190
- 이제 <a href='https://www.example.com/start' target='_blank'
191
- style='color: #084298; font-weight: bold;'>시작하기</a>
192
- 링크를 클릭하여 진행하세요.
193
- </div>
194
- """
195
- else:
196
- return """
197
- <div style='background: #f8d7da; border: 1px solid #f5c2c7;
198
- border-radius: 5px; padding: 15px;'>
199
- 동의하지 않으셨습니다. 서비스를 이용하려면 약관에 동의해주세요.
200
- </div>
201
- """
202
-
203
- agree_checkbox = gr.Checkbox(label="이용약관에 동의합니다")
204
- conditional_link = gr.HTML()
205
-
206
- # 이벤트 연결
207
- show_link_btn.click(
208
- lambda: (gr.update(visible=True), gr.update(visible=True)),
209
- outputs=[link_notification, close_btn]
210
- )
211
-
212
- close_btn.click(
213
- lambda: (gr.update(visible=False), gr.update(visible=False)),
214
- outputs=[link_notification, close_btn]
215
- )
216
-
217
- process_btn.click(
218
- process_and_show_link,
219
- inputs=[input_text],
220
- outputs=[output_text, link_message]
221
- )
222
-
223
- agree_checkbox.change(
224
- check_and_show_link,
225
- inputs=[agree_checkbox],
226
- outputs=[conditional_link]
227
- )
228
-
229
- # 추가 예제: 모달 스타일 팝업
230
  gr.HTML("""
231
- <div id="modal" style="display: none;" class="modal-overlay">
232
- <div class="modal-content">
233
- <h2>🎉 환영합니다!</h2>
234
- <p>더 많은 기능을 사용하려면 아래 링크를 방문하세요:</p>
235
- <a href="https://www.example.com/premium" target="_blank"
236
- style="display: inline-block; padding: 10px 20px;
237
- background: #007bff; color: white;
238
- text-decoration: none; border-radius: 5px;">
239
- 프리미엄 가입하기
240
  </a>
241
- <br><br>
242
- <button onclick="document.getElementById('modal').style.display='none'"
243
- style="padding: 5px 15px; cursor: pointer;">
244
- 닫기
245
- </button>
246
  </div>
247
  </div>
248
-
249
- <script>
250
- // 모달 표시 함수
251
- function showModal() {
252
- document.getElementById('modal').style.display = 'flex';
253
- }
254
-
255
- // 원하는 시점에 showModal() 호출
256
- // 예: setTimeout(showModal, 5000); // 5초 후 표시
257
- </script>
258
  """)
259
 
260
  demo.launch()
 
1
  import gradio as gr
 
2
 
3
+ # Simple CSS for styling
4
  css = """
5
+ .main-container {
6
+ max-width: 800px;
7
+ margin: 0 auto;
8
+ padding: 40px 20px;
9
  text-align: center;
10
+ }
11
+
12
+ .redirect-box {
13
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
14
+ border-radius: 20px;
15
+ padding: 60px 40px;
16
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
17
+ margin: 20px auto;
18
+ }
19
+
20
+ .redirect-box h1 {
21
  color: white;
22
+ font-size: 2.5em;
23
+ margin-bottom: 20px;
24
  }
25
 
26
+ .redirect-box p {
27
+ color: white;
28
+ font-size: 1.3em;
29
+ margin-bottom: 30px;
30
+ opacity: 0.95;
31
  }
32
 
33
+ .redirect-link {
34
+ display: inline-block;
35
+ background: white;
36
+ color: #667eea;
37
+ padding: 15px 40px;
38
+ border-radius: 30px;
39
+ text-decoration: none;
40
+ font-size: 1.2em;
41
+ font-weight: bold;
42
+ transition: all 0.3s ease;
43
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
44
  }
45
 
46
+ .redirect-link:hover {
47
+ transform: translateY(-3px);
48
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
 
 
 
49
  }
50
+ """
51
 
52
+ # Create Gradio app
53
+ with gr.Blocks(css=css, title="Redirect to FLUX VIDEO") as demo:
54
+ gr.HTML("""
55
+ <div class="main-container">
56
+ <div class="redirect-box">
57
+ <h1>🎨 Welcome to FLUX VIDEO Generation</h1>
58
+ <p>Please visit our latest version for the best experience</p>
59
+ <a href="https://huggingface.co/spaces/ginigen/Flux-VIDEO"
60
+ target="_blank"
61
+ class="redirect-link">
62
+ Go to FLUX VIDEO →
63
+ </a>
64
+ </div>
65
+ </div>
66
+ """)
67
+
68
+ demo.launch()import gradio as gr
69
+
70
+ # Simple CSS for styling
71
+ css = """
72
+ .main-container {
73
+ max-width: 800px;
74
+ margin: 0 auto;
75
+ padding: 40px 20px;
76
  text-align: center;
 
77
  }
78
 
79
+ .redirect-box {
80
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
81
+ border-radius: 20px;
82
+ padding: 60px 40px;
83
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
84
+ margin: 20px auto;
 
 
 
 
85
  }
86
 
87
+ .redirect-box h1 {
88
+ color: white;
89
+ font-size: 2.5em;
90
+ margin-bottom: 20px;
 
 
 
 
 
 
 
91
  }
92
 
93
+ .redirect-box p {
94
+ color: white;
95
+ font-size: 1.3em;
96
+ margin-bottom: 30px;
97
+ opacity: 0.95;
 
98
  }
 
99
 
100
+ .redirect-link {
101
+ display: inline-block;
102
+ background: white;
103
+ color: #667eea;
104
+ padding: 15px 40px;
105
+ border-radius: 30px;
106
+ text-decoration: none;
107
+ font-size: 1.2em;
108
+ font-weight: bold;
109
+ transition: all 0.3s ease;
110
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
111
+ }
112
 
113
+ .redirect-link:hover {
114
+ transform: translateY(-3px);
115
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
116
+ }
117
+ """
118
 
119
+ # Create Gradio app
120
+ with gr.Blocks(css=css, title="Redirect to FLUX VIDEO") as demo:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  gr.HTML("""
122
+ <div class="main-container">
123
+ <div class="redirect-box">
124
+ <h1>🎨 Welcome to FLUX VIDEO Generation</h1>
125
+ <p>Please visit our latest version for the best experience</p>
126
+ <a href="https://huggingface.co/spaces/ginigen/Flux-VIDEO"
127
+ target="_blank"
128
+ class="redirect-link">
129
+ Go to FLUX VIDEO →
 
130
  </a>
 
 
 
 
 
131
  </div>
132
  </div>
 
 
 
 
 
 
 
 
 
 
133
  """)
134
 
135
  demo.launch()