Buckets:
| # Bộ thích ứng cũ | |
| Các phương pháp này vẫn được hỗ trợ, đặc biệt là trên các checkpoint thuộc họ Stable Diffusion. Đối với các công việc mới, hãy ưu tiên sử dụng [LoRA](../tutorials/using_peft_for_inference), [IP-Adapter](./ip_adapter) và [ControlNet](./controlnet). | |
| ## T2I-Adapter | |
| [T2I-Adapter](https://huggingface.co/papers/2302.08453) là một adapter cho việc tạo ra có kiểm soát. Nó học một ánh xạ từ tín hiệu điều khiển (ví dụ, bản đồ độ sâu hoặc cạnh canny) vào các đặc trưng nội bộ của mô hình được huấn luyện trước, và thêm sự dẫn dắt đó trong quá trình tạo ra. Nó có vai trò tương tự như [ControlNet](./controlnet), nhưng là một adapter gắn thêm nhẹ hơn. | |
| Tải một adapter có điều khiển, sau đó tải pipeline bằng [from_pretrained()](/docs/diffusers/main/vi/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) và truyền nó với `adapter=`. | |
| ```py | |
| import torch | |
| from diffusers import T2IAdapter, StableDiffusionXLAdapterPipeline, AutoencoderKL | |
| t2i_adapter = T2IAdapter.from_pretrained( | |
| "TencentARC/t2i-adapter-canny-sdxl-1.0", | |
| dtype=torch.float16, | |
| ) | |
| ``` | |
| Tạo ảnh canny bằng [opencv-python](https://github.com/opencv/opencv-python). | |
| ```py | |
| import cv2 | |
| import numpy as np | |
| from PIL import Image | |
| from diffusers.utils import load_image | |
| original_image = load_image( | |
| "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/non-enhanced-prompt.png" | |
| ) | |
| image = np.array(original_image) | |
| low_threshold = 100 | |
| high_threshold = 200 | |
| image = cv2.Canny(image, low_threshold, high_threshold) | |
| image = image[:, :, None] | |
| image = np.concatenate([image, image, image], axis=2) | |
| canny_image = Image.fromarray(image) | |
| ``` | |
| Truyền ảnh canny vào pipeline để tạo ra một ảnh. | |
| ```py | |
| vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", dtype=torch.float16) | |
| pipeline = StableDiffusionXLAdapterPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", | |
| adapter=t2i_adapter, | |
| vae=vae, | |
| dtype=torch.float16, | |
| ).to("cuda") # or "mps", "xpu", "cpu" | |
| prompt = """ | |
| A photorealistic overhead image of a cat reclining sideways in a flamingo pool floatie holding a margarita. | |
| The cat is floating leisurely in the pool and completely relaxed and happy. | |
| """ | |
| pipeline( | |
| prompt, | |
| image=canny_image, | |
| num_inference_steps=100, | |
| guidance_scale=10, | |
| ).images[0] | |
| ``` | |
| ảnh gốc | |
| ảnh canny | |
| hình ảnh được tạo | |
| Xem thêm [đào tạo T2I-Adapter](../training/t2i_adapters). | |
| ### MultiAdapter | |
| Kết hợp nhiều điều khiển (ví dụ: canny và depth) bằng `MultiAdapter`. Truyền một danh sách các adapter vào `MultiAdapter`, sau đó truyền các hình ảnh điều khiển tương ứng dưới dạng danh sách vào pipeline. | |
| ```py | |
| import torch | |
| from diffusers.utils import load_image | |
| from diffusers import StableDiffusionXLAdapterPipeline, AutoencoderKL, MultiAdapter, T2IAdapter | |
| canny_image = load_image( | |
| "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/canny-cat.png" | |
| ) | |
| depth_image = load_image( | |
| "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/sdxl_depth_image.png" | |
| ) | |
| controls = [canny_image, depth_image] | |
| prompt = [""" | |
| a relaxed rabbit sitting on a striped towel next to a pool with a tropical drink nearby, | |
| bright sunny day, vacation scene, 35mm photograph, film, professional, 4k, highly detailed | |
| """] | |
| adapters = MultiAdapter( | |
| [ | |
| T2IAdapter.from_pretrained("TencentARC/t2i-adapter-canny-sdxl-1.0", dtype=torch.float16), | |
| T2IAdapter.from_pretrained("TencentARC/t2i-adapter-depth-midas-sdxl-1.0", dtype=torch.float16), | |
| ] | |
| ) | |
| ``` | |
| Truyền các adapter, prompt và ảnh điều khiển vào [StableDiffusionXLAdapterPipeline](/docs/diffusers/main/vi/api/pipelines/stable_diffusion/adapter#diffusers.StableDiffusionXLAdapterPipeline). Sử dụng tham số `adapter_conditioning_scale` để xác định mức độ ưu tiên gán cho từng điều khiển. | |
| ```py | |
| vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", dtype=torch.float16) | |
| pipeline = StableDiffusionXLAdapterPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", | |
| dtype=torch.float16, | |
| vae=vae, | |
| adapter=adapters, | |
| ).to("cuda") # or "mps", "xpu", "cpu" | |
| pipeline( | |
| prompt, | |
| image=controls, | |
| height=1024, | |
| width=1024, | |
| adapter_conditioning_scale=[0.7, 0.7] | |
| ).images[0] | |
| ``` | |
| ảnh canny | |
| bản đồ độ sâu | |
| hình ảnh được tạo | |
| ## Textual Inversion | |
| [Textual Inversion](https://huggingface.co/papers/2208.01618) cá nhân hóa một mô hình cho một khái niệm từ 3-5 hình ảnh bằng cách tinh chỉnh các word embedding gắn với một token duy nhất (`<sks>`). Sau đó, bạn có thể sử dụng token đó trong prompt của mình để tạo ra khái niệm (ví dụ: pixel art). | |
| Trọng số của Textual Inversion thường chỉ vài KB vì chúng chỉ là các word embedding. Hãy tải chúng sau [from_pretrained()](/docs/diffusers/main/vi/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) bằng [load_textual_inversion()](/docs/diffusers/main/vi/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion), và bao gồm token duy nhất trong prompt để kích hoạt quá trình sinh. | |
| ```py | |
| import torch | |
| from diffusers import AutoPipelineForText2Image | |
| pipeline = AutoPipelineForText2Image.from_pretrained( | |
| "stable-diffusion-v1-5/stable-diffusion-v1-5", | |
| dtype=torch.float16 | |
| ).to("cuda") # or "mps", "xpu", "cpu" | |
| ``` | |
| ```py | |
| pipeline.load_textual_inversion("sd-concepts-library/gta5-artwork") | |
| prompt = "A cute brown bear eating a slice of pizza, stunning color scheme, masterpiece, illustration, <gta5-artwork> style" | |
| pipeline(prompt).images[0] | |
| ``` | |
| Để huấn luyện embeddings, xem [Train textual inversion](../training/text_inversion). | |
| Textual Inversion cũng có thể được huấn luyện để học *negative embeddings* nhằm điều hướng quá trình tạo ảnh tránh xa các đặc điểm không mong muốn như "mờ" hoặc "xấu", giúp cải thiện chất lượng hình ảnh. | |
| EasyNegative là một embedding âm được sử dụng rộng rãi, chứa nhiều khái niệm âm đã được học. Hãy tải các embedding âm và chỉ định tên tệp cùng token liên quan đến các embedding âm. Truyền token này vào `negative_prompt` trong pipeline của bạn để kích hoạt nó. | |
| ```py | |
| import torch | |
| from diffusers import AutoPipelineForText2Image | |
| pipeline = AutoPipelineForText2Image.from_pretrained( | |
| "stable-diffusion-v1-5/stable-diffusion-v1-5", | |
| dtype=torch.float16 | |
| ).to("cuda") # or "mps", "xpu", "cpu" | |
| pipeline.load_textual_inversion( | |
| "EvilEngine/easynegative", | |
| weight_name="easynegative.safetensors", | |
| token="easynegative" | |
| ) | |
| prompt = "A cute brown bear eating a slice of pizza, stunning color scheme, masterpiece, illustration" | |
| negative_prompt = "easynegative" | |
| pipeline(prompt, negative_prompt=negative_prompt).images[0] | |
| ``` | |
Xet Storage Details
- Size:
- 7.37 kB
- Xet hash:
- 7c63a32e354b5cfd4839255239006477307fedc53ac78830417dd26f30858144
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.