การซื้อคืนนี้ประกอบด้วยคำจำกัดความของโมเดล PyTorch น้ำหนักที่ได้รับการฝึกอบรมล่วงหน้า และโค้ดการอนุมาน/การสุ่มตัวอย่างสำหรับรายงานของเราเกี่ยวกับการฝึกอบรม Diffusion Transformer จากระดับอ่อนถึงสูงสำหรับการสร้างข้อความเป็นภาพ 4K คุณสามารถดูการแสดงภาพเพิ่มเติมได้ในหน้าโครงการของเรา
PixArt-Σ: การฝึก Diffusion Transformer จากน้อยไปมากสำหรับการสร้างข้อความเป็นภาพ 4K
จุนซ่ง เฉิน*, ฉงเจี้ยนเกอ*, เอนเซ Xie*†, เยว่หวู่*, เล่เว่ย เหยา, เซียวเจ๋อเหริน, จงเตาหวาง, ปิงหลัว, หูชวน หลู, เจิ้งกั๋ว หลี่
Ark Lab ของ Huawei Noah, DLUT, HKU, HKUST
จากการเรียนรู้จากโปรเจ็กต์ PixArt-α ก่อนหน้านี้ เราจะพยายามทำให้ repo นี้เรียบง่ายที่สุดเท่าที่จะเป็นไปได้ เพื่อให้ทุกคนในชุมชน PixArt สามารถใช้งานได้
? diffusers
ใช้แพทช์เพื่อประสบการณ์ที่รวดเร็ว!-หลัก
-คำแนะนำ
-คนอื่น
แบบอย่าง | ความยาวโทเค็น T5 | วีเออี | 2K/4K |
---|---|---|---|
PixArt-Σ | 300 | SDXL | |
PixArt-α | 120 | SD1.5 |
แบบอย่าง | ตัวอย่าง-1 | ตัวอย่าง-2 | ตัวอย่าง-3 |
---|---|---|---|
PixArt-Σ | |||
PixArt-α | |||
พรอมต์ | ภาพระยะใกล้ ชายผมหงอก มีหนวดมีเคราในวัย 60 มองดูผู้คนเดินผ่านไปมา สวมเสื้อคลุมขนสัตว์และ หมวกเบเร่ต์สีน้ำตาล สวมแว่นตา ถ่ายภาพยนตร์ | ภาพร่างกาย ผู้หญิงชาวฝรั่งเศส การถ่ายภาพ พื้นหลัง French Streets แบ็คไลท์ แสงไฟริม Fujifilm | วิดีโอโคลสอัพเสมือนจริงของเรือโจรสลัดสองลำต่อสู้กันขณะแล่นอยู่ใน ถ้วยกาแฟ |
conda create -n pixart python==3.9.0
conda activate pixart
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
git clone https://github.com/PixArt-alpha/PixArt-sigma.git
cd PixArt-sigma
pip install -r requirements.txt
ก่อนอื่นเลย.
เราเริ่มต้น repo ใหม่เพื่อสร้างฐานโค้ดที่เป็นมิตรต่อผู้ใช้และเข้ากันได้มากขึ้น โครงสร้างโมเดลหลักเหมือนกับ PixArt-α คุณยังคงสามารถพัฒนาฟังก์ชันของคุณบน repo ดั้งเดิมได้ ดังนั้น repo นี้จะรองรับ PixArt-alpha ในอนาคต
เคล็ดลับ
ตอนนี้คุณสามารถฝึกโมเดลของคุณได้โดยไม่ต้องแยกคุณสมบัติก่อน เราปฏิรูปโครงสร้างข้อมูลในฐานโค้ด PixArt-α เพื่อให้ทุกคนสามารถเริ่ม ฝึกอบรม & อนุมาน & เห็นภาพได้ ตั้งแต่เริ่มต้นโดยไม่มีความเจ็บปวดใด ๆ
ดาวน์โหลดชุดข้อมูลของเล่นก่อน โครงสร้างชุดข้อมูลสำหรับการฝึกอบรมคือ:
cd ./pixart-sigma-toy-dataset
Dataset Structure
├──InternImgs/ (images are saved here)
│ ├──000000000000.png
│ ├──000000000001.png
│ ├──......
├──InternData/
│ ├──data_info.json (meta data)
Optional(?)
│ ├──img_sdxl_vae_features_1024resolution_ms_new (run tools/extract_caption_feature.py to generate caption T5 features, same name as images except .npz extension)
│ │ ├──000000000000.npy
│ │ ├──000000000001.npy
│ │ ├──......
│ ├──caption_features_new
│ │ ├──000000000000.npz
│ │ ├──000000000001.npz
│ │ ├──......
│ ├──sharegpt4v_caption_features_new (run tools/extract_caption_feature.py to generate caption T5 features, same name as images except .npz extension)
│ │ ├──000000000000.npz
│ │ ├──000000000001.npz
│ │ ├──......
# SDXL-VAE, T5 checkpoints
git lfs install
git clone https://huggingface.co/PixArt-alpha/pixart_sigma_sdxlvae_T5_diffusers output/pretrained_models/pixart_sigma_sdxlvae_T5_diffusers
# PixArt-Sigma checkpoints
python tools/download.py # environment eg. HF_ENDPOINT=https://hf-mirror.com can use for HuggingFace mirror
การเลือกไฟล์ปรับแต่งที่คุณต้องการจากไฟล์ปรับแต่ง dir
python -m torch.distributed.launch --nproc_per_node=1 --master_port=12345
train_scripts/train.py
configs/pixart_sigma_config/PixArt_sigma_xl2_img512_internalms.py
--load-from output/pretrained_models/PixArt-Sigma-XL-2-512-MS.pth
--work-dir output/your_first_pixart-exp
--debug
ในการเริ่มต้น ให้ติดตั้งการขึ้นต่อกันที่จำเป็นก่อน ตรวจสอบให้แน่ใจว่าคุณได้ดาวน์โหลดไฟล์จุดตรวจสอบจากโมเดล (เร็วๆ นี้) ไปยังโฟลเดอร์ output/pretrained_models
แล้วจึงรันบนเครื่องของคุณ:
# SDXL-VAE, T5 checkpoints
git lfs install
git clone https://huggingface.co/PixArt-alpha/pixart_sigma_sdxlvae_T5_diffusers output/pixart_sigma_sdxlvae_T5_diffusers
# PixArt-Sigma checkpoints
python tools/download.py
# demo launch
python scripts/interface.py --model_path output/pretrained_models/PixArt-Sigma-XL-2-512-MS.pth --image_size 512 --port 11223
สำคัญ
อัพเกรด diffusers
ของคุณเพื่อทำให้ PixArtSigmaPipeline
พร้อมใช้งาน!
pip install git+https://github.com/huggingface/diffusers
สำหรับ diffusers<0.28.0
โปรดตรวจสอบสคริปต์นี้เพื่อขอความช่วยเหลือ
import torch
from diffusers import Transformer2DModel , PixArtSigmaPipeline
device = torch . device ( "cuda:0" if torch . cuda . is_available () else "cpu" )
weight_dtype = torch . float16
transformer = Transformer2DModel . from_pretrained (
"PixArt-alpha/PixArt-Sigma-XL-2-1024-MS" ,
subfolder = 'transformer' ,
torch_dtype = weight_dtype ,
use_safetensors = True ,
)
pipe = PixArtSigmaPipeline . from_pretrained (
"PixArt-alpha/pixart_sigma_sdxlvae_T5_diffusers" ,
transformer = transformer ,
torch_dtype = weight_dtype ,
use_safetensors = True ,
)
pipe . to ( device )
# Enable memory optimizations.
# pipe.enable_model_cpu_offload()
prompt = "A small cactus with a happy face in the Sahara desert."
image = pipe ( prompt ). images [ 0 ]
image . save ( "./catcus.png" )
pip install git+https://github.com/huggingface/diffusers
# PixArt-Sigma 1024px
DEMO_PORT=12345 python app/app_pixart_sigma.py
# PixArt-Sigma One step Sampler(DMD)
DEMO_PORT=12345 python app/app_pixart_dmd.py
มาดูตัวอย่างง่ายๆ โดยใช้ http://your-server-ip:12345
กัน
ดาวน์โหลดโดยตรงจาก Hugging Face
หรือรันด้วย:
pip install git+https://github.com/huggingface/diffusers
python tools/convert_pixart_to_diffusers.py --orig_ckpt_path output/pretrained_models/PixArt-Sigma-XL-2-1024-MS.pth --dump_path output/pretrained_models/PixArt-Sigma-XL-2-1024-MS --only_transformer=True --image_size=1024 --version sigma
ทุกรุ่นจะถูกดาวน์โหลดโดยอัตโนมัติที่นี่ คุณสามารถเลือกดาวน์โหลดด้วยตนเองได้จาก URL นี้
แบบอย่าง | #พารามส์ | เส้นทางด่าน | ดาวน์โหลดใน OpenXLab |
---|---|---|---|
T5 และ SDXL-VAE | 4.5B | ตัวกระจาย: pixart_sigma_sdxlvae_T5_diffusers | เร็วๆ นี้ |
PixArt-Σ-256 | 0.6B | pth: PixArt-Sigma-XL-2-256x256.pth ตัวกระจายสัญญาณ: PixArt-Sigma-XL-2-256x256 | เร็วๆ นี้ |
PixArt-Σ-512 | 0.6B | pth: PixArt-Sigma-XL-2-512-MS.pth ตัวกระจาย: PixArt-Sigma-XL-2-512-MS | เร็วๆ นี้ |
PixArt-α-512-DMD | 0.6B | ตัวกระจายสัญญาณ: PixArt-Alpha-DMD-XL-2-512x512 | เร็วๆ นี้ |
PixArt-Σ-1024 | 0.6B | pth: PixArt-Sigma-XL-2-1024-MS.pth ตัวกระจาย: PixArt-Sigma-XL-2-1024-MS | เร็วๆ นี้ |
PixArt-Σ-2K | 0.6B | pth: PixArt-Sigma-XL-2-2K-MS.pth ตัวกระจายสัญญาณ: PixArt-Sigma-XL-2-2K-MS | เร็วๆ นี้ |
เราจะพยายามอย่างเต็มที่เพื่อเผยแพร่
@misc{chen2024pixartsigma,
title={PixArt-Sigma: Weak-to-Strong Training of Diffusion Transformer for 4K Text-to-Image Generation},
author={Junsong Chen and Chongjian Ge and Enze Xie and Yue Wu and Lewei Yao and Xiaozhe Ren and Zhongdao Wang and Ping Luo and Huchuan Lu and Zhenguo Li},
year={2024},
eprint={2403.04692},
archivePrefix={arXiv},
primaryClass={cs.CV}