Commit
Β·
d933b45
1
Parent(s):
e6da15b
Update
Browse files
app.py
CHANGED
|
@@ -14,6 +14,9 @@ import gc
|
|
| 14 |
from gradio import processing_utils
|
| 15 |
from typing import Optional
|
| 16 |
|
|
|
|
|
|
|
|
|
|
| 17 |
from huggingface_hub import hf_hub_download
|
| 18 |
hf_hub_download = partial(hf_hub_download, library_name="gligen_demo")
|
| 19 |
|
|
@@ -56,10 +59,13 @@ class Instance:
|
|
| 56 |
)
|
| 57 |
self.capacity = capacity
|
| 58 |
|
| 59 |
-
def
|
|
|
|
|
|
|
|
|
|
| 60 |
if model_type in self.loaded_model_list:
|
| 61 |
self.counter[model_type] += 1
|
| 62 |
-
|
| 63 |
return self.loaded_model_list[model_type]
|
| 64 |
|
| 65 |
if self.capacity == len(self.loaded_model_list):
|
|
@@ -71,7 +77,7 @@ class Instance:
|
|
| 71 |
|
| 72 |
self.counter[model_type] = 1
|
| 73 |
self.loaded_model_list[model_type] = self._get_model(model_type)
|
| 74 |
-
|
| 75 |
return self.loaded_model_list[model_type]
|
| 76 |
|
| 77 |
def _get_model(self, model_type):
|
|
@@ -218,16 +224,21 @@ def inference(task, language_instruction, grounding_instruction, inpainting_boxe
|
|
| 218 |
inpainting_boxes_nodrop = inpainting_boxes_nodrop,
|
| 219 |
)
|
| 220 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 221 |
with torch.autocast(device_type='cuda', dtype=torch.float16):
|
| 222 |
if task == 'Grounded Generation':
|
| 223 |
if style_image == None:
|
| 224 |
-
return grounded_generation_box(
|
| 225 |
else:
|
| 226 |
-
return grounded_generation_box(
|
| 227 |
elif task == 'Grounded Inpainting':
|
| 228 |
assert image is not None
|
| 229 |
instruction['input_image'] = image.convert("RGB")
|
| 230 |
-
return grounded_generation_box(
|
| 231 |
|
| 232 |
|
| 233 |
def draw_box(boxes=[], texts=[], img=None):
|
|
@@ -264,7 +275,6 @@ def auto_append_grounding(language_instruction, grounding_texts):
|
|
| 264 |
for grounding_text in grounding_texts:
|
| 265 |
if grounding_text not in language_instruction and grounding_text != 'auto':
|
| 266 |
language_instruction += "; " + grounding_text
|
| 267 |
-
print(language_instruction)
|
| 268 |
return language_instruction
|
| 269 |
|
| 270 |
|
|
|
|
| 14 |
from gradio import processing_utils
|
| 15 |
from typing import Optional
|
| 16 |
|
| 17 |
+
import warnings
|
| 18 |
+
warnings.filterwarnings("ignore")
|
| 19 |
+
|
| 20 |
from huggingface_hub import hf_hub_download
|
| 21 |
hf_hub_download = partial(hf_hub_download, library_name="gligen_demo")
|
| 22 |
|
|
|
|
| 59 |
)
|
| 60 |
self.capacity = capacity
|
| 61 |
|
| 62 |
+
def _log(self, batch_size, instruction, phrase_list):
|
| 63 |
+
print(dict(self.counter), f'samples: {batch_size}', f'prompt: {instruction}', f'phrases: {phrase_list}', sep=', ')
|
| 64 |
+
|
| 65 |
+
def get_model(self, model_type, batch_size, instruction, phrase_list):
|
| 66 |
if model_type in self.loaded_model_list:
|
| 67 |
self.counter[model_type] += 1
|
| 68 |
+
self._log(batch_size, instruction, phrase_list)
|
| 69 |
return self.loaded_model_list[model_type]
|
| 70 |
|
| 71 |
if self.capacity == len(self.loaded_model_list):
|
|
|
|
| 77 |
|
| 78 |
self.counter[model_type] = 1
|
| 79 |
self.loaded_model_list[model_type] = self._get_model(model_type)
|
| 80 |
+
self._log(batch_size, instruction, phrase_list)
|
| 81 |
return self.loaded_model_list[model_type]
|
| 82 |
|
| 83 |
def _get_model(self, model_type):
|
|
|
|
| 224 |
inpainting_boxes_nodrop = inpainting_boxes_nodrop,
|
| 225 |
)
|
| 226 |
|
| 227 |
+
get_model = partial(instance.get_model,
|
| 228 |
+
batch_size=batch_size,
|
| 229 |
+
instruction=language_instruction,
|
| 230 |
+
phrase_list=phrase_list)
|
| 231 |
+
|
| 232 |
with torch.autocast(device_type='cuda', dtype=torch.float16):
|
| 233 |
if task == 'Grounded Generation':
|
| 234 |
if style_image == None:
|
| 235 |
+
return grounded_generation_box(get_model('base'), instruction, *args, **kwargs)
|
| 236 |
else:
|
| 237 |
+
return grounded_generation_box(get_model('style'), instruction, *args, **kwargs)
|
| 238 |
elif task == 'Grounded Inpainting':
|
| 239 |
assert image is not None
|
| 240 |
instruction['input_image'] = image.convert("RGB")
|
| 241 |
+
return grounded_generation_box(get_model('inpaint'), instruction, *args, **kwargs)
|
| 242 |
|
| 243 |
|
| 244 |
def draw_box(boxes=[], texts=[], img=None):
|
|
|
|
| 275 |
for grounding_text in grounding_texts:
|
| 276 |
if grounding_text not in language_instruction and grounding_text != 'auto':
|
| 277 |
language_instruction += "; " + grounding_text
|
|
|
|
| 278 |
return language_instruction
|
| 279 |
|
| 280 |
|