T2I Adapter也是可组合的,允许您使用多个适配器对图像施加多个控制条件。例如,可以使用姿势贴图提供结构控制,使用深度贴图进行深度控制。这是由[MultiAdapter]类启用的。
让我们用姿势和深度适配器来调节文本到图像的模型。创建深度和姿势图像并将其放置在列表中。
# 以下代码为程序运行进行设置
import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
# 程序需要能够支持加载图片
from diffusers.utils import load_image
# 以下代码加载姿态图片和深度图片
pose_image = load_image(
"https://hf-mirror.com/datasets/diffusers/docs-images/resolve/main/t2i-adapter/keypose_sample_input.png"
)
depth_image = load_image(
"https://hf-mirror.com/datasets/diffusers/docs-images/resolve/main/t2i-adapter/depth_sample_input.png"
)
cond = [pose_image, depth_image]
prompt = ["Santa Claus walking into an office room with a beautiful city view"]
# 以下代码加载StableDiffusionAdapter自动管道,及MultiAdapter
import torch from diffusers import StableDiffusionAdapterPipeline, MultiAdapter, T2IAdapteradapters = MultiAdapter([T2IAdapter.from_pretrained("TencentARC/t2iadapter_keypose_sd14v1"),T2IAdapter.from_pretrained("TencentARC/t2iadapter_depth_sd14v1"),] ) adapters = adapters.to(torch.float16)
# 以下代码加载并处理提示词,基于MultiAdapter生成图片
pipeline = StableDiffusionAdapterPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
torch_dtype=torch.float16,
adapter=adapters,
).to("cuda")
image = pipeline(prompt, cond, adapter_conditioning_scale=[0.7, 0.7]).images[0]
image.show()
以下是姿态图片
以下是深度图片
以下是根据提示词,及MultiAdapter生成的图片