Spaces:
Runtime error
Runtime error
Fixed some stuff
Browse files
app.py
CHANGED
@@ -1,9 +1,3 @@
|
|
1 |
-
from diffusers import DDIMScheduler
|
2 |
-
from pipeline_stable_diffusion_xl_opt import StableDiffusionXLPipeline
|
3 |
-
from injection_utils import regiter_attention_editor_diffusers
|
4 |
-
from bounded_attention import BoundedAttention
|
5 |
-
from pytorch_lightning import seed_everything
|
6 |
-
|
7 |
import spaces
|
8 |
import gradio as gr
|
9 |
import torch
|
@@ -11,6 +5,12 @@ import nltk
|
|
11 |
import numpy as np
|
12 |
from PIL import Image, ImageDraw
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
from functools import partial
|
15 |
|
16 |
RESOLUTION = 256
|
@@ -113,14 +113,15 @@ def convert_token_indices(token_indices, nested=False):
|
|
113 |
def draw(sketchpad):
|
114 |
boxes = []
|
115 |
for i, layer in enumerate(sketchpad['layers']):
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
|
|
124 |
|
125 |
if (x2 - x1 < MIN_SIZE) or (y2 - y1 < MIN_SIZE):
|
126 |
raise gr.Error(f'Box in layer {i} is too small')
|
@@ -220,20 +221,20 @@ def main():
|
|
220 |
)
|
221 |
|
222 |
subject_token_indices = gr.Textbox(
|
223 |
-
label="The token indices of each subject (separate indices for the same subject with commas, and
|
224 |
)
|
225 |
|
226 |
filter_token_indices = gr.Textbox(
|
227 |
-
label="The token indices to filter, i.e. conjunctions,
|
228 |
)
|
229 |
|
230 |
num_tokens = gr.Textbox(
|
231 |
-
label="The number of tokens in the prompt (
|
232 |
)
|
233 |
|
234 |
with gr.Row():
|
235 |
sketchpad = gr.Sketchpad(label="Sketch Pad", width=RESOLUTION, height=RESOLUTION)
|
236 |
-
layout_image = gr.Image(type="pil", label="Bounding Boxes", interactive=False, width=RESOLUTION, height=RESOLUTION)
|
237 |
|
238 |
with gr.Row():
|
239 |
clear_button = gr.Button(value='Clear')
|
@@ -278,7 +279,7 @@ def main():
|
|
278 |
</div>
|
279 |
"""
|
280 |
gr.HTML(description)
|
281 |
-
batch_size = gr.Slider(minimum=1, maximum=5, step=1, value=1, label="Number of samples")
|
282 |
init_step_size = gr.Slider(minimum=0, maximum=50, step=0.5, value=25, label="Initial step size")
|
283 |
final_step_size = gr.Slider(minimum=0, maximum=20, step=0.5, value=10, label="Final step size")
|
284 |
num_clusters_per_subject = gr.Slider(minimum=0, maximum=5, step=0.5, value=3, label="Number of clusters per subject")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
import spaces
|
2 |
import gradio as gr
|
3 |
import torch
|
|
|
5 |
import numpy as np
|
6 |
from PIL import Image, ImageDraw
|
7 |
|
8 |
+
from diffusers import DDIMScheduler
|
9 |
+
from pipeline_stable_diffusion_xl_opt import StableDiffusionXLPipeline
|
10 |
+
from injection_utils import regiter_attention_editor_diffusers
|
11 |
+
from bounded_attention import BoundedAttention
|
12 |
+
from pytorch_lightning import seed_everything
|
13 |
+
|
14 |
from functools import partial
|
15 |
|
16 |
RESOLUTION = 256
|
|
|
113 |
def draw(sketchpad):
|
114 |
boxes = []
|
115 |
for i, layer in enumerate(sketchpad['layers']):
|
116 |
+
non_zeros = layer.nonzero()
|
117 |
+
x1 = x2 = y1 = y2 = 0
|
118 |
+
if len(non_zeros[0]) > 0:
|
119 |
+
x1x2 = non_zeros[1] / layer.shape[1]
|
120 |
+
y1y2 = non_zeros[0] / layer.shape[0]
|
121 |
+
x1 = x1x2.min()
|
122 |
+
x2 = x1x2.max()
|
123 |
+
y1 = y1y2.min()
|
124 |
+
y2 = y1y2.max()
|
125 |
|
126 |
if (x2 - x1 < MIN_SIZE) or (y2 - y1 < MIN_SIZE):
|
127 |
raise gr.Error(f'Box in layer {i} is too small')
|
|
|
221 |
)
|
222 |
|
223 |
subject_token_indices = gr.Textbox(
|
224 |
+
label="The token indices of each subject (separate indices for the same subject with commas, and for different subjects with semicolons)",
|
225 |
)
|
226 |
|
227 |
filter_token_indices = gr.Textbox(
|
228 |
+
label="Optional: The token indices to filter, i.e. conjunctions, numbers, postional relations, etc. (if left empty, this will be automatically inferred)",
|
229 |
)
|
230 |
|
231 |
num_tokens = gr.Textbox(
|
232 |
+
label="Optional: The number of tokens in the prompt (We use this to verify your input, as sometimes rare words are split into more than one token)",
|
233 |
)
|
234 |
|
235 |
with gr.Row():
|
236 |
sketchpad = gr.Sketchpad(label="Sketch Pad", width=RESOLUTION, height=RESOLUTION)
|
237 |
+
layout_image = gr.Image(type="pil", label="Bounding Boxes", interactive=False, width=RESOLUTION, height=RESOLUTION, scale=1)
|
238 |
|
239 |
with gr.Row():
|
240 |
clear_button = gr.Button(value='Clear')
|
|
|
279 |
</div>
|
280 |
"""
|
281 |
gr.HTML(description)
|
282 |
+
batch_size = gr.Slider(minimum=1, maximum=5, step=1, value=1, label="Number of samples (currently limited to one sample)")
|
283 |
init_step_size = gr.Slider(minimum=0, maximum=50, step=0.5, value=25, label="Initial step size")
|
284 |
final_step_size = gr.Slider(minimum=0, maximum=20, step=0.5, value=10, label="Final step size")
|
285 |
num_clusters_per_subject = gr.Slider(minimum=0, maximum=5, step=0.5, value=3, label="Number of clusters per subject")
|