🚀 中國水墨畫模型
本項目基於Stable Diffusion XL模型,針對當代中國水墨畫進行微調,能夠生成具有中國水墨畫風格的圖像。通過使用LCM - LORA加速推理過程,讓圖像生成更加高效。
🚀 快速開始
安裝依賴
使用LCM - LORA加速推理過程,請確保所有必要的庫都是最新版本。
pip install --upgrade pip
pip install --upgrade diffusers transformers accelerate peft
pip install matplotlib
文本轉圖像
需要加載兩個適配器,LCM - LORA用於加速採樣,Chinese_Ink_LORA用於與基礎模型stabilityai/stable-diffusion-xl-base-1.0
一起進行風格渲染。接著,將調度器更改為LCMScheduler
,並將推理步驟減少到2到8步(實驗中使用了8步)。
import torch
from diffusers import DiffusionPipeline, LCMScheduler
import matplotlib.pyplot as plt
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0",
variant="fp16",
torch_dtype=torch.float16
).to("cuda")
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
pipe.load_lora_weights("latent-consistency/lcm-lora-sdxl", adapter_name="lcm")
pipe.load_lora_weights("ming-yang/sdxl_chinese_ink_lora", adapter_name="Chinese Ink")
pipe.set_adapters(["lcm", "Chinese Ink"], adapter_weights=[1.0, 0.8])
prompts = ["Chinese Ink, mona lisa picture, 8k", "mona lisa, 8k"]
generator = torch.manual_seed(1)
images = [pipe(prompt, num_inference_steps=8, guidance_scale=1, generator=generator).images[0] for prompt in prompts]
fig, axs = plt.subplots(1, 2, figsize=(40, 20))
axs[0].imshow(images[0])
axs[0].axis('off')
axs[1].imshow(images[1])
axs[1].axis('off')
plt.show()
✨ 主要特性
💻 使用示例
基礎用法
要觸發具有中國水墨畫風格的圖像生成,需要在提示詞中使用 Chinese Ink
。
import torch
from diffusers import DiffusionPipeline, LCMScheduler
import matplotlib.pyplot as plt
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0",
variant="fp16",
torch_dtype=torch.float16
).to("cuda")
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
pipe.load_lora_weights("latent-consistency/lcm-lora-sdxl", adapter_name="lcm")
pipe.load_lora_weights("ming-yang/sdxl_chinese_ink_lora", adapter_name="Chinese Ink")
pipe.set_adapters(["lcm", "Chinese Ink"], adapter_weights=[1.0, 0.8])
prompt = "Chinese Ink, mona lisa picture, 8k"
generator = torch.manual_seed(1)
image = pipe(prompt, num_inference_steps=8, guidance_scale=1, generator=generator).images[0]
plt.imshow(image)
plt.axis('off')
plt.show()
高級用法
可以通過調整負提示詞來優化生成的圖像,避免出現模糊、多餘肢體、解剖結構不良等問題。
import torch
from diffusers import DiffusionPipeline, LCMScheduler
import matplotlib.pyplot as plt
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0",
variant="fp16",
torch_dtype=torch.float16
).to("cuda")
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
pipe.load_lora_weights("latent-consistency/lcm-lora-sdxl", adapter_name="lcm")
pipe.load_lora_weights("ming-yang/sdxl_chinese_ink_lora", adapter_name="Chinese Ink")
pipe.set_adapters(["lcm", "Chinese Ink"], adapter_weights=[1.0, 0.8])
prompt = "Chinese Ink, a lovely rabbit"
negative_prompt = "blurry, extra limb, bad anatomy"
generator = torch.manual_seed(1)
image = pipe(prompt, negative_prompt=negative_prompt, num_inference_steps=8, guidance_scale=1, generator=generator).images[0]
plt.imshow(image)
plt.axis('off')
plt.show()
📦 模型下載
該模型的權重以Safetensors格式提供。
點擊下載(在“Files & versions”標籤中)。
📄 許可證
本項目採用creativeml - openrail - m
許可證。
🔍 示例展示
屬性 |
詳情 |
基礎模型 |
stabilityai/stable-diffusion-xl-base-1.0 |
觸發詞 |
Chinese Ink |
模型類型 |
文本到圖像生成模型 |
推理加速方式 |
LCM - LORA |
許可證 |
creativeml - openrail - m |
庫名稱 |
diffusers |