Pierre Chapuis
0e0c39b4b5
black
2023-09-13 17:02:47 +02:00
Pierre Chapuis
c421cfd56c
add a test for IP-Adapter + ControlNet
2023-09-13 14:24:53 +02:00
Pierre Chapuis
cf9efb57c8
remove useless torch.no_grad() contexts
2023-09-13 11:14:09 +02:00
Cédric Deltheil
eea340c6c4
add support for SDXL IP-Adapter
...
This only supports the latest SDXL IP-Adapter release (2023.9.8) which
builds upon the ViT-H/14 CLIP image encoder.
2023-09-12 18:00:39 +02:00
Cédric Deltheil
1b4dcebe06
make scheduler an actual abstract base class
2023-09-12 16:47:47 +02:00
Pierre Chapuis
7a32699cc6
add ensure_find and ensure_find_parent helpers
2023-09-12 14:19:10 +02:00
Pierre Chapuis
b69dbc4e5c
improve CrossAttentionAdapter test
2023-09-12 11:58:24 +02:00
Pierre Chapuis
dc2c3e0163
implement CrossAttentionAdapter using chain operations
2023-09-12 11:58:24 +02:00
Pierre Chapuis
3c056e2231
expose lookup_top_adapter
2023-09-12 11:58:24 +02:00
Cédric Deltheil
f4e9707297
sdxl test: refreshed reference image
...
The former one was generated using SDXL 0.9 vs 1.0. The new one has been
generated with diffusers:
import torch
from diffusers import StableDiffusionXLPipeline, DDIMScheduler
noise_scheduler = DDIMScheduler(
num_train_timesteps=1000,
beta_start=0.00085,
beta_end=0.012,
beta_schedule="scaled_linear",
clip_sample=False,
set_alpha_to_one=False,
steps_offset=1,
)
base_model_path = "/path/to/stabilityai/stable-diffusion-xl-base-1.0"
device = "cuda"
prompt = "a cute cat, detailed high-quality professional image"
negative_prompt = "lowres, bad anatomy, bad hands, cropped, worst quality"
seed = 2
pipe = StableDiffusionXLPipeline.from_pretrained(base_model_path, scheduler=noise_scheduler, torch_dtype=torch.float16, add_watermarker=False)
pipe = pipe.to(device)
generator = torch.Generator(device).manual_seed(seed)
images = pipe(prompt=prompt, negative_prompt=negative_prompt, num_inference_steps=30, generator=generator).images
2023-09-12 10:59:26 +02:00
Cédric Deltheil
0e38928c8d
sdxl test: add missing torch no_grad
2023-09-12 10:59:26 +02:00
Cédric Deltheil
32cba1afd8
test_sdxl_double_encoder: use proper weights
2023-09-11 21:49:24 +02:00
Pierre Chapuis
be54cfc016
fix weight loading for float16 LoRAs
2023-09-11 16:14:19 +02:00
Pierre Chapuis
dd0cca5855
use float32 reference for textual inversion (fixes tests on CPU)
2023-09-11 16:11:53 +02:00
Cédric Deltheil
e5425e2968
make IP-Adapter generic for SD1 and SDXL
2023-09-08 16:38:01 +02:00
limiteinductive
2786117469
implement SDXL + e2e test on random init
2023-09-07 18:34:42 +02:00
Pierre Chapuis
78e69c7da0
fix typo + skip test if weights are not available
2023-09-07 17:31:20 +02:00
Pierre Chapuis
d9a461e9b5
stop relying on SDXL 0.9 weights in test
2023-09-07 12:18:38 +02:00
Pierre Chapuis
d54a38ae07
do not hardcode a CUDA device in tests
2023-09-06 19:33:48 +02:00
Cédric Deltheil
c55917e293
add IP-Adapter support for SD 1.5
...
Official repo: https://github.com/tencent-ailab/IP-Adapter
2023-09-06 15:12:48 +02:00
Cédric Deltheil
d4dd45fd4d
use Module's load_from_safetensors
...
Instead of manual calls to load_state_dict
2023-09-06 15:06:51 +02:00
Pierre Chapuis
4388968ad3
Update tests/e2e/test_diffusion.py
...
Co-authored-by: Cédric Deltheil <355031+deltheil@users.noreply.github.com>
2023-09-06 11:49:55 +02:00
Pierre Chapuis
547a73e67a
clarify the "adapting when a LoRA is injected" issue in tests
2023-09-06 11:49:55 +02:00
Pierre Chapuis
864937a776
support injecting several LoRAs simultaneously
2023-09-06 11:49:55 +02:00
limiteinductive
88efa117bf
fix model comparison with custom layers
2023-09-05 12:34:38 +02:00
Cédric Deltheil
b933fabf31
unet: get rid of clip_embedding attribute for SD1
...
It is implicitly defined by the underlying cross-attention layer. This
also makes it consistent with SDXL.
2023-09-01 19:23:33 +02:00
Pierre Chapuis
e91e31ebd2
check no two controlnets have the same name
2023-09-01 17:47:29 +02:00
Pierre Chapuis
d389d11a06
make basic adapters a part of Fluxion
2023-09-01 17:29:48 +02:00
Pierre Chapuis
31785f2059
scope range adapter in latent diffusion
2023-09-01 17:29:48 +02:00
Pierre Chapuis
73813310d0
rename SelfAttentionInjection to ReferenceOnlyControl and vice-versa
2023-09-01 17:29:48 +02:00
Doryan Kaced
9f6733de8e
Add concepts learning via textual inversion
2023-08-31 16:07:53 +02:00
Pierre Chapuis
0f476ea18b
make high-level adapters Adapters
...
This generalizes the Adapter abstraction to higher-level
constructs such as high-level LoRA (targeting e.g. the
SD UNet), ControlNet and Reference-Only Control.
Some adapters now work by adapting child models with
"sub-adapters" that they inject / eject when needed.
2023-08-31 10:57:18 +02:00
Cédric Deltheil
7dc2e93cff
tests: add test for clip image encoder
...
This covers a CLIPImageEncoderH model (Stable Diffusion v2-1-unclip)
specifically
2023-08-30 21:50:01 +02:00
Pierre Chapuis
32c1cfdbb1
add black to CI
2023-08-30 14:50:03 +02:00
Pierre Chapuis
18c84c7b72
shorter import paths
2023-08-29 16:57:40 +02:00
limiteinductive
7ca6bd0ccd
implement the ConvertModule class and refactor conversion scripts
2023-08-28 14:39:14 +02:00
Doryan Kaced
3680f9d196
Add support for learned concepts e.g. via textual inversion
2023-08-28 10:37:39 +02:00
limiteinductive
92a21bc21e
refactor latent_diffusion module
2023-08-25 12:30:20 +02:00
Pierre Chapuis
d311f779c0
test all chain manipulation methods
2023-08-23 17:49:59 +02:00
Pierre Chapuis
beacfe816b
reordering (match chain.py order)
2023-08-23 17:49:59 +02:00
Pierre Chapuis
e05c410a86
split test in two
2023-08-23 17:49:59 +02:00
Pierre Chapuis
337d2aea58
cosmetics
2023-08-23 17:49:59 +02:00
Pierre Chapuis
1065dfe10b
add empty __init__.py files to make pytest happy
...
(otherwise it wants unique file basenames)
2023-08-23 17:49:59 +02:00
Pierre Chapuis
a0c70ba7aa
add a test for StopIteration in walk
2023-08-23 12:15:56 +02:00
Pierre Chapuis
dec0d64432
make walk and layers not recurse by default
...
There is now a parameter to get the old (recursive) behavior.
2023-08-23 12:15:56 +02:00
Pierre Chapuis
2ad26a06b0
fix LoRAs on Self target
2023-08-23 12:13:01 +02:00
limiteinductive
3565a4127f
implement DoubleTextEncoder for SDXL
2023-08-23 11:05:38 +02:00
Benjamin Trom
8c7298f8cc
fix chain slicing with structural copy
2023-08-22 11:44:11 +02:00
limiteinductive
e7c1db50e0
turn CLIPTokenizer into a fl.Module
2023-08-22 00:09:01 +02:00
limiteinductive
108fa8f26a
add converter layer + tests
2023-08-21 12:09:58 +02:00