Flash Sdxl
模型概述
閃電擴散是一種擴散蒸餾方法,由Jasper Research團隊提出,能夠在極少的步驟內生成高質量圖像。該模型基於SDXL基礎模型進行蒸餾,旨在實現快速圖像生成。
模型特點
極速生成
能夠在僅4步推理步驟內生成高質量圖像
高效蒸餾
通過擴散蒸餾方法大幅減少生成所需時間
兼容性強
可與現有LoRA和ControlNet模型結合使用
模型能力
文本到圖像生成
快速圖像合成
風格化圖像生成
使用案例
創意設計
概念藝術創作
快速生成創意概念藝術圖像
在4步內生成高質量概念藝術
產品原型設計
快速生成產品設計原型圖像
加速設計迭代過程
教育娛樂
故事插圖生成
根據文本描述快速生成故事插圖
浣熊在森林中讀書的示例圖像
🚀 ⚡ 閃電擴散:FlashSDXL ⚡
閃電擴散(Flash Diffusion)是一種擴散蒸餾方法,由Jasper Research的Clément Chadebec、Onur Tasar、Eyal Benaroche和Benjamin Aubin在論文 閃電擴散:加速任意條件擴散模型以實現少步圖像生成 中提出。該模型是 SDXL 模型的 1.08億參數LoRA 蒸餾版本,能夠在 4步內 生成圖像。此模型的主要目的是復現論文中的主要結果。
🚀 快速開始
本模型可直接使用 diffusers
庫中的 DiffusionPipeline
進行調用,能夠將所需的採樣步驟減少到 4步。
💻 使用示例
基礎用法
from diffusers import DiffusionPipeline, LCMScheduler
adapter_id = "jasperai/flash-sdxl"
pipe = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
use_safetensors=True,
)
pipe.scheduler = LCMScheduler.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
subfolder="scheduler",
timestep_spacing="trailing",
)
pipe.to("cuda")
# Fuse and load LoRA weights
pipe.load_lora_weights(adapter_id)
pipe.fuse_lora()
prompt = "A raccoon reading a book in a lush forest."
image = pipe(prompt, num_inference_steps=4, guidance_scale=0).images[0]
在ComfyUI中使用
要在本地使用ComfyUI運行FlashSDXL,你需要:
- 確保你的ComfyUI安裝是最新版本。
- 從 Hugging Face 下載檢查點文件。如果你不知道如何操作,可以前往 “文件和版本”,進入
comfy/
文件夾,點擊FlashSDXL.safetensors
旁邊的下載按鈕。 - 將新的檢查點文件移動到你本地的
comfyUI/models/loras/.
文件夾中。 - 將其作為LoRA應用於
sd_xl_base_1.0_0.9vae.safetensors
之上,本倉庫中提供了一個簡單的ComfyUIworkflow.json
文件(位於同一comfy/
文件夾中)。
⚠️ 重要提示
該模型是在cfg比例為1和LCM調度器的條件下進行訓練的,但參數可以進行一些調整。
與現有LoRA結合使用 🎨
FlashSDXL還可以與現有的LoRA結合使用,以 無需訓練 的方式實現少步圖像生成。它可以直接集成到Hugging Face的管道中。以下是一個示例:
from diffusers import DiffusionPipeline, LCMScheduler
import torch
user_lora_id = "TheLastBen/Papercut_SDXL"
trigger_word = "papercut"
flash_lora_id = "jasperai/flash-sdxl"
# Load Pipeline
pipe = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
variant="fp16"
)
# Set scheduler
pipe.scheduler = LCMScheduler.from_config(
pipe.scheduler.config
)
# Load LoRAs
pipe.load_lora_weights(flash_lora_id, adapter_name="flash")
pipe.load_lora_weights(user_lora_id, adapter_name="lora")
pipe.set_adapters(["flash", "lora"], adapter_weights=[1.0, 1.0])
pipe.to(device="cuda", dtype=torch.float16)
prompt = f"{trigger_word} a cute corgi"
image = pipe(
prompt,
num_inference_steps=4,
guidance_scale=0
).images[0]
💡 使用建議
你也可以使用提供的Comfy工作流來使用額外的LoRA,並在本地機器上進行測試。
與現有ControlNet結合使用 🎨
FlashSDXL還可以與現有的ControlNet結合使用,以 無需訓練 的方式實現少步圖像生成。它可以直接集成到Hugging Face的管道中。以下是一個示例:
import torch
import cv2
import numpy as np
from PIL import Image
from diffusers import StableDiffusionXLControlNetPipeline, ControlNetModel, LCMScheduler
from diffusers.utils import load_image, make_image_grid
flash_lora_id = "jasperai/flash-sdxl"
image = load_image(
"https://hf.co/datasets/huggingface/documentation-images/resolve/main/diffusers/input_image_vermeer.png"
).resize((1024, 1024))
image = np.array(image)
image = cv2.Canny(image, 100, 200)
image = image[:, :, None].repeat(3, 2)
canny_image = Image.fromarray(image)
# Load ControlNet
controlnet = ControlNetModel.from_pretrained(
"diffusers/controlnet-canny-sdxl-1.0",
torch_dtype=torch.float16,
variant="fp16"
)
pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
controlnet=controlnet,
torch_dtype=torch.float16,
safety_checker=None,
variant="fp16"
).to("cuda")
# Set scheduler
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
# Load LoRA
pipe.load_lora_weights(flash_lora_id)
pipe.fuse_lora()
image = pipe(
"picture of the mona lisa",
image=canny_image,
num_inference_steps=4,
guidance_scale=0,
controlnet_conditioning_scale=0.5,
cross_attention_kwargs={"scale": 1},
).images[0]
make_image_grid([canny_image, image], rows=1, cols=2)
🔧 技術細節
該模型在4塊H100 GPU上進行了20000次迭代訓練(約相當於總共176個GPU小時的訓練時間)。有關更多參數細節,請參考 論文。
COCO 2014驗證集上的指標(表3)
- FID-10k:21.62(4 NFE)
- CLIP得分:0.327(4 NFE)
📚 詳細文檔
引用
如果你發現這項工作有用或在你的研究中使用了它,請考慮引用我們:
@misc{chadebec2024flash,
title={Flash Diffusion: Accelerating Any Conditional Diffusion Model for Few Steps Image Generation},
author={Clement Chadebec and Onur Tasar and Eyal Benaroche and Benjamin Aubin},
year={2024},
eprint={2406.02347},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
📄 許可證
本模型遵循知識共享署名-非商業性使用(CC BY-NC)許可協議發佈。
Stable Diffusion V1 5
Openrail
穩定擴散是一種潛在的文本到圖像擴散模型,能夠根據任何文本輸入生成逼真的圖像。
圖像生成
S
stable-diffusion-v1-5
3.7M
518
Stable Diffusion Inpainting
Openrail
基於穩定擴散的文本到圖像生成模型,具備圖像修復能力
圖像生成
S
stable-diffusion-v1-5
3.3M
56
Stable Diffusion Xl Base 1.0
SDXL 1.0是基於擴散的文本生成圖像模型,採用專家集成的潛在擴散流程,支持高分辨率圖像生成
圖像生成
S
stabilityai
2.4M
6,545
Stable Diffusion V1 4
Openrail
穩定擴散是一種潛在文本到圖像擴散模型,能夠根據任意文本輸入生成逼真圖像。
圖像生成
S
CompVis
1.7M
6,778
Stable Diffusion Xl Refiner 1.0
SD-XL 1.0優化器模型是Stability AI開發的圖像生成模型,專為提升SDXL基礎模型生成的圖像質量而設計,特別擅長最終去噪步驟處理。
圖像生成
S
stabilityai
1.1M
1,882
Stable Diffusion 2 1
基於擴散的文本生成圖像模型,支持通過文本提示生成和修改圖像
圖像生成
S
stabilityai
948.75k
3,966
Stable Diffusion Xl 1.0 Inpainting 0.1
基於Stable Diffusion XL的潛在文本到圖像擴散模型,具備通過遮罩進行圖像修復的功能
圖像生成
S
diffusers
673.14k
334
Stable Diffusion 2 Base
基於擴散的文生圖模型,可根據文本提示生成高質量圖像
圖像生成
S
stabilityai
613.60k
349
Playground V2.5 1024px Aesthetic
其他
開源文生圖模型,能生成1024x1024分辨率及多種縱橫比的美學圖像,在美學質量上處於開源領域領先地位。
圖像生成
P
playgroundai
554.94k
723
Sd Turbo
SD-Turbo是一款高速文本生成圖像模型,僅需單次網絡推理即可根據文本提示生成逼真圖像。該模型作為研究原型發佈,旨在探索小型蒸餾文本生成圖像模型。
圖像生成
S
stabilityai
502.82k
380
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98