• Junsong Chen's avatar
    [DC-AE] Add the official Deep Compression Autoencoder code(32x,64x,128x compression ratio); (#9708) · cd892041
    Junsong Chen authored
    
    
    * first add a script for DC-AE;
    
    * DC-AE init
    
    * replace triton with custom implementation
    
    * 1. rename file and remove un-used codes;
    
    * no longer rely on omegaconf and dataclass
    
    * replace custom activation with diffuers activation
    
    * remove dc_ae attention in attention_processor.py
    
    * iinherit from ModelMixin
    
    * inherit from ConfigMixin
    
    * dc-ae reduce to one file
    
    * update downsample and upsample
    
    * clean code
    
    * support DecoderOutput
    
    * remove get_same_padding and val2tuple
    
    * remove autocast and some assert
    
    * update ResBlock
    
    * remove contents within super().__init__
    
    * Update src/diffusers/models/autoencoders/dc_ae.py
    Co-authored-by: default avatarYiYi Xu <yixu310@gmail.com>
    
    * remove opsequential
    
    * update other blocks to support the removal of build_norm
    
    * remove build encoder/decoder project in/out
    
    * remove inheritance of RMSNorm2d from LayerNorm
    
    * remove reset_parameters for RMSNorm2d
    Co-authored-by: default avatarYiYi Xu <yixu310@gmail.com>
    
    * remove device and dtype in RMSNorm2d __init__
    Co-authored-by: default avatarYiYi Xu <yixu310@gmail.com>
    
    * Update src/diffusers/models/autoencoders/dc_ae.py
    Co-authored-by: default avatarYiYi Xu <yixu310@gmail.com>
    
    * Update src/diffusers/models/autoencoders/dc_ae.py
    Co-authored-by: default avatarYiYi Xu <yixu310@gmail.com>
    
    * Update src/diffusers/models/autoencoders/dc_ae.py
    Co-authored-by: default avatarYiYi Xu <yixu310@gmail.com>
    
    * remove op_list & build_block
    
    * remove build_stage_main
    
    * change file name to autoencoder_dc
    
    * move LiteMLA to attention.py
    
    * align with other vae decode output;
    
    * add DC-AE into init files;
    
    * update
    
    * make quality && make style;
    
    * quick push before dgx disappears again
    
    * update
    
    * make style
    
    * update
    
    * update
    
    * fix
    
    * refactor
    
    * refactor
    
    * refactor
    
    * update
    
    * possibly change to nn.Linear
    
    * refactor
    
    * make fix-copies
    
    * replace vae with ae
    
    * replace get_block_from_block_type to get_block
    
    * replace downsample_block_type from Conv to conv for consistency
    
    * add scaling factors
    
    * incorporate changes for all checkpoints
    
    * make style
    
    * move mla to attention processor file; split qkv conv to linears
    
    * refactor
    
    * add tests
    
    * from original file loader
    
    * add docs
    
    * add standard autoencoder methods
    
    * combine attention processor
    
    * fix tests
    
    * update
    
    * minor fix
    
    * minor fix
    
    * minor fix & in/out shortcut rename
    
    * minor fix
    
    * make style
    
    * fix paper link
    
    * update docs
    
    * update single file loading
    
    * make style
    
    * remove single file loading support; todo for DN6
    
    * Apply suggestions from code review
    Co-authored-by: default avatarSteven Liu <59462357+stevhliu@users.noreply.github.com>
    
    * add abstract
    
    ---------
    Co-authored-by: default avatarJunyu Chen <chenjydl2003@gmail.com>
    Co-authored-by: default avatarYiYi Xu <yixu310@gmail.com>
    Co-authored-by: default avatarchenjy2003 <70215701+chenjy2003@users.noreply.github.com>
    Co-authored-by: default avatarAryan <aryan@huggingface.co>
    Co-authored-by: default avatarSteven Liu <59462357+stevhliu@users.noreply.github.com>
    cd892041
attention_processor.py 218 KB