ngoctuanai commited on
Commit
a9a5b5a
·
1 Parent(s): eef06b6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +89 -49
app.py CHANGED
@@ -77,76 +77,116 @@ def generate_txt2img(current_model, prompt, is_negative=False, image_style="None
77
  image = Image.open(io.BytesIO(image_bytes))
78
  return image
79
 
80
- import gradio as gr
81
 
82
  css = """
83
  /* General Container Styles */
84
  .gradio-container {
85
  font-family: 'IBM Plex Sans', sans-serif;
86
- max-width: 800px !important;
87
  margin: auto;
88
- padding-top: 2rem;
89
  }
90
 
91
- /* Button Styles */
92
- .gradio-button-primary {
93
- color: #fff;
94
- background-color: #2563eb;
95
- border-color: #1d4ed8;
 
96
  }
97
 
98
- .gradio-button-primary:hover {
99
- background-color: #1d4ed8;
100
- border-color: #1d4ed8;
 
 
 
 
 
 
101
  }
102
 
103
- /* Input Styles */
104
- .gradio-textbox {
105
- border-color: #a0aec0;
106
- padding: 9px 12px;
 
 
107
  }
108
 
109
- .gradio-textbox:focus {
110
- border-color: #2563eb;
111
- box-shadow: 0 0 0 2px rgba(37,99,235,.25);
 
 
 
112
  }
113
 
114
- /* Output Image Styles */
115
- .gradio-output img {
116
- max-width: 100%;
117
- height: auto;
118
- border-radius: 6px;
119
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
120
  }
121
- """
122
 
123
- def generate_txt2img(current_model, text_prompt, negative_prompt, image_style):
124
- # Your generation code here
125
- pass
 
 
 
 
 
 
 
126
 
127
- favicon = '<img src="" width="48px" style="display: inline">'
128
- title = f"""<h1><center>{favicon} AI Diffusion</center></h1>"""
129
- markdown_title = gr.Markdown(title)
130
 
131
- current_model = gr.inputs.Dropdown(label="Current Model", choices=list_models, value=list_models[1])
132
- text_prompt = gr.inputs.Textbox(label="Prompt", placeholder="Enter a prompt", lines=1)
133
- negative_prompt = gr.inputs.Textbox(label="Negative Prompt", value="text, blurry, fuzziness", lines=1)
134
- image_style = gr.inputs.Dropdown(label="Style", choices=["None style", "Cinematic", "Digital Art", "Portrait"], value="None style")
 
 
 
 
 
 
135
 
136
- generate_button = gr.outputs.Button(label="Generate", type="button")
137
- image_output = gr.outputs.Image(label="Output Image")
 
 
138
 
139
- with gr.Blocks(css=css) as demo:
140
- gr.Grid(col_width="auto", col_gap="10px").push(
141
- markdown_title,
142
- current_model,
143
- text_prompt,
144
- negative_prompt,
145
- image_style,
146
- generate_button,
147
- image_output
148
- )
149
 
150
- generate_button.click(generate_txt2img, inputs=[current_model, text_prompt, negative_prompt, image_style], outputs=image_output)
 
 
 
 
 
 
 
 
 
151
 
152
- demo.launch(show_api=False)
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  image = Image.open(io.BytesIO(image_bytes))
78
  return image
79
 
 
80
 
81
  css = """
82
  /* General Container Styles */
83
  .gradio-container {
84
  font-family: 'IBM Plex Sans', sans-serif;
85
+ max-width: 730px !important;
86
  margin: auto;
87
+ padding-top: 1.5rem;
88
  }
89
 
90
+ /*Button Styles */
91
+ .gr-button {
92
+ color: white;
93
+ border-color: black;
94
+ background: black;
95
+ white-space: nowrap;
96
  }
97
 
98
+ .gr-button:focus {
99
+ border-color: rgb(147 197 253 / var(--tw-border-opacity));
100
+ outline: none;
101
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
102
+ --tw-border-opacity: 1;
103
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
104
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px var(--tw-ring-offset-width)) var(--tw-ring-color);
105
+ --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));
106
+ --tw-ring-opacity: .5;
107
  }
108
 
109
+ /* Footer Styles */
110
+ .footer, .dark .footer {
111
+ margin-bottom: 45px;
112
+ margin-top: 35px;
113
+ text-align: center;
114
+ border-bottom: 1px solid #e5e5e5;
115
  }
116
 
117
+ .footer > p, .dark .footer > p {
118
+ font-size: .8rem;
119
+ display: inline-block;
120
+ padding: 0 10px;
121
+ transform: translateY(10px);
122
+ background: white;
123
  }
124
 
125
+ .dark .footer {
126
+ border-color: #303030;
127
+ }
128
+
129
+ .dark .footer > p {
130
+ background: #0b0f19;
131
  }
 
132
 
133
+ /* Share Button Styles */
134
+ #share-btn-container {
135
+ padding: 0 0.5rem !important;
136
+ background-color: #000000;
137
+ justify-content: center;
138
+ align-items: center;
139
+ border-radius: 9999px !important;
140
+ max-width: 13rem;
141
+ margin-left: auto;
142
+ }
143
 
144
+ #share-btn-container:hover {
145
+ background-color: #060606;
146
+ }
147
 
148
+ #share-btn {
149
+ all: initial;
150
+ color: #ffffff;
151
+ font-weight: 600;
152
+ cursor: pointer;
153
+ font-family: 'IBM Plex Sans', sans-serif;
154
+ margin-left: 0.5rem !important;
155
+ padding: 0.5rem !important;
156
+ right: 0;
157
+ }
158
 
159
+ /* Animation Styles */
160
+ .animate-spin {
161
+ animation: spin 1s linear infinite;
162
+ }
163
 
164
+ @keyframes spin {
165
+ from { transform: rotate(0deg); }
166
+ to { transform: rotate(360deg); }
167
+ }
 
 
 
 
 
 
168
 
169
+ /* Other Styles */
170
+ #gallery {
171
+ min-height: 22rem;
172
+ margin-bottom: 15px;
173
+ margin-left: auto;
174
+ margin-right: auto;
175
+ border-bottom-right-radius: .5rem !important;
176
+ border-bottom-left-radius: .5rem !important;
177
+ }
178
+ """
179
 
180
+ gr.Interface(
181
+ fn=generate_txt2img,
182
+ inputs=[
183
+ gr.inputs.Dropdown(label="Current Model", choices=list_models, default=list_models[1]),
184
+ gr.inputs.Textbox(label="Prompt", placeholder="a cute dog", lines=1),
185
+ gr.inputs.Textbox(label="Negative Prompt", placeholder="text, blurry, fuzziness", lines=1),
186
+ gr.inputs.Dropdown(label="Style", choices=["None style", "Cinematic", "Digital Art", "Portrait"], default="None style")
187
+ ],
188
+ outputs=gr.outputs.Image(type="pil", label="Output Image", id="gallery"),
189
+ title="AI Diffusion",
190
+ css=css,
191
+ theme="light"
192
+ ).launch(show_input=True)