mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 17:24:32 +02:00
@@ -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
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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':
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user