[StableDiffusionPipeline] 支持Textual inversion,这种技术使得像 Stable Diffusion 这样的模型能够从几个示例图像中学习新概念。这样可以更好地控制生成的图像,并允许根据特定概念定制模型。
import torch from diffusers import StableDiffusionPipeline from diffusers.utils import make_image_grid pretrained_model_name_or_path = "runwayml/stable-diffusion-v1-5" repo_id_embeds = "sd-concepts-library/cat-toy" pipeline = StableDiffusionPipeline.from_pretrained( pretrained_model_name_or_path, torch_dtype=torch.float16, use_safetensors=True ).to("cuda") pipeline.load_textual_inversion(repo_id_embeds) prompt = "a grafitti in a favela wall with a <cat-toy> on it" num_samples_per_row = 2 num_rows = 2 all_images = [] for _ in range(num_rows): images = pipeline(prompt, num_images_per_prompt=num_samples_per_row, num_inference_steps=50, guidance_scale=7.5).images all_images.extend(images) grid = make_image_grid(all_images, num_rows, num_samples_per_row)
grid.show()