t2i-adapter

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2025-05-04 12:53:04 -04:00
parent cf88812fc2
commit 7ebc3fe94c
4 changed files with 23 additions and 3 deletions
+1
View File
@@ -25,6 +25,7 @@
- Diffusers: slow initial startup
- Gated access: obfuscate and log token used for access
- SDXL refiner workflow
- Control: t2i-adapter workflow
## Highlights for 2025-04-28
+9 -1
View File
@@ -2,7 +2,7 @@ import os
import time
from typing import Union
import threading
from diffusers import StableDiffusionPipeline, StableDiffusionXLPipeline, T2IAdapter, MultiAdapter, StableDiffusionAdapterPipeline, StableDiffusionXLAdapterPipeline # pylint: disable=unused-import
from diffusers import pipelines, StableDiffusionPipeline, StableDiffusionXLPipeline, T2IAdapter, MultiAdapter, StableDiffusionAdapterPipeline, StableDiffusionXLAdapterPipeline # pylint: disable=unused-import
from installer import log
from modules import errors, sd_models
from modules.control.units import detect
@@ -142,6 +142,14 @@ class AdapterPipeline():
if isinstance(adapter, list) and len(adapter) > 1:
adapter = MultiAdapter(adapter)
adapter.to(device=pipeline.device, dtype=pipeline.dtype)
"""
pipelines.auto_pipeline.AUTO_TEXT2IMAGE_PIPELINES_MAPPING["sd-t2iadapter"] = StableDiffusionAdapterPipeline
pipelines.auto_pipeline.AUTO_IMAGE2IMAGE_PIPELINES_MAPPING["sd-t2iadapter"] = StableDiffusionAdapterPipeline
pipelines.auto_pipeline.AUTO_INPAINT_PIPELINES_MAPPING["sd-t2iadapter"] = StableDiffusionAdapterPipeline
pipelines.auto_pipeline.AUTO_TEXT2IMAGE_PIPELINES_MAPPING["sdxl-t2iadapter"] = StableDiffusionXLAdapterPipeline
pipelines.auto_pipeline.AUTO_IMAGE2IMAGE_PIPELINES_MAPPING["sdxl-t2iadapter"] = StableDiffusionXLAdapterPipeline
pipelines.auto_pipeline.AUTO_INPAINT_PIPELINES_MAPPING["sdxl-t2iadapter"] = StableDiffusionXLAdapterPipeline
"""
if pipeline.__class__.__name__ == 'StableDiffusionAdapterPipeline' or pipeline.__class__.__name__ == 'StableDiffusionXLAdapterPipeline':
pass # already initialized
if detect.is_sdxl(pipeline):
+4 -1
View File
@@ -35,7 +35,10 @@ def task_specific_kwargs(p, model):
}
elif (sd_models.get_diffusers_task(model) == sd_models.DiffusersTaskType.IMAGE_2_IMAGE or is_img2img_model) and len(getattr(p, 'init_images', [])) > 0:
if shared.sd_model_type == 'sdxl' and hasattr(model, 'register_to_config'):
model.register_to_config(requires_aesthetics_score = False)
if model.__class__.__name__ in ['StableDiffusionAdapterPipeline', 'StableDiffusionXLAdapterPipeline']:
pass
else:
model.register_to_config(requires_aesthetics_score = False)
if 'hires' not in p.ops:
p.ops.append('img2img')
if p.vae_type == 'Remote':
+9 -1
View File
@@ -44,6 +44,7 @@ pipe_switch_task_exclude = [
'PhotoMakerStableDiffusionXLPipeline',
'StableDiffusionXLInstantIDPipeline',
'LTXConditionPipeline',
'StableDiffusionXLAdapterPipeline',
]
@@ -655,7 +656,14 @@ class DiffusersTaskType(Enum):
def get_diffusers_task(pipe: diffusers.DiffusionPipeline) -> DiffusersTaskType:
cls = pipe.__class__.__name__
if cls in ["LEditsPPPipelineStableDiffusion", "LEditsPPPipelineStableDiffusionXL", "OmniGenPipeline"]: # special case
i2i_pipes = [
'LEditsPPPipelineStableDiffusion',
'LEditsPPPipelineStableDiffusionXL',
'OmniGenPipeline',
'StableDiffusionAdapterPipeline',
'StableDiffusionXLAdapterPipeline',
]
if cls in i2i_pipes: # special case
return DiffusersTaskType.IMAGE_2_IMAGE
elif 'ImageToVideo' in cls or cls in ['LTXConditionPipeline', 'StableVideoDiffusionPipeline']: # i2v pipelines
return DiffusersTaskType.IMAGE_2_IMAGE