Chỉnh sửa ảnh tùy biến
Tạo ảnh bằng AI đã rất ấn tượng, nhưng một số mô hình còn hỗ trợ chỉnh sửa ảnh tùy biến — một biến thể đa phương thức của tạo ảnh, nhận cả prompt văn bản và ảnh nguồn. Hãy thử biến đổi bức chân dung tự họa nổi tiếng của Van Gogh thành nhân vật hoạt hình Snoopy bằng StableDiffusionControlNetPipeline:

Lưu ý: Suy luận với các mô hình diffusion có thể mất nhiều thời gian, nên chúng tôi đã tải sẵn ảnh đã tạo cho bạn. Chạy các prompt khác nhau sẽ không tạo ảnh mới.
Phiên bản ảnh đã qua bộ lọc Canny đã được tạo sẵn (canny_image). Các lớp StableDiffusionControlNetPipeline và ControlNetModel đã được import từ thư viện diffusers. Danh sách bộ sinh (generator) đã được tạo.
Bài tập này là một phần của khóa học
Mô hình đa phương thức với Hugging Face
Hướng dẫn bài tập
- Tải
ControlNetModeltừ checkpointlllyasviel/sd-controlnet-canny. - Tải
StableDiffusionControlNetPipelinetừ checkpointrunwayml/stable-diffusion-v1-5, truyền vàocontrolnetđã cung cấp. - Chạy pipeline với
prompt,canny_image, cùngnegative_promptvàgeneratorđã cho.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
## NOTE: no imports are required for this exercise
# Load a ControlNetModel from the pretrained checkpoint
controlnet = ____("____", torch_dtype=torch.float16)
# Load a pretrained StableDiffusionControlNetPipeline using the ControlNetModel
pipe = ____(
"____", controlnet=____, torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
prompt = ["Snoopy, best quality, extremely detailed"]
# Run the pipeline
output = pipe(
____,
____,
negative_prompt=["monochrome, lowres, bad anatomy, worst quality, low quality"],
generator=____,
num_inference_steps=20,
)
plt.imshow(output.images[0])
plt.show()