Skip to content

Commit 4c0f1c2

Browse files
committed
rename to StableDiffusionT2IAdapterPipeline
1 parent 47d3406 commit 4c0f1c2

File tree

6 files changed

+717
-27
lines changed

6 files changed

+717
-27
lines changed

scripts/t2i_adapter_tester.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,35 @@
11
import cv2
22
import argparse
3-
#import importlib
4-
import random
5-
import copy
63
import torch
74
import sys
85
import os
96
root_path = os.getcwd()
10-
print(root_path )
117
sys.path.append(f"{root_path}/src")
128
import diffusers
139
from PIL import Image
14-
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
10+
from diffusers import StableDiffusionT2IAdapterPipeline, DPMSolverMultistepScheduler
1511
from extra.t2iadapter.adapter import Adapter
1612
from basicsr.utils import img2tensor, tensor2img, scandir, get_time_str, get_root_logger, get_env_info
1713

1814
diffusers.utils.logging.disable_progress_bar()
1915

16+
2017
class DummySafetyChecker():
2118
def safety_checker(self, images, *args, **kwargs):
2219
return images, [False] * len(images)
2320

21+
2422
def loadmodel(pipeline_name, model_path, **kwargs):
2523
print("load pipeline")
2624
print("load model from:", pipeline_name, model_path)
2725

2826
kwargs["torch_dtype"] = torch.float16
29-
if pipeline_name == "StableDiffusionPipeline":
30-
kwargs["revision"] = "fp16"
27+
kwargs["revision"] = "fp16"
3128

3229
safechecker = DummySafetyChecker().safety_checker
3330
kwargs["safety_checker"] = safechecker
3431

35-
pipe = StableDiffusionPipeline.from_pretrained(model_path, **kwargs)
32+
pipe = StableDiffusionT2IAdapterPipeline.from_pretrained(model_path, **kwargs)
3633
return pipe.to("cuda")
3734

3835

@@ -43,10 +40,8 @@ def generation(pipe, prompt, seed, features_adapter=None):
4340
"num_inference_steps": 50,
4441
}
4542
settings["prompt"] = prompt
46-
g = torch.Generator(device="cuda")
47-
settings["generator"] = g.manual_seed(seed)
4843
settings["features_adapter"] = features_adapter
49-
settings["features_adapter_strength"] = 0.4
44+
settings["features_adapter_strength"] = 0.5
5045
images = pipe(**settings).images
5146
return images
5247

@@ -73,9 +68,7 @@ def main() -> int:
7368
features_adapter = model_ad(edge.to(device))
7469

7570
pipe = loadmodel(args.pipeline, args.model_path, **kwargs)
76-
77-
if args.pipeline == "StableDiffusionPipeline":
78-
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
71+
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
7972

8073
prompt = f"A car with flying wings"
8174
outputimg = generation(pipe, prompt, 52, features_adapter)

src/diffusers/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
StableDiffusionPipelineSafe,
126126
StableDiffusionPix2PixZeroPipeline,
127127
StableDiffusionSAGPipeline,
128+
StableDiffusionT2IAdapterPipeline,
128129
StableDiffusionUpscalePipeline,
129130
StableUnCLIPImg2ImgPipeline,
130131
StableUnCLIPPipeline,

src/diffusers/pipelines/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
StableDiffusionPipeline,
6060
StableDiffusionPix2PixZeroPipeline,
6161
StableDiffusionSAGPipeline,
62+
StableDiffusionT2IAdapterPipeline,
6263
StableDiffusionUpscalePipeline,
6364
StableUnCLIPImg2ImgPipeline,
6465
StableUnCLIPPipeline,

src/diffusers/pipelines/stable_diffusion/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class StableDiffusionPipelineOutput(BaseOutput):
5050
from .pipeline_stable_diffusion_inpaint_legacy import StableDiffusionInpaintPipelineLegacy
5151
from .pipeline_stable_diffusion_instruct_pix2pix import StableDiffusionInstructPix2PixPipeline
5252
from .pipeline_stable_diffusion_latent_upscale import StableDiffusionLatentUpscalePipeline
53+
from .pipeline_stable_diffusion_t2iadapter import StableDiffusionT2IAdapterPipeline
5354
from .pipeline_stable_diffusion_panorama import StableDiffusionPanoramaPipeline
5455
from .pipeline_stable_diffusion_sag import StableDiffusionSAGPipeline
5556
from .pipeline_stable_diffusion_upscale import StableDiffusionUpscalePipeline

src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -500,8 +500,6 @@ def __call__(
500500
eta: float = 0.0,
501501
generator: Optional[Union[torch.Generator, List[torch.Generator]]] = None,
502502
latents: Optional[torch.FloatTensor] = None,
503-
features_adapter: list = None,
504-
features_adapter_strength: float = 0.4,
505503
prompt_embeds: Optional[torch.FloatTensor] = None,
506504
negative_prompt_embeds: Optional[torch.FloatTensor] = None,
507505
output_type: Optional[str] = "pil",
@@ -640,23 +638,13 @@ def __call__(
640638
# expand the latents if we are doing classifier free guidance
641639
latent_model_input = torch.cat([latents] * 2) if do_classifier_free_guidance else latents
642640
latent_model_input = self.scheduler.scale_model_input(latent_model_input, t)
643-
# predict the noise residual
644-
645-
input_features_adapter = None
646-
#num_inference_steps
647-
if features_adapter_strength > 1:
648-
features_adapter_strength = 1
649-
elif features_adapter_strength < 0:
650-
features_adapter_strength = 0
651-
if i < int(num_inference_steps * features_adapter_strength):
652-
input_features_adapter = features_adapter
653641

642+
# predict the noise residual
654643
noise_pred = self.unet(
655644
latent_model_input,
656645
t,
657646
encoder_hidden_states=prompt_embeds,
658647
cross_attention_kwargs=cross_attention_kwargs,
659-
features_adapter=input_features_adapter
660648
).sample
661649

662650
# perform guidance

0 commit comments

Comments
 (0)