LCM-LoRA: A Universal Stable-Diffusion Acceleration Module
Paper
• 2311.05556 • Published
• 87
高速なアニメキャラクター生成用の LCM-LoRA アダプター
This repository provides a LoRA adapter fine-tuned from Stable Diffusion v1.5 using LCM (Latent Consistency Models).
This repository contains LoRA adapter weights only. The base model must be loaded separately.
| Metric | Value | Note |
|---|---|---|
| Speed | ~1.3 sec/image | 6 steps, T4 GPU, float16 |
| Speedup | 3.1x faster | vs v1.5 (20 steps) |
| Quality | Equivalent | Same aesthetic quality |
| Steps | 6 (LCM) | vs 20 standard |
This LCM-accelerated LoRA specializes in anime character generation:
This model is based on:
LCM-LoRA (Luo et al. 2311.05556)
RobustPromptGenerator (Gao et al. 2306.13103)
ControlNet Integration (Zhang et al. 2302.05543)
pip install diffusers transformers torch peft
from diffusers import StableDiffusionPipeline
from peft import PeftModel
import torch
# Load base model
base_model_id = "runwayml/stable-diffusion-v1-5"
adapter_id = "Shion1124/anime-character-lcm-lora"
pipe = StableDiffusionPipeline.from_pretrained(
base_model_id,
torch_dtype=torch.float16,
device_map="auto"
)
# Load LCM-LoRA adapter
pipe.unet = PeftModel.from_pretrained(
pipe.unet,
adapter_id,
adapter_name="lcm"
)
# Enable LCMScheduler for fast inference
from diffusers import LCMScheduler
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
# Generate
prompt = "anime girl, beautiful face, masterpiece, best quality"
image = pipe(
prompt=prompt,
num_inference_steps=6, # LCM: 4-8 steps recommended
guidance_scale=1.5, # LCM optimal value
height=512,
width=512
).images[0]
image.save("output.png")
# (See: https://github.com/Shion1124/anime-character-generator)
from prompt_optimizer_v2 import RobustPromptGenerator
optimizer = RobustPromptGenerator(use_google_api=True)
robust_prompt = optimizer.optimize_prompt(
request="happy anime girl with long hair",
mode="lcm_controlnet"
)
image = pipe(
prompt=robust_prompt['prompt_variants'][0],
num_inference_steps=6,
guidance_scale=1.5
).images[0]
from diffusers import (
StableDiffusionControlNetPipeline,
ControlNetModel, LCMScheduler
)
controlnet = ControlNetModel.from_pretrained(
"lllyasviel/sd-controlnet-lineart"
)
pipe = StableDiffusionControlNetPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
controlnet=controlnet,
torch_dtype=torch.float16,
device_map="auto"
)
# Load LCM + anime LoRA
pipe.load_lora_weights(adapter_id)
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
# Generate from sketch
image = pipe(
prompt="anime girl, masterpiece",
image=sketch_image,
num_inference_steps=6,
guidance_scale=1.5,
controlnet_conditioning_scale=0.8
).images[0]
Input Prompt (Text)
↓
[Layer 1: CLIP Text Encoder]
↓
[Layer 2: SD v1.5 UNet + Anime LoRA]
↓
[Layer 3: LCM-LoRA Scheduler]
↓
Output Image (512×512)
Total Time: ~1.3 seconds per image
If you use this model in research, please cite:
@article{luo2023lcm,
title={LCM-LoRA: A Universal Stable-Diffusion Acceleration Module},
author={Luo, Simian and Sun, Yiqin and Kang, Longxiang and ...},
journal={arXiv preprint arXiv:2311.05556},
year={2023}
}
@article{gao2024robustness,
title={Evaluating Robustness of Text-to-Image Models},
author={Gao, Yiming and Chen, ...},
journal={arXiv preprint arXiv:2306.13103},
year={2024}
}
set_adapters()If you encounter issues:
pip install diffusersnum_inference_steps (4-8)Created: 2026-03-05 13:44:11 Model Type: LoRA Adapter (Anime Character Generation) Framework: Diffusers + PEFT Base: Stable Diffusion v1.5
Base model
runwayml/stable-diffusion-v1-5