fix ipadapter face

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2024-11-01 08:39:03 -04:00
parent 38ccc3a7a5
commit 28efae6b2d
3 changed files with 13 additions and 9 deletions
+2 -3
View File
@@ -113,10 +113,9 @@ class APIProcess():
images = []
scores = []
with self.queue_lock:
yolo.load()
faces = yolo.predict(image)
faces = yolo.predict('face-yolo8n', image)
for face in faces:
images.append(encode_pil_to_base64(face.face))
images.append(encode_pil_to_base64(face.item))
scores.append(face.score)
shared.state.end(api=False)
return ResFace(images=images, scores=scores)
+5 -5
View File
@@ -36,6 +36,7 @@ ADAPTERS_SDXL = {
'Ostris Composition ViT-H SDXL': { 'name': 'ip_plus_composition_sdxl.safetensors', 'repo': 'ostris/ip-composition-adapter', 'subfolder': '' },
}
ADAPTERS = { **ADAPTERS_SD15, **ADAPTERS_SDXL }
ADAPTERS_ALL = { **ADAPTERS_SD15, **ADAPTERS_SDXL }
def get_adapters():
@@ -101,13 +102,12 @@ def crop_images(images, crops):
try:
for i in range(len(images)):
if crops[i]:
from shared import yolo # pylint: disable=no-name-in-module
yolo.load()
from modules.shared import yolo # pylint: disable=no-name-in-module
cropped = []
for image in images[i]:
faces = yolo.predict(image)
faces = yolo.predict('face-yolo8n', image)
if len(faces) > 0:
cropped.append(faces[0].face)
cropped.append(faces[0].item)
if len(cropped) == len(images[i]):
images[i] = cropped
else:
@@ -135,7 +135,7 @@ def apply(pipe, p: processing.StableDiffusionProcessing, adapter_names=[], adapt
if hasattr(p, 'ip_adapter_names'):
if isinstance(p.ip_adapter_names, str):
p.ip_adapter_names = [p.ip_adapter_names]
adapters = [ADAPTERS.get(adapter_name, None) for adapter_name in p.ip_adapter_names if adapter_name is not None and adapter_name.lower() != 'none']
adapters = [ADAPTERS_ALL.get(adapter_name, None) for adapter_name in p.ip_adapter_names if adapter_name is not None and adapter_name.lower() != 'none']
adapter_names = p.ip_adapter_names
else:
if isinstance(adapter_names, str):
+6 -1
View File
@@ -78,6 +78,10 @@ class YoloRestorer(Detailer):
) -> list[YoloResult]:
result = []
if isinstance(model, str):
model = self.models.get(model, None)
if model is None:
_, model = self.load(model)
if model is None:
return result
args = {
@@ -138,6 +142,7 @@ class YoloRestorer(Detailer):
def load(self, model_name: str = None):
from modules import modelloader
model = None
self.dependencies()
if model_name is None:
model_name = list(self.list)[0]
@@ -158,7 +163,7 @@ class YoloRestorer(Detailer):
return model_name, model
except Exception as e:
shared.log.error(f'Load: type=Detailer name="{model_name}" error="{e}"')
return None
return None, None
def restore(self, np_image, p: processing.StableDiffusionProcessing = None):
if hasattr(p, 'recursion'):