Spaces:
Build error
Build error
import gradio as gr | |
from gradio import themes | |
from pannellum import Pannellum | |
# ... (Your other functions like `text_to_pano` remain unchanged) | |
class RedTheme(themes.Theme): | |
def __init__(self): | |
super().__init__( | |
# Primary Color (Different Shades of Red) | |
primary_hue=themes.Color( | |
name="red", | |
light="#FF5733", # Light Red | |
dark="#C70039" # Dark Red | |
), | |
# Secondary Color (Gray for Contrast) | |
secondary_hue=themes.Color( | |
name="gray", | |
light="#808080", # Light Gray | |
dark="#333333" # Dark Gray | |
), | |
# ... customize other colors if needed (e.g., background, text) | |
) | |
with gr.Blocks(theme=RedTheme()) as demo: | |
# Header with Image | |
with gr.Row(): | |
gr.HTML(f""" | |
<div style="display: flex; align-items: center; justify-content: space-between;"> | |
<img src="https://ant.dpu.ac.th/wp-content/uploads/2024/04/dpulogo.png" width="150" height="50"> | |
<div> | |
<h1 align="center">SD-T2I-360PanoImage</h1> | |
<p align="center">AI FOR VR 360° Panorama Image Generator</p> | |
</div> | |
<div style="font-size:12px; text-align: right;"> | |
<a href="https://github.com/ArcherFMY/SD-T2I-360PanoImage/" target="_blank">[Github]</a> | |
<a href="https://huggingface.co/archerfmy0831/sd-t2i-360panoimage" target="_blank">[Models]</a> | |
</div> | |
</div> | |
""") | |
# Credits and Information | |
gr.Markdown( | |
""" | |
This study was conducted in the College of Creative Design and Entertainment Technology laboratory at Dhurakij Pundit University by Asst. Prof. Banyapon Poolsawas. The project builds upon the SD-T2I-360PanoImage repository (https://github.com/ArcherFMY/SD-T2I-360PanoImage/) for Text-to-360Panorama Sample and Build it with aframe VR. | |
""" | |
) | |
# Input Components | |
with gr.Row(): | |
with gr.Column(): | |
t2p_input = gr.Textbox(label="Enter your prompt", lines=3) | |
t2p_upscale = gr.Checkbox(label="Upscale (takes about 60 seconds 6144x3072 resolution)") | |
t2p_generate = gr.Button("Generate Panorama") | |
with gr.Column(variant="default"): | |
t2p_output = Pannellum(show_label=False, interactive=True) | |
# A-Frame Preview (HTML) | |
with gr.Row(): | |
t2p_image_output = gr.Image(label="Generated 360 Image") | |
t2p_iframe = gr.HTML(label="A-Frame Preview") | |
# Update Trigger (unchanged) | |
update_trigger = gr.State(value=0) | |
# Modified Generate Function | |
def generate_with_update(prompt, upscale, trigger): | |
output, image = text_to_pano(prompt, upscale) | |
# A-Frame Preview Generation | |
iframe_html = f""" | |
<html> | |
<head> | |
<script src="https://aframe.io/releases/1.6.0/aframe.min.js"></script> | |
</head> | |
<body> | |
<a-scene> | |
<a-sky src="{image}" rotation="0 -130 0"></a-sky> | |
<a-text font="kelsonsans" value="Create from AI" width="6" position="-2.5 0.25 -1.5" rotation="0 15 0"></a-text> | |
</a-scene> | |
</body> | |
</html> | |
""" | |
return output, image, iframe_html, trigger + 1 | |
t2p_generate.click( | |
generate_with_update, | |
inputs=[t2p_input, t2p_upscale, update_trigger], | |
outputs=[t2p_output, t2p_image_output, t2p_iframe, update_trigger] | |
) | |
demo.launch() | |