🚀 中国水墨画模型
本项目基于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 |