🚀 DFloat11压缩模型:black-forest-labs/FLUX.1-Canny-dev
本项目是使用自定义的 DFloat11 格式对 black-forest-labs/FLUX.1-Canny-dev
进行 无损压缩 后的版本。该压缩模型的输出与原始的 BFloat16 模型 逐位相同,同时可将 GPU 内存消耗降低约 30%。
🚀 快速开始
安装步骤
- 安装或升级 DFloat11 的 pip 包(会自动安装 CUDA 内核;需要支持 CUDA 的 GPU 并已安装 PyTorch):
pip install -U dfloat11[cuda12]
- 安装或升级 diffusers 和 controlnet_aux 包:
pip install -U diffusers controlnet_aux
使用示例
基础用法
要使用 DFloat11 模型,请运行以下 Python 示例代码:
import torch
from controlnet_aux import CannyDetector
from diffusers import FluxControlPipeline
from diffusers.utils import load_image
from dfloat11 import DFloat11Model
pipe = FluxControlPipeline.from_pretrained("black-forest-labs/FLUX.1-Canny-dev", torch_dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()
DFloat11Model.from_pretrained('DFloat11/FLUX.1-Canny-dev-DF11', device='cpu', bfloat16_model=pipe.transformer)
prompt = "A robot made of exotic candies and chocolates of different kinds. The background is filled with confetti and celebratory gifts."
control_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/robot.png")
processor = CannyDetector()
control_image = processor(control_image, low_threshold=50, high_threshold=200, detect_resolution=1024, image_resolution=1024)
image = pipe(
prompt=prompt,
control_image=control_image,
height=1024,
width=1024,
num_inference_steps=50,
guidance_scale=30.0,
).images[0]
image.save("output.png")
✨ 主要特性
工作原理
DFloat11 通过对 BFloat16 指数位进行 霍夫曼编码 来压缩模型权重,并结合 硬件感知的算法设计,实现了在 GPU 上直接进行高效的即时解压缩。在推理过程中,权重在 GPU 内存中保持压缩状态,并在 矩阵乘法之前进行解压缩,使用后 立即丢弃,以最小化内存占用。
主要优势
- 无需 CPU 解压缩或主机 - 设备数据传输:所有操作均在 GPU 上完成。
- DFloat11 比 CPU 卸载方法快得多,可在内存受限的环境中进行实际部署。
- 压缩是 完全无损的,保证模型的输出与原始模型 逐位相同。
📚 详细文档
更多信息
📦 模型信息
属性 |
详情 |
基础模型 |
black-forest-labs/FLUX.1-Canny-dev |
基础模型关系 |
量化 |
任务类型 |
文本到图像 |
标签 |
dfloat11、df11、无损压缩、70% 大小,100% 准确率 |