File size: 3,449 Bytes
3304492
 
 
 
1d83712
 
 
3304492
 
1d83712
0aecace
3304492
 
 
6986933
1d83712
3304492
 
821a600
9bc4b67
3304492
1d83712
 
 
3304492
1d83712
 
 
 
3304492
 
 
1d83712
3304492
0aecace
3304492
 
 
1d83712
3304492
 
 
 
1d83712
 
 
 
 
 
3304492
1d83712
9bc4b67
 
1d83712
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3304492
 
1d83712
 
 
 
 
 
9bc4b67
1d83712
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3304492
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
---
license: apache-2.0
library_name: diffusers
---
test under this PR https://github.com/huggingface/diffusers/pull/9672

#### create differential diffusion pipeline

```python

from diffusers.modular_pipelines import ModularPipeline, ComponentsManager
import torch
from diffusers.utils import load_image

repo_id = "YiYiXu/modular-diffdiff-0704"

components = ComponentsManager()

diffdiff_pipeline = ModularPipeline.from_pretrained(repo_id, trust_remote_code=True, components_manager=components, collection="diffdiff")
diffdiff_pipeline.load_default_components(torch_dtype=torch.float16)
components.enable_auto_cpu_offload()
```

#### basic diff-diff

```python

image = load_image("https://huggingface.co/datasets/OzzyGT/testing-resources/resolve/main/differential/20240329211129_4024911930.png?download=true")
mask = load_image("https://huggingface.co/datasets/OzzyGT/testing-resources/resolve/main/differential/gradient_mask.png?download=true") 

prompt = "a green pear"
negative_prompt = "blurry"
generator = torch.Generator(device="cuda").manual_seed(42)

image = diffdiff_pipeline(
    prompt=prompt,
    negative_prompt=negative_prompt,
    num_inference_steps=25,
    generator=generator,
    diffdiff_map=mask,
    image=image,
    output="images"
)[0]
```

![image/png](https://cdn-uploads.huggingface.co/production/uploads/624ef9ba9d608e459387b34e/MRhDJdfaUYvUubgB6dSrD.png)


#### ip-adapter 

```python
diffdiff_pipeline.load_ip_adapter("h94/IP-Adapter", subfolder="sdxl_models", weight_name="ip-adapter_sdxl.bin")
diffdiff_pipeline.set_ip_adapter_scale(0.6)

ip_adapter_image = load_image("https://huggingface.co/datasets/YiYiXu/testing-images/resolve/main/diffdiff_orange.jpeg")
image = load_image("https://huggingface.co/datasets/OzzyGT/testing-resources/resolve/main/differential/20240329211129_4024911930.png?download=true")
mask = load_image("https://huggingface.co/datasets/OzzyGT/testing-resources/resolve/main/differential/gradient_mask.png?download=true") 

prompt = "a green pear"
negative_prompt = "blurry"
generator = torch.Generator(device="cuda").manual_seed(42)

image = diffdiff_pipeline(
    prompt=prompt,
    negative_prompt=negative_prompt,
    num_inference_steps=25,
    generator=generator,
    ip_adapter_image=ip_adapter_image,
    diffdiff_map=mask,
    image=image,
    output="images"
)[0]
```

![image/png](https://cdn-uploads.huggingface.co/production/uploads/624ef9ba9d608e459387b34e/Zlejg1EPpC6zFaKO_I0oM.png)


#### controlnet

```python
diffdiff_pipeline.unload_ip_adapter()

control_image = load_image("https://huggingface.co/datasets/YiYiXu/testing-images/resolve/main/diffdiff_tomato_canny.png")
image = load_image("https://huggingface.co/datasets/OzzyGT/testing-resources/resolve/main/differential/20240329211129_4024911930.png?download=true")
mask = load_image("https://huggingface.co/datasets/OzzyGT/testing-resources/resolve/main/differential/gradient_mask.png?download=true") 

prompt = "a green pear"
negative_prompt = "blurry"
generator = torch.Generator(device="cuda").manual_seed(42)

image = diffdiff_pipeline(
    prompt=prompt,
    negative_prompt=negative_prompt,
    num_inference_steps=25,
    generator=generator,
    control_image=control_image,
    controlnet_conditioning_scale=0.5,
    diffdiff_map=mask,
    image=image,
    output="images"
)[0]

```


![image/png](https://cdn-uploads.huggingface.co/production/uploads/624ef9ba9d608e459387b34e/lXKOHKwRSGZeQ7w6jJ6Vd.png)