Skip to content

Junoh-Kang/OGDM_edm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Mar 15, 2024
65f794b · Mar 15, 2024

History

27 Commits
Jul 31, 2023
Jul 25, 2023
Jul 25, 2023
Jul 25, 2023
Sep 27, 2023
Aug 7, 2023
Jul 25, 2023
Mar 15, 2024
Jul 25, 2023
Jul 25, 2023
Jul 25, 2023
Oct 21, 2023
Sep 27, 2023
Jul 30, 2023
Sep 27, 2023

Repository files navigation

Observation-Guided Diffusion Probabilistic Models (CVPR 2024)

This is the codebase for Observation-Guided Diffusion Probabilistic Models. This repository is based on NVlabs/edm. The repository for ADM baseline can be found at Junoh-Kang/OGDM_adm.

Dependencies

We share the environment of the code by docker.

docker pull snucvlab/ogdm:edm

Model training (fine-tune)

torchrun --standalone --nproc_per_node=[N] train.py --outdir=[outdir] --data=[data_dir] --cond=0 --arch=ddpmpp --disc=True --gamma=[gamma] --k=[k] --transfer=[model_to_finetune] --duration=[duration] --batch-gpu=[B] --ddim=[True/False] 

# Euler projection
torchrun --standalone --nproc_per_node=4 train.py --outdir=logs --data=data/cifar10_32 --cond=0 --arch=ddpmpp --disc=True --k=0.2 --gamma=0.025 --transfer=logs/baseline/network-snapshot-200000.pkl --duration=20 --batch-gpu=64 --ddim=True

# Huen's projection
torchrun --standalone --nproc_per_node=4 train.py --outdir=logs --data=data/cifar10_32 --cond=0 --arch=ddpmpp --disc=True --k=0.2 --gamma=0.005 --transfer=logs/baseline/network-snapshot-200000.pkl --duration=20 --batch-gpu=64 --ddim=False

Model Sampling

torchrun --standalone --nproc_per_node=[N] generate.py --seeds=[0-n] --batch=[B] --network=[model_to_sample] --disc=edm --schedule=linear --scaling=none --solver=[euler/pndm/edm] --steps=[steps]

# For NFE=15
# Euler method (NFE = steps)
torchrun --standalone --nproc_per_node=4 generate.py --seeds=0-49999 --batch=512 --network=logs/euler/network-snapshot-020000.pkl --disc=edm --schedule=linear --scaling=none --solver=euler --steps=15

# S-PNDM (NFE = steps + 1)
torchrun --standalone --nproc_per_node=4 generate.py --seeds=0-49999 --batch=512 --network=logs/euler/network-snapshot-020000.pkl --solver=pndm --steps=14

# Heun's method (NFE = 2*steps-1)
torchrun --standalone --nproc_per_node=4 generate.py --seeds=0-49999 --batch=512 --network=logs/heun/network-snapshot-020000.pkl --steps=8

Evaluation

We share the environment of the evaluation code by docker.

docker pull snucvlab/ogdm:fid

Then, run

# When activations of reference is not ready, evaluate and save activations at the same time by
python fid_prdc.py [reference] [sample] -save_act_path [ref.npz]

# When activations of reference is ready, evaluate 
python fid_prdc.py [reference] [sample]

to evaluate.

Download trained models

We provide trained models for CIFAR-10. The downloaded files should look like this:

└── project
    └── network-snapshot-xxxxxx.pkl 

Here are links to download and wget commands.

wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=122I_liApvIKN3cMuzBAMt9IpW0bNrAKd' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1F7deiE3_hAITp-G74B4s61PWyWnKcjT5" -O cifar10_baseline_edm.tar.gz && rm -rf /tmp/cookies.txt
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1YTPih5_Spjw2lmPrU9JBfCKRFwmLk3rs' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1F7deiE3_hAITp-G74B4s61PWyWnKcjT5" -O cifar10_euler_edm.tar.gz && rm -rf /tmp/cookies.txt
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1v2fv_6DqaZfq4Vl7kqqHOUDRjwraYbHl' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1F7deiE3_hAITp-G74B4s61PWyWnKcjT5" -O cifar10_heun_edm.tar.gz && rm -rf /tmp/cookies.txt

Citation

@inproceedings{kang2024odgm,
  author    = {Kang, Junoh and Choi, Jinyoung and Choi, Sungik and Han, Bohyung},
  title     = {Observation-Guided Diffusion Probabilistic Models},
  booktitle = {CVPR},
  year      = {2024}
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published