diffusers 0.30.2__py3-none-any.whl → 0.31.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- diffusers/__init__.py +38 -2
- diffusers/configuration_utils.py +12 -0
- diffusers/dependency_versions_table.py +1 -1
- diffusers/image_processor.py +257 -54
- diffusers/loaders/__init__.py +2 -0
- diffusers/loaders/ip_adapter.py +5 -1
- diffusers/loaders/lora_base.py +14 -7
- diffusers/loaders/lora_conversion_utils.py +332 -0
- diffusers/loaders/lora_pipeline.py +707 -41
- diffusers/loaders/peft.py +1 -0
- diffusers/loaders/single_file_utils.py +81 -4
- diffusers/loaders/textual_inversion.py +2 -0
- diffusers/loaders/unet.py +39 -8
- diffusers/models/__init__.py +4 -0
- diffusers/models/adapter.py +53 -53
- diffusers/models/attention.py +86 -10
- diffusers/models/attention_processor.py +169 -133
- diffusers/models/autoencoders/autoencoder_kl.py +71 -11
- diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +287 -85
- diffusers/models/controlnet_flux.py +536 -0
- diffusers/models/controlnet_sd3.py +7 -3
- diffusers/models/controlnet_sparsectrl.py +0 -1
- diffusers/models/embeddings.py +238 -61
- diffusers/models/embeddings_flax.py +23 -9
- diffusers/models/model_loading_utils.py +182 -14
- diffusers/models/modeling_utils.py +283 -46
- diffusers/models/normalization.py +79 -0
- diffusers/models/transformers/__init__.py +1 -0
- diffusers/models/transformers/auraflow_transformer_2d.py +1 -0
- diffusers/models/transformers/cogvideox_transformer_3d.py +58 -36
- diffusers/models/transformers/pixart_transformer_2d.py +9 -1
- diffusers/models/transformers/transformer_cogview3plus.py +386 -0
- diffusers/models/transformers/transformer_flux.py +161 -44
- diffusers/models/transformers/transformer_sd3.py +7 -1
- diffusers/models/unets/unet_2d_condition.py +8 -8
- diffusers/models/unets/unet_motion_model.py +41 -63
- diffusers/models/upsampling.py +6 -6
- diffusers/pipelines/__init__.py +40 -7
- diffusers/pipelines/animatediff/__init__.py +2 -0
- diffusers/pipelines/animatediff/pipeline_animatediff.py +45 -21
- diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +44 -20
- diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +18 -4
- diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +2 -0
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +104 -66
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +1341 -0
- diffusers/pipelines/aura_flow/pipeline_aura_flow.py +1 -1
- diffusers/pipelines/auto_pipeline.py +39 -8
- diffusers/pipelines/cogvideo/__init__.py +6 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox.py +32 -34
- diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +794 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +837 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +825 -0
- diffusers/pipelines/cogvideo/pipeline_output.py +20 -0
- diffusers/pipelines/cogview3/__init__.py +47 -0
- diffusers/pipelines/cogview3/pipeline_cogview3plus.py +674 -0
- diffusers/pipelines/cogview3/pipeline_output.py +21 -0
- diffusers/pipelines/controlnet/pipeline_controlnet.py +9 -1
- diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +8 -0
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +8 -0
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +36 -13
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +9 -1
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +8 -1
- diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +17 -3
- diffusers/pipelines/controlnet_sd3/__init__.py +4 -0
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +3 -1
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +1153 -0
- diffusers/pipelines/ddpm/pipeline_ddpm.py +2 -2
- diffusers/pipelines/deepfloyd_if/pipeline_output.py +6 -5
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +16 -4
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +1 -1
- diffusers/pipelines/flux/__init__.py +10 -0
- diffusers/pipelines/flux/pipeline_flux.py +53 -20
- diffusers/pipelines/flux/pipeline_flux_controlnet.py +984 -0
- diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +988 -0
- diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +1182 -0
- diffusers/pipelines/flux/pipeline_flux_img2img.py +850 -0
- diffusers/pipelines/flux/pipeline_flux_inpaint.py +1015 -0
- diffusers/pipelines/free_noise_utils.py +365 -5
- diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +15 -3
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +2 -2
- diffusers/pipelines/kolors/pipeline_kolors.py +1 -1
- diffusers/pipelines/kolors/pipeline_kolors_img2img.py +14 -11
- diffusers/pipelines/kolors/tokenizer.py +4 -0
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +1 -1
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +1 -1
- diffusers/pipelines/latte/pipeline_latte.py +2 -2
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +15 -3
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +15 -3
- diffusers/pipelines/lumina/pipeline_lumina.py +2 -2
- diffusers/pipelines/pag/__init__.py +6 -0
- diffusers/pipelines/pag/pag_utils.py +8 -2
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +1 -1
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +1544 -0
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +2 -2
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +1685 -0
- diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +17 -5
- diffusers/pipelines/pag/pipeline_pag_kolors.py +1 -1
- diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +1 -1
- diffusers/pipelines/pag/pipeline_pag_sd.py +18 -6
- diffusers/pipelines/pag/pipeline_pag_sd_3.py +12 -3
- diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +5 -1
- diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +1091 -0
- diffusers/pipelines/pag/pipeline_pag_sd_xl.py +18 -6
- diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +31 -16
- diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +42 -19
- diffusers/pipelines/pia/pipeline_pia.py +2 -0
- diffusers/pipelines/pipeline_loading_utils.py +225 -27
- diffusers/pipelines/pipeline_utils.py +123 -180
- diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +1 -1
- diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +1 -1
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +35 -3
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +2 -2
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +28 -6
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +241 -81
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +12 -3
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +20 -4
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +3 -3
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +1 -1
- diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +16 -4
- diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +16 -4
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -4
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +29 -14
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +29 -14
- diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +1 -1
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +1 -1
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +16 -4
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +15 -3
- diffusers/quantizers/__init__.py +16 -0
- diffusers/quantizers/auto.py +126 -0
- diffusers/quantizers/base.py +233 -0
- diffusers/quantizers/bitsandbytes/__init__.py +2 -0
- diffusers/quantizers/bitsandbytes/bnb_quantizer.py +558 -0
- diffusers/quantizers/bitsandbytes/utils.py +306 -0
- diffusers/quantizers/quantization_config.py +391 -0
- diffusers/schedulers/scheduling_ddim.py +4 -1
- diffusers/schedulers/scheduling_ddim_cogvideox.py +4 -1
- diffusers/schedulers/scheduling_ddim_parallel.py +4 -1
- diffusers/schedulers/scheduling_ddpm.py +4 -1
- diffusers/schedulers/scheduling_ddpm_parallel.py +4 -1
- diffusers/schedulers/scheduling_deis_multistep.py +78 -1
- diffusers/schedulers/scheduling_dpmsolver_multistep.py +82 -1
- diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +80 -1
- diffusers/schedulers/scheduling_dpmsolver_sde.py +125 -10
- diffusers/schedulers/scheduling_dpmsolver_singlestep.py +82 -1
- diffusers/schedulers/scheduling_edm_euler.py +8 -6
- diffusers/schedulers/scheduling_euler_ancestral_discrete.py +4 -1
- diffusers/schedulers/scheduling_euler_discrete.py +92 -7
- diffusers/schedulers/scheduling_flow_match_heun_discrete.py +4 -5
- diffusers/schedulers/scheduling_heun_discrete.py +114 -8
- diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +116 -11
- diffusers/schedulers/scheduling_k_dpm_2_discrete.py +110 -8
- diffusers/schedulers/scheduling_lms_discrete.py +76 -1
- diffusers/schedulers/scheduling_sasolver.py +78 -1
- diffusers/schedulers/scheduling_unclip.py +4 -1
- diffusers/schedulers/scheduling_unipc_multistep.py +78 -1
- diffusers/training_utils.py +48 -18
- diffusers/utils/__init__.py +2 -1
- diffusers/utils/dummy_pt_objects.py +60 -0
- diffusers/utils/dummy_torch_and_transformers_objects.py +195 -0
- diffusers/utils/hub_utils.py +16 -4
- diffusers/utils/import_utils.py +31 -8
- diffusers/utils/loading_utils.py +28 -4
- diffusers/utils/peft_utils.py +3 -3
- diffusers/utils/testing_utils.py +59 -0
- {diffusers-0.30.2.dist-info → diffusers-0.31.0.dist-info}/METADATA +7 -6
- {diffusers-0.30.2.dist-info → diffusers-0.31.0.dist-info}/RECORD +173 -147
- {diffusers-0.30.2.dist-info → diffusers-0.31.0.dist-info}/WHEEL +1 -1
- {diffusers-0.30.2.dist-info → diffusers-0.31.0.dist-info}/LICENSE +0 -0
- {diffusers-0.30.2.dist-info → diffusers-0.31.0.dist-info}/entry_points.txt +0 -0
- {diffusers-0.30.2.dist-info → diffusers-0.31.0.dist-info}/top_level.txt +0 -0
diffusers/utils/loading_utils.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import os
|
2
2
|
import tempfile
|
3
|
-
from typing import Callable, List, Optional, Union
|
3
|
+
from typing import Any, Callable, List, Optional, Tuple, Union
|
4
|
+
from urllib.parse import unquote, urlparse
|
4
5
|
|
5
6
|
import PIL.Image
|
6
7
|
import PIL.ImageOps
|
@@ -80,12 +81,22 @@ def load_video(
|
|
80
81
|
)
|
81
82
|
|
82
83
|
if is_url:
|
83
|
-
|
84
|
-
|
84
|
+
response = requests.get(video, stream=True)
|
85
|
+
if response.status_code != 200:
|
86
|
+
raise ValueError(f"Failed to download video. Status code: {response.status_code}")
|
87
|
+
|
88
|
+
parsed_url = urlparse(video)
|
89
|
+
file_name = os.path.basename(unquote(parsed_url.path))
|
90
|
+
|
91
|
+
suffix = os.path.splitext(file_name)[1] or ".mp4"
|
85
92
|
video_path = tempfile.NamedTemporaryFile(suffix=suffix, delete=False).name
|
93
|
+
|
86
94
|
was_tempfile_created = True
|
95
|
+
|
96
|
+
video_data = response.iter_content(chunk_size=8192)
|
87
97
|
with open(video_path, "wb") as f:
|
88
|
-
|
98
|
+
for chunk in video_data:
|
99
|
+
f.write(chunk)
|
89
100
|
|
90
101
|
video = video_path
|
91
102
|
|
@@ -124,3 +135,16 @@ def load_video(
|
|
124
135
|
pil_images = convert_method(pil_images)
|
125
136
|
|
126
137
|
return pil_images
|
138
|
+
|
139
|
+
|
140
|
+
# Taken from `transformers`.
|
141
|
+
def get_module_from_name(module, tensor_name: str) -> Tuple[Any, str]:
|
142
|
+
if "." in tensor_name:
|
143
|
+
splits = tensor_name.split(".")
|
144
|
+
for split in splits[:-1]:
|
145
|
+
new_module = getattr(module, split)
|
146
|
+
if new_module is None:
|
147
|
+
raise ValueError(f"{module} has no attribute {split}.")
|
148
|
+
module = new_module
|
149
|
+
tensor_name = splits[-1]
|
150
|
+
return module, tensor_name
|
diffusers/utils/peft_utils.py
CHANGED
@@ -134,14 +134,14 @@ def unscale_lora_layers(model, weight: Optional[float] = None):
|
|
134
134
|
"""
|
135
135
|
from peft.tuners.tuners_utils import BaseTunerLayer
|
136
136
|
|
137
|
-
if weight == 1.0:
|
137
|
+
if weight is None or weight == 1.0:
|
138
138
|
return
|
139
139
|
|
140
140
|
for module in model.modules():
|
141
141
|
if isinstance(module, BaseTunerLayer):
|
142
|
-
if weight
|
142
|
+
if weight != 0:
|
143
143
|
module.unscale_layer(weight)
|
144
|
-
|
144
|
+
else:
|
145
145
|
for adapter_name in module.active_adapters:
|
146
146
|
# if weight == 0 unscale should re-set the scale to the original value.
|
147
147
|
module.set_scale(adapter_name, 1.0)
|
diffusers/utils/testing_utils.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import functools
|
2
2
|
import importlib
|
3
|
+
import importlib.metadata
|
3
4
|
import inspect
|
4
5
|
import io
|
5
6
|
import logging
|
@@ -27,6 +28,8 @@ from packaging import version
|
|
27
28
|
|
28
29
|
from .import_utils import (
|
29
30
|
BACKENDS_MAPPING,
|
31
|
+
is_accelerate_available,
|
32
|
+
is_bitsandbytes_available,
|
30
33
|
is_compel_available,
|
31
34
|
is_flax_available,
|
32
35
|
is_note_seq_available,
|
@@ -252,6 +255,18 @@ def require_torch_2(test_case):
|
|
252
255
|
)
|
253
256
|
|
254
257
|
|
258
|
+
def require_torch_version_greater_equal(torch_version):
|
259
|
+
"""Decorator marking a test that requires torch with a specific version or greater."""
|
260
|
+
|
261
|
+
def decorator(test_case):
|
262
|
+
correct_torch_version = is_torch_available() and is_torch_version(">=", torch_version)
|
263
|
+
return unittest.skipUnless(
|
264
|
+
correct_torch_version, f"test requires torch with the version greater than or equal to {torch_version}"
|
265
|
+
)(test_case)
|
266
|
+
|
267
|
+
return decorator
|
268
|
+
|
269
|
+
|
255
270
|
def require_torch_gpu(test_case):
|
256
271
|
"""Decorator marking a test that requires CUDA and PyTorch."""
|
257
272
|
return unittest.skipUnless(is_torch_available() and torch_device == "cuda", "test requires PyTorch+CUDA")(
|
@@ -359,6 +374,20 @@ def require_timm(test_case):
|
|
359
374
|
return unittest.skipUnless(is_timm_available(), "test requires timm")(test_case)
|
360
375
|
|
361
376
|
|
377
|
+
def require_bitsandbytes(test_case):
|
378
|
+
"""
|
379
|
+
Decorator marking a test that requires bitsandbytes. These tests are skipped when bitsandbytes isn't installed.
|
380
|
+
"""
|
381
|
+
return unittest.skipUnless(is_bitsandbytes_available(), "test requires bitsandbytes")(test_case)
|
382
|
+
|
383
|
+
|
384
|
+
def require_accelerate(test_case):
|
385
|
+
"""
|
386
|
+
Decorator marking a test that requires accelerate. These tests are skipped when accelerate isn't installed.
|
387
|
+
"""
|
388
|
+
return unittest.skipUnless(is_accelerate_available(), "test requires accelerate")(test_case)
|
389
|
+
|
390
|
+
|
362
391
|
def require_peft_version_greater(peft_version):
|
363
392
|
"""
|
364
393
|
Decorator marking a test that requires PEFT backend with a specific version, this would require some specific
|
@@ -376,6 +405,24 @@ def require_peft_version_greater(peft_version):
|
|
376
405
|
return decorator
|
377
406
|
|
378
407
|
|
408
|
+
def require_transformers_version_greater(transformers_version):
|
409
|
+
"""
|
410
|
+
Decorator marking a test that requires transformers with a specific version, this would require some specific
|
411
|
+
versions of PEFT and transformers.
|
412
|
+
"""
|
413
|
+
|
414
|
+
def decorator(test_case):
|
415
|
+
correct_transformers_version = is_transformers_available() and version.parse(
|
416
|
+
version.parse(importlib.metadata.version("transformers")).base_version
|
417
|
+
) > version.parse(transformers_version)
|
418
|
+
return unittest.skipUnless(
|
419
|
+
correct_transformers_version,
|
420
|
+
f"test requires transformers with the version greater than {transformers_version}",
|
421
|
+
)(test_case)
|
422
|
+
|
423
|
+
return decorator
|
424
|
+
|
425
|
+
|
379
426
|
def require_accelerate_version_greater(accelerate_version):
|
380
427
|
def decorator(test_case):
|
381
428
|
correct_accelerate_version = is_peft_available() and version.parse(
|
@@ -388,6 +435,18 @@ def require_accelerate_version_greater(accelerate_version):
|
|
388
435
|
return decorator
|
389
436
|
|
390
437
|
|
438
|
+
def require_bitsandbytes_version_greater(bnb_version):
|
439
|
+
def decorator(test_case):
|
440
|
+
correct_bnb_version = is_bitsandbytes_available() and version.parse(
|
441
|
+
version.parse(importlib.metadata.version("bitsandbytes")).base_version
|
442
|
+
) > version.parse(bnb_version)
|
443
|
+
return unittest.skipUnless(
|
444
|
+
correct_bnb_version, f"Test requires bitsandbytes with the version greater than {bnb_version}."
|
445
|
+
)(test_case)
|
446
|
+
|
447
|
+
return decorator
|
448
|
+
|
449
|
+
|
391
450
|
def deprecate_after_peft_backend(test_case):
|
392
451
|
"""
|
393
452
|
Decorator marking a test that will be skipped after PEFT backend
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: diffusers
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.31.0
|
4
4
|
Summary: State-of-the-art diffusion in PyTorch and JAX.
|
5
5
|
Home-page: https://github.com/huggingface/diffusers
|
6
6
|
Author: The Hugging Face team (past and future) with the help of all our contributors (https://github.com/huggingface/diffusers/graphs/contributors)
|
@@ -55,7 +55,7 @@ Requires-Dist: accelerate>=0.31.0; extra == "dev"
|
|
55
55
|
Requires-Dist: protobuf<4,>=3.20.3; extra == "dev"
|
56
56
|
Requires-Dist: tensorboard; extra == "dev"
|
57
57
|
Requires-Dist: peft>=0.6.0; extra == "dev"
|
58
|
-
Requires-Dist: torch
|
58
|
+
Requires-Dist: torch<2.5.0,>=1.4; extra == "dev"
|
59
59
|
Requires-Dist: jax>=0.4.1; extra == "dev"
|
60
60
|
Requires-Dist: jaxlib>=0.4.1; extra == "dev"
|
61
61
|
Requires-Dist: flax>=0.4.1; extra == "dev"
|
@@ -89,7 +89,7 @@ Requires-Dist: scipy; extra == "test"
|
|
89
89
|
Requires-Dist: torchvision; extra == "test"
|
90
90
|
Requires-Dist: transformers>=4.41.2; extra == "test"
|
91
91
|
Provides-Extra: torch
|
92
|
-
Requires-Dist: torch
|
92
|
+
Requires-Dist: torch<2.5.0,>=1.4; extra == "torch"
|
93
93
|
Requires-Dist: accelerate>=0.31.0; extra == "torch"
|
94
94
|
Provides-Extra: training
|
95
95
|
Requires-Dist: accelerate>=0.31.0; extra == "training"
|
@@ -174,7 +174,7 @@ Generating outputs is super easy with 🤗 Diffusers. To generate an image from
|
|
174
174
|
from diffusers import DiffusionPipeline
|
175
175
|
import torch
|
176
176
|
|
177
|
-
pipeline = DiffusionPipeline.from_pretrained("
|
177
|
+
pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", torch_dtype=torch.float16)
|
178
178
|
pipeline.to("cuda")
|
179
179
|
pipeline("An image of a squirrel in Picasso style").images[0]
|
180
180
|
```
|
@@ -245,7 +245,7 @@ Also, say 👋 in our public Discord channel <a href="https://discord.gg/G7tWnz9
|
|
245
245
|
<tr style="border-top: 2px solid black">
|
246
246
|
<td>Text-to-Image</td>
|
247
247
|
<td><a href="https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/text2img">Stable Diffusion Text-to-Image</a></td>
|
248
|
-
<td><a href="https://huggingface.co/
|
248
|
+
<td><a href="https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5"> stable-diffusion-v1-5/stable-diffusion-v1-5 </a></td>
|
249
249
|
</tr>
|
250
250
|
<tr>
|
251
251
|
<td>Text-to-Image</td>
|
@@ -275,7 +275,7 @@ Also, say 👋 in our public Discord channel <a href="https://discord.gg/G7tWnz9
|
|
275
275
|
<tr>
|
276
276
|
<td>Text-guided Image-to-Image</td>
|
277
277
|
<td><a href="https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/img2img">Stable Diffusion Image-to-Image</a></td>
|
278
|
-
<td><a href="https://huggingface.co/
|
278
|
+
<td><a href="https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5"> stable-diffusion-v1-5/stable-diffusion-v1-5 </a></td>
|
279
279
|
</tr>
|
280
280
|
<tr style="border-top: 2px solid black">
|
281
281
|
<td>Text-guided Image Inpainting</td>
|
@@ -303,6 +303,7 @@ Also, say 👋 in our public Discord channel <a href="https://discord.gg/G7tWnz9
|
|
303
303
|
|
304
304
|
- https://github.com/microsoft/TaskMatrix
|
305
305
|
- https://github.com/invoke-ai/InvokeAI
|
306
|
+
- https://github.com/InstantID/InstantID
|
306
307
|
- https://github.com/apple/ml-stable-diffusion
|
307
308
|
- https://github.com/Sanster/lama-cleaner
|
308
309
|
- https://github.com/IDEA-Research/Grounded-Segment-Anything
|