Spaces:
Running
on
Zero
Running
on
Zero
import gradio as gr | |
import spaces | |
from chatbot import model_inference, EXAMPLES, chatbot | |
from voice_chat import respond | |
# Define custom CSS for better styling | |
custom_css = """ | |
.gradio-container { | |
font-family: 'Roboto', sans-serif; | |
} | |
.main-header { | |
text-align: center; | |
color: #4a4a4a; | |
margin-bottom: 2rem; | |
} | |
.tab-header { | |
font-size: 1.2rem; | |
font-weight: bold; | |
margin-bottom: 1rem; | |
} | |
.custom-chatbot { | |
border-radius: 10px; | |
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); | |
} | |
.custom-button { | |
background-color: #3498db; | |
color: white; | |
border: none; | |
padding: 10px 20px; | |
border-radius: 5px; | |
cursor: pointer; | |
transition: background-color 0.3s ease; | |
} | |
.custom-button:hover { | |
background-color: #2980b9; | |
} | |
""" | |
# Define Gradio theme | |
theme = gr.themes.Soft( | |
primary_hue="indigo", | |
secondary_hue="blue", | |
neutral_hue="slate", | |
font=[gr.themes.GoogleFont('Roboto'), "sans-serif"] | |
) | |
# Chat interface block | |
with gr.Blocks(css=custom_css) as chat: | |
gr.Markdown("### π¬ OpenGPT 4o Chat", elem_classes="tab-header") | |
gr.ChatInterface( | |
fn=model_inference, | |
chatbot=chatbot, | |
examples=EXAMPLES, | |
multimodal=True, | |
cache_examples=False, | |
autofocus=False, | |
concurrency_limit=10 | |
) | |
# Voice chat block | |
with gr.Blocks() as voice: | |
gr.Markdown("### π£οΈ Voice Chat", elem_classes="tab-header") | |
gr.Markdown("Try Voice Chat from the link below:") | |
gr.HTML('<a href="https://huggingface.co./spaces/KingNish/Voicee" target="_blank" class="custom-button">Open Voice Chat</a>') | |
with gr.Blocks() as image_gen_pro: | |
gr.HTML("<iframe src='https://kingnish-image-gen-pro.hf.space' width='100%' height='2000px' style='border-radius: 8px;'></iframe>") | |
with gr.Blocks() as flux_fast: | |
gr.HTML("<iframe src='https://prodia-flux-1-dev.hf.space' width='100%' height='2000px' style='border-radius: 8px;'></iframe>") | |
# Image engine block | |
with gr.Blocks() as image: | |
gr.Markdown("### πΌοΈ Image Engine", elem_classes="tab-header") | |
gr.TabbedInterface([flux_fast, image_gen_pro], ['High Quality Image Gen', 'Image gen and editing']) | |
# Video engine block | |
with gr.Blocks() as video: | |
gr.Markdown("### π₯ Video Engine", elem_classes="tab-header") | |
gr.HTML("<iframe src='https://kingnish-instant-video.hf.space' width='100%' height='3000px' style='border-radius: 8px;'></iframe>") | |
# Main application block | |
with gr.Blocks(theme=theme, title="OpenGPT 4o DEMO") as demo: | |
gr.Markdown("# π OpenGPT 4o", elem_classes="main-header") | |
gr.TabbedInterface( | |
[chat, voice, image, video], | |
['π¬ SuperChat', 'π£οΈ Voice Chat', 'πΌοΈ Image Engine', 'π₯ Video Engine'] | |
) | |
demo.queue(max_size=300) | |
demo.launch() |