Skip to content

Commit 932897a

Browse files
williambermandotieuthiendotieuthienpatrickvonplatendotieuthien
committed
t2i Adapter community member fix (#5090)
* convert tensorrt controlnet * Fix code quality * Fix code quality * Fix code quality * Fix code quality * Fix code quality * Fix code quality * Fix number controlnet condition * Add convert SD XL to onnx * Add convert SD XL to tensorrt * Add convert SD XL to tensorrt * Add examples in comments * Add examples in comments * Add test onnx controlnet * Add tensorrt test * Remove copied * Move file test to examples/community * Remove script * Remove script * Remove text * Fix import * Fix T2I MultiAdapter * fix tests --------- Co-authored-by: dotieuthien <[email protected]> Co-authored-by: dotieuthien <[email protected]> Co-authored-by: Patrick von Platen <[email protected]> Co-authored-by: dotieuthien <[email protected]>
1 parent c294043 commit 932897a

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

src/diffusers/models/adapter.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ def forward(self, xs: torch.Tensor, adapter_weights: Optional[List[float]] = Non
9090
features = adapter(x)
9191
if accume_state is None:
9292
accume_state = features
93+
for i in range(len(accume_state)):
94+
accume_state[i] = w * accume_state[i]
9395
else:
9496
for i in range(len(features)):
9597
accume_state[i] += w * features[i]

src/diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -727,9 +727,14 @@ def __call__(
727727
extra_step_kwargs = self.prepare_extra_step_kwargs(generator, eta)
728728

729729
# 7. Denoising loop
730-
adapter_state = self.adapter(adapter_input)
731-
for k, v in enumerate(adapter_state):
732-
adapter_state[k] = v * adapter_conditioning_scale
730+
if isinstance(self.adapter, MultiAdapter):
731+
adapter_state = self.adapter(adapter_input, adapter_conditioning_scale)
732+
for k, v in enumerate(adapter_state):
733+
adapter_state[k] = v
734+
else:
735+
adapter_state = self.adapter(adapter_input)
736+
for k, v in enumerate(adapter_state):
737+
adapter_state[k] = v * adapter_conditioning_scale
733738
if num_images_per_prompt > 1:
734739
for k, v in enumerate(adapter_state):
735740
adapter_state[k] = v.repeat(num_images_per_prompt, 1, 1, 1)

tests/pipelines/stable_diffusion/test_stable_diffusion_adapter.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,9 @@ def get_dummy_components(self):
216216
return super().get_dummy_components("multi_adapter")
217217

218218
def get_dummy_inputs(self, device, seed=0):
219-
return super().get_dummy_inputs(device, seed, num_images=2)
219+
inputs = super().get_dummy_inputs(device, seed, num_images=2)
220+
inputs["adapter_conditioning_scale"] = [0.5, 0.5]
221+
return inputs
220222

221223
def test_stable_diffusion_adapter_default_case(self):
222224
device = "cpu" # ensure determinism for the device-dependent torch.Generator

0 commit comments

Comments
 (0)