TRELLIS / app_en.py
innoai's picture
Update app_en.py
27b16f4 verified
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
TRELLIS Maintenance Notice Interface (Production)
Requirements: Python 3.8+ and Gradio 4.*
"""
import gradio as gr
def create_notice_interface():
"""Build the maintenance notice interface."""
# Custom CSS (clean blue theme, no animation)
custom_css = """
.notice-container {
background-color: #3B82F6;
padding: 1.5rem;
border-radius: 12px;
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
text-align: center;
margin: 2rem auto;
max-width: 600px;
}
.notice-title {
color: #fff;
font-size: 1.8rem;
font-weight: 700;
margin-bottom: 0.6rem;
}
.notice-subtitle {
color: #f0f0f0;
font-size: 1rem;
line-height: 1.6;
margin-bottom: 1.5rem;
}
.maintenance-icon {
font-size: 2.5rem;
margin-bottom: 0.5rem;
display: block;
}
.redirect-button, .redirect-button-blue {
background-color: #2563EB;
color: white;
padding: 10px 24px;
border: none;
border-radius: 6px;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
text-decoration: none;
display: inline-block;
margin: 0.5rem 0.4rem;
}
.redirect-button:hover, .redirect-button-blue:hover {
background-color: #1D4ED8;
}
.status-card {
background: #ffffff;
border-radius: 12px;
padding: 1.5rem;
margin: 2rem auto;
max-width: 700px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.status-text {
color: #333;
font-size: 1rem;
line-height: 1.6;
margin-bottom: 1rem;
}
.highlight-text {
color: #2563EB;
font-weight: bold;
}
.footer-text {
color: #888;
font-size: 0.85rem;
text-align: center;
margin-top: 2rem;
}
"""
with gr.Blocks(
css=custom_css,
theme=gr.themes.Soft(),
title="TRELLIS - Service Temporarily Unavailable",
) as demo:
# Top notice banner with alternative service buttons
gr.HTML(
"""
<div class="notice-container">
<div class="maintenance-icon">🔧</div>
<h1 class="notice-title">Service Under Maintenance</h1>
<p class="notice-subtitle">
We apologize for the inconvenience. The TRELLIS space is currently undergoing maintenance and upgrades.<br>
We are working hard to improve our service and will be back soon.
</p>
<a href="https://image-to-3d.wingetgui.com/" target="_blank"
class="redirect-button">
Hunyuan3D&nbsp;1.0&nbsp;(no&nbsp;user&nbsp;GPU&nbsp;required)
</a>
<a href="https://partpacker.wingetgui.com/" target="_blank"
class="redirect-button-blue">
Partpacker&nbsp;(Recommended)
</a>
<a href="https://hunyuan3d21.wingetgui.com/" target="_blank"
class="redirect-button-blue">
Hunyuan3D&nbsp;2.1
</a>
</div>
"""
)
# Feature card
gr.HTML(
"""
<div class="status-card">
<div class="status-text">
🚀 <span class="highlight-text">Good News!</span><br><br>
Fully functional alternative services are ready for you:
</div>
<div class="status-text">
✨ <strong>Key Features:</strong><br>
• 🖼️ Image-to-3D model conversion (Hunyuan3D 1.0 / 2.1)<br>
• ⚡ Fast processing, <strong>no user GPU required for Hunyuan3D&nbsp;1.0</strong><br>
• 🎨 High-quality output<br>
• 💻 100% browser-based, no installation needed
</div>
<div style="text-align: center;">
<a href="https://image-to-3d.wingetgui.com/" target="_blank"
class="redirect-button">
Hunyuan3D&nbsp;1.0&nbsp;(no&nbsp;user&nbsp;GPU&nbsp;required)
</a>
<a href="https://partpacker.wingetgui.com/" target="_blank"
class="redirect-button-blue">
Partpacker&nbsp;(Recommended)
</a>
<a href="https://hunyuan3d21.wingetgui.com/" target="_blank"
class="redirect-button-blue">
Hunyuan3D&nbsp;2.1
</a>
</div>
</div>
"""
)
# Footer
gr.HTML(
"""
<div class="footer-text">
Thank you for choosing TRELLIS &nbsp;|&nbsp; We are committed to providing you with the best 3D generation experience
</div>
"""
)
return demo
if __name__ == "__main__":
# Start the Gradio application
app = create_notice_interface()
app.launch(
server_name="0.0.0.0",
server_port=7860,
share=False,
show_error=True,
quiet=False,
)