Nota-NetsPresso / BK-SDM

A Compressed Stable Diffusion for Efficient Text-to-Image Generation [ECCV'24]
Other
216 stars 14 forks source link

Snapfusion seems to get better results? #25

Closed jianyuheng closed 10 months ago

jianyuheng commented 10 months ago

Thanks for the generosity of open sourcing your work, but there was a previous work similar to yours, called Snapfusion, aimed at speeding up Stable diffusion.

From the results of their paper, they achieved better results through efficient-unet and step distillation, but unfortunately this work is not open source.

Do you have any opinion on this work? https://snap-research.github.io/SnapFusion/ image

bokyeong1015 commented 10 months ago

Hi, thanks for your interest :) SnapFusion has attained impressive results and is concurrent to our work. We sincerely appreciate their research efforts.

Below are potential points of comparison. In short, we've highlighted the potential of classical architectural compression, which remains powerful even under limited resources; meanwhile, SnapFusion has nicely approached both architectural reduction and step distillation.

BK-SDM (Ours) SnapFusion
U-Net: architecture reduction O (Block Removal + KD) O (Architecture Evolving)
U-Net: # sampling steps reduction X O (Step Distillation)
Image Decoder: architecture reduction X O (Ch Reduction + KD)
Training Data 0.22M LAION pairs unclear (from
LAION-5B + COYO-700M + internal dataset)
Training GPUs 1 A100 GPU 16 or 32 nodes for most of the training
(each node: 8 A100 GPUs)

The following directions could be promising:

jianyuheng commented 10 months ago

Very detailed comparison, thanks.

Bikesuffer commented 10 months ago

That's really an interesting topic. I actually tried both approaches for inpainting. Since Snapfusion is not open source and the authors not responding, I can only write the robust training code based on the description in their paper. After 300k steps training, the model still can't generate acceptable inpainting result. Later I tried BK SDM approaches for inpainting. I tried SD_small_64, SD_base_64, SD_base_256, SD_small_256 and SD_tiny_64. All of them can generate acceptable inpainting results after 50K steps.

abhigoku10 commented 4 months ago

@Bikesuffer can u share the source for inpainting so that we can check it from our end Thanks in advance