🚀 無向量量化的自迴歸圖像生成
本模型(MAR)引入了一種新穎的自迴歸圖像生成方法,無需進行向量量化。該模型不依賴離散令牌,而是在連續值空間中使用擴散過程對每個令牌的概率分佈進行建模。通過採用擴散損失函數,模型在實現高效高質量圖像生成的同時,還能受益於自迴歸序列建模的速度優勢。這種方法簡化了生成過程,使其不僅適用於圖像合成,還能應用於更廣泛的連續值領域。它基於這篇論文。
🚀 快速開始
你可以通過Hugging Face的DiffusionPipeline
輕鬆加載該模型,並可選擇自定義各種參數,如模型類型、步數和類別標籤。
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained("jadechoghari/mar", trust_remote_code=True, custom_pipeline="jadechoghari/mar")
generated_image = pipeline(
model_type="mar_huge",
seed=42,
num_ar_steps=64,
class_labels=[207, 360, 388],
cfg_scale=4,
output_dir="./images",
cfg_schedule = "constant",
)
generated_image.show()
此代碼加載模型,配置其進行圖像生成,並將輸出保存到指定目錄。
我們以safetensors
格式提供了三個預訓練的MAR模型:
mar-base.safetensors
mar-large.safetensors
mar-huge.safetensors
這是論文無向量量化的自迴歸圖像生成在Hugging Face Diffusers/GPU上的實現。
官方的PyTorch實現發佈在這個倉庫。
@article{li2024autoregressive,
title={Autoregressive Image Generation without Vector Quantization},
author={Li, Tianhong and Tian, Yonglong and Li, He and Deng, Mingyang and He, Kaiming},
journal={arXiv preprint arXiv:2406.11838},
year={2024}
}
✨ 主要特性
- 引入新穎的自迴歸圖像生成方法,無需向量量化。
- 在連續值空間中使用擴散過程對每個令牌的概率分佈進行建模。
- 採用擴散損失函數,實現高效高質量圖像生成,同時受益於自迴歸序列建模的速度優勢。
- 簡化生成過程,適用於更廣泛的連續值領域。
💻 使用示例
基礎用法
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained("jadechoghari/mar", trust_remote_code=True, custom_pipeline="jadechoghari/mar")
generated_image = pipeline(
model_type="mar_huge",
seed=42,
num_ar_steps=64,
class_labels=[207, 360, 388],
cfg_scale=4,
output_dir="./images",
cfg_schedule = "constant",
)
generated_image.show()
高級用法
你可以根據實際需求進一步調整模型參數,以實現不同的圖像生成效果。例如,調整num_ar_steps
來改變自迴歸步數,或者調整cfg_scale
來改變分類器自由引導比例。
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained("jadechoghari/mar", trust_remote_code=True, custom_pipeline="jadechoghari/mar")
generated_image = pipeline(
model_type="mar_large",
seed=123,
num_ar_steps=128,
class_labels=[100, 200, 300],
cfg_scale=6,
output_dir="./new_images",
cfg_schedule = "linear",
)
generated_image.show()
📄 許可證
本項目採用MIT許可證。