t2iadapter_canny_sd15v2

作者 TencentARC · 下载 833 · 点赞 1 · 更新 2023-11-03

art t2i-adapter controlnet stable-diffusion image-to-image

T2I Adapter - Canny

T2I Adapter is a network providing additional conditioning to stable diffusion. Each t2i checkpoint takes a different type of conditioning as input and is used with a specific base stable diffusion checkpoint.

This checkpoint provides conditioning on canny edge's for the stable diffusion 1.5 checkpoint.

Model Details

Checkpoints

Model Name Control Image Overview Control Image Example Generated Image Example
TencentARC/t2iadapter_color_sd14v1
Trained with spatial color palette
A image with 8x8 color palette. t2iadapter_canny_sd15v2 预览 1 t2iadapter_canny_sd15v2 预览 2
TencentARC/t2iadapter_canny_sd14v1
Trained with canny edge detection
A monochrome image with white edges on a black background. t2iadapter_canny_sd15v2 预览 3 t2iadapter_canny_sd15v2 预览 4
TencentARC/t2iadapter_sketch_sd14v1
Trained with PidiNet edge detection
A hand-drawn monochrome image with white outlines on a black background. t2iadapter_canny_sd15v2 预览 5 t2iadapter_canny_sd15v2 预览 6
TencentARC/t2iadapter_depth_sd14v1
Trained with Midas depth estimation
A grayscale image with black representing deep areas and white representing shallow areas. t2iadapter_canny_sd15v2 预览 7 t2iadapter_canny_sd15v2 预览 8
TencentARC/t2iadapter_openpose_sd14v1
Trained with OpenPose bone image
A OpenPose bone image. t2iadapter_canny_sd15v2 预览 9 t2iadapter_canny_sd15v2 预览 10
TencentARC/t2iadapter_keypose_sd14v1
Trained with mmpose skeleton image
A mmpose skeleton image. t2iadapter_canny_sd15v2 预览 11 t2iadapter_canny_sd15v2 预览 12
TencentARC/t2iadapter_seg_sd14v1
Trained with semantic segmentation
An custom segmentation protocol image. t2iadapter_canny_sd15v2 预览 13 t2iadapter_canny_sd15v2 预览 14
TencentARC/t2iadapter_canny_sd15v2
TencentARC/t2iadapter_depth_sd15v2
TencentARC/t2iadapter_sketch_sd15v2
TencentARC/t2iadapter_zoedepth_sd15v1

Example

  1. Dependencies
pip install diffusers transformers opencv-contrib-python
  1. Run code:
import cv2
from PIL import Image
import torch
import numpy as np
from diffusers import T2IAdapter, StableDiffusionAdapterPipeline

image = Image.open('./images/canny_input.png')
image = np.array(image)

low_threshold = 100
high_threshold = 200

image = cv2.Canny(image, low_threshold, high_threshold)
image = Image.fromarray(image)

image.save('./images/canny.png')

adapter = T2IAdapter.from_pretrained("TencentARC/t2iadapter_canny_sd15v2", torch_dtype=torch.float16)
pipe = StableDiffusionAdapterPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5",
    adapter=adapter,
    torch_dtype=torch.float16,
)
pipe.to("cuda")

generator = torch.manual_seed(0)

out_image = pipe(
    "a rabbit wearing glasses",
    image=image,
    generator=generator,
).images[0]

out_image.save('./images/canny_out.png')

canny_input canny canny_out