diff --git "a/util/stylesheets.py" "b/util/stylesheets.py"
new file mode 100755--- /dev/null
+++ "b/util/stylesheets.py"
@@ -0,0 +1,260 @@
+banner_image = """
+
+"""
+
+css = """
+.sun {
+ background-color: red;
+ opacity: 0.1;
+ position: fixed;
+ top: -1050px;
+ left: -300px;
+ width: 2200px;
+ height: 1200px;
+ border-radius: 50%;
+ animation-name: sunrise2;
+ animation-duration: 20s;
+ animation-timing-function: ease-in-out;
+ animation-delay: 1s;
+ animation-iteration-count: infinite;
+}
+
+.sun2 {
+ background-color: orange;
+ opacity: 0.1;
+ position: fixed;
+ top: -1050px;
+ left: -1200px;
+ width: 2200px;
+ height: 1200px;
+ border-radius: 50%;
+ animation-name: sunrise2;
+ animation-duration: 14s;
+ animation-timing-function: ease-in-out;
+ animation-delay: 2s;
+ animation-iteration-count: infinite;
+}
+
+.sun3 {
+ background-color: yellow;
+ opacity: 0.1;
+ position: fixed;
+ top: -1050px;
+ left: -600px;
+ width: 2200px;
+ height: 1200px;
+ border-radius: 50%;
+ animation-name: sunrise2;
+ animation-duration: 16s;
+ animation-timing-function: ease-in-out;
+ animation-delay: 0s;
+ animation-iteration-count: infinite;
+}
+
+@keyframes sunrise2 {
+ 0% {
+ transform: translate(0px, 0px);
+ }
+ 25% {
+ transform: translate(150px, 50px);
+ }
+ 50% {
+ transform: translate(300px, 10px);
+ }
+ 75% {
+ transform: translate(150px, 50px);
+ }
+ 100% {
+ transform: translate(0px, 0px);
+ }
+}
+
+.liquidGlass-wrapper {
+ position: relative;
+ display: flex;
+ font-weight: 600;
+ overflow: hidden;
+ color: black;
+ cursor: pointer;
+ box-shadow: 0 6px 6px rgba(0, 0, 0, 0.2), 0 0 20px rgba(0, 0, 0, 0.1);
+ transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 2.2);
+}
+
+.liquidGlass-effect {
+ position: absolute;
+ z-index: 0;
+ inset: 0;
+ backdrop-filter: blur(3px);
+ filter: url(#glass-distortion);
+ overflow: hidden;
+ isolation: isolate;
+ pointer-events: none
+}
+
+.liquidGlass-tint {
+ z-index: 1;
+ position: absolute;
+ inset: 0;
+ background: rgba(255, 255, 255, 0.25);
+ pointer-events: none
+}
+
+.liquidGlass-shine {
+ position: absolute;
+ inset: 0;
+ z-index: 2;
+ overflow: hidden;
+ box-shadow: inset 2px 2px 1px 0 rgba(255, 255, 255, 0.5),
+ inset -1px -1px 1px 1px rgba(255, 255, 255, 0.5);
+ pointer-events: none
+}
+
+.liquidGlass-text {
+ z-index: 3;
+ font-size: 2rem;
+ color: black;
+}
+
+body {
+ padding: 0;
+ margin: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-family: sans-serif;
+ font-weight: 300;
+}
+
+body gradio-app {
+ background-color: transparent !important;
+}
+
+.gradio-container {
+ background-color: transparent !important;
+}
+
+a {
+ text-decoration: none;
+}
+
+.title {
+ text-align: center;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0.5rem;
+}
+
+.title img {
+ max-height: 100px
+}
+
+.subtitle {
+ text-align: center;
+}
+
+.contain {
+ background: rgba(255, 255, 255, 0.3) !important;
+ border-radius: 1.5rem;
+ padding: 1rem;
+ box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 2.2);
+}
+
+.contain div {
+ background: transparent !important;
+}
+
+.contain .block {
+ background: transparent !important;
+ border-radius: 0.5rem !important;
+}
+
+.contain .overflow-dropdown {
+ background: #ffffff !important;
+}
+
+.gr-group {
+ border: 0 !important;
+}
+
+.button {
+ padding: 1.5rem 2.5rem;
+ border-radius: 3rem;
+}
+
+.button,
+.button > div {
+ border-radius: 3rem;
+}
+
+.button:hover {
+ padding: 1.8rem 2.8rem;
+}
+
+.button:hover > div {
+ border-radius: 4rem;
+}
+
+.button svg {
+ transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 2.2);
+}
+
+.button:hover svg {
+ transform: scale(0.95);
+}
+"""
+
+pre_html = """
+
+
+
+"""
+
+pre_js = """
+function injectLiquidGlass() {
+ let body = document.querySelector('body')
+ let bg1 = document.createElement('div')
+ bg1.classList.add('sun')
+ body.prepend(bg1)
+ let bg2 = document.createElement('div')
+ bg2.classList.add('sun2')
+ body.prepend(bg2)
+ let bg3 = document.createElement('div')
+ bg3.classList.add('sun3')
+ body.prepend(bg3)
+ let contain = document.querySelector('.contain')
+ contain.classList.add('liquidGlass-wrapper')
+ let liquidGlassWrapper = contain
+ let div_effect = document.createElement('div')
+ div_effect.classList.add('liquidGlass-effect')
+ liquidGlassWrapper.prepend(div_effect)
+ let div_tint = document.createElement('div')
+ div_tint.classList.add('liquidGlass-tint')
+ liquidGlassWrapper.prepend(div_tint)
+ let div_shine = document.createElement('div')
+ div_shine.classList.add('liquidGlass-shine')
+ liquidGlassWrapper.prepend(div_shine)
+ let svgFilter = document.createElement('svg')
+ svgFilter.innerHTML = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `
+ svgFilter.style.display = 'none'
+ document.body.appendChild(svgFilter)
+ document.querySelector('footer').innerText = "ToonComposer. Sample images used with permission. For research purposes only."
+}
+"""
\ No newline at end of file