🚀 KOALA-Lightning-700M模型卡
KOALA-Lightning-700M是基於潛在擴散的文本到圖像生成模型,通過自注意力知識蒸餾方法訓練,有效減小模型大小,提升圖像生成效率,可在多種消費級GPU上運行。
🚀 快速開始
KOALA-Lightning-700M是一個基於潛在擴散的文本到圖像生成模型。以下是使用🤗Diffusers庫進行推理的代碼示例,去噪步驟為25:
import torch
from diffusers import StableDiffusionXLPipeline, EulerDiscreteScheduler
pipe = StableDiffusionXLPipeline.from_pretrained("etri-vilab/koala-lightning-700m", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
pipe.scheduler = EulerDiscreteScheduler.from_config(
pipe.scheduler.config, timestep_spacing="trailing"
)
prompt = "A portrait painting of a Golden Retriever like Leonard da Vinci"
negative = "worst quality, low quality, illustration, low resolution"
image = pipe(prompt=prompt, negative_prompt=negative, guidance_scale=3.5, num_inference_steps=10).images[0]
✨ 主要特性
- 高效的U-Net架構:KOALA模型採用簡化的U-Net架構,與前代模型Stable Diffusion XL (SDXL) 相比,模型大小分別最多可減少54%和69%。
- 基於自注意力的知識蒸餾:KOALA的核心技術聚焦於自注意力特徵的蒸餾,這對於保持圖像生成質量至關重要。
📦 安裝指南
文檔未提供具體安裝步驟,暫不展示。
💻 使用示例
基礎用法
import torch
from diffusers import StableDiffusionXLPipeline, EulerDiscreteScheduler
pipe = StableDiffusionXLPipeline.from_pretrained("etri-vilab/koala-lightning-700m", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
pipe.scheduler = EulerDiscreteScheduler.from_config(
pipe.scheduler.config, timestep_spacing="trailing"
)
prompt = "A portrait painting of a Golden Retriever like Leonard da Vinci"
negative = "worst quality, low quality, illustration, low resolution"
image = pipe(prompt=prompt, negative_prompt=negative, guidance_scale=3.5, num_inference_steps=10).images[0]
高級用法
文檔未提供高級用法代碼示例,暫不展示。
📚 詳細文檔
模型概述
模型架構
有兩種壓縮U-Net類型,KOALA-1B和KOALA-700M,通過減少殘差塊和Transformer塊來實現。
U-Net對比
U-Net |
SDM-v2.0 |
SDXL-Base-1.0 |
KOALA-1B |
KOALA-700M |
參數數量 |
865M |
2,567M |
1,161M |
782M |
檢查點文件大小 |
3.46GB |
10.3GB |
4.4GB |
3.0GB |
Transformer塊 |
[1, 1, 1, 1] |
[0, 2, 10] |
[0, 2, 6] |
[0, 2, 5] |
中間塊 |
✓ |
✓ |
✓ |
✗ |
延遲時間 |
1.131s |
3.133s |
1.604s |
1.257s |
- “Tx”表示Transformer塊,“CKPT”表示訓練後的檢查點文件。
- 我們在NVIDIA 4090 GPU (24GB) 上以FP16精度和25個去噪步驟測量延遲時間。
- SDM-v2.0使用768x768分辨率,而SDXL和KOALA模型使用1024x1024分辨率。
不同GPU上的延遲和內存使用對比
我們使用多種消費級GPU(NVIDIA 3060Ti (8GB)、2080Ti (11GB) 和4090 (24GB))測量了SDXL-Turbo和KOALA-Turbo模型在512x512分辨率下的推理時間,以及其他模型在1024x1024分辨率下的推理時間。“OOM”表示內存不足。請注意,SDXL模型無法在8GB VRAM的3060Ti上運行,而我們的KOALA模型可以在所有類型的GPU上運行。
模型用途
直接使用
該模型僅用於研究目的。可能的研究領域和任務包括:
- 藝術品生成,以及在設計和其他藝術過程中的應用。
- 在教育或創意工具中的應用。
- 生成模型的研究。
- 對有可能生成有害內容的模型進行安全部署。
- 探索和理解生成模型的侷限性和偏差。
超出範圍的使用
該模型並非用於生成真實或準確反映人物或事件的內容,因此使用該模型生成此類內容超出了其能力範圍。
侷限性和偏差
- 文本渲染:模型在圖像中渲染長而清晰的文本時面臨挑戰。
- 複雜提示:KOALA有時在處理涉及多個屬性的複雜提示時會遇到困難。
- 數據集依賴:當前的侷限性部分歸因於訓練數據集(LAION-aesthetics-V2 6+)的特性。
🔧 技術細節
- 採用基於自注意力的知識蒸餾方法進行訓練。
- 教師模型為SDXL-Lightning。
- 訓練數據集是LAION-POP數據集的一個子集。
- 訓練迭代次數為500K,批量大小為128。
- 使用4 x NVIDIA A100 (80GB) GPU進行訓練。
📄 許可證
文檔未提供許可證信息,暫不展示。
📚 引用
@misc{Lee@koala,
title={KOALA: Empirical Lessons Toward Memory-Efficient and Fast Diffusion Models for Text-to-Image Synthesis},
author={Youngwan Lee and Kwanyong Park and Yoorhim Cho and Yong-Ju Lee and Sung Ju Hwang},
year={2023},
eprint={2312.04005},
archivePrefix={arXiv},
primaryClass={cs.CV}
}