Skip to content

DesarguesC/Ps-Adapter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

May 25, 2023
ad10cad · May 25, 2023
Apr 7, 2023
Mar 27, 2023
Mar 27, 2023
May 5, 2023
Mar 27, 2023
Mar 27, 2023
May 25, 2023
May 1, 2023
Mar 31, 2023
Mar 27, 2023
May 22, 2023
Mar 27, 2023
Mar 27, 2023
May 3, 2023
May 5, 2023
Apr 4, 2023
May 2, 2023
Apr 1, 2023
May 22, 2023
May 25, 2023
May 24, 2023
Mar 31, 2023
May 24, 2023

Repository files navigation

Ps-Adapter

Now we've developped a new method to train pretrained adapters jointly to obtain an extra adapter which will be much stabler.

The project is based on Tencent T2I-Adapter.

Packages

create environment

conda env create -f environment.yaml

install packages as required by

pip install -r requirements.txt

Install nlpconnct/vit-gpt2-image-captioning

git lfs install
git clone https://huggingface.co/nlpconnct/vit-gpt2-image-captioning

And remember to put T2I-Adapter as well as stable-diffusion ckpt in folder 'models'.

fetch whole clip model in folder 'models'

git clone https://huggingface.co/openai/clip-vit-large-patch14

Datasets

If you'd like to train the Ps-Adapter on your own dataset, there's only a need of images without lable.

All of images format '.png', '.jpg', '.jpeg', '.webp' are allowed to be put in route Datasets/sets.

you can download only MPII-Human Pose dataset by running

cd Datasets
kaggle datasets download -d harshpatel66/mpii-human-pose

download Cricket Shot Dataset

kaggle datasets download -d aneesh10/cricket-shot-dataset

p.s.: You can download your image dataset (e.g. zip, tar, gz) onto Datasets/sets and hen unzip then direcly. By running

cd Datasets
python deal.py --source <your dataset folder> --target "YourRoot/Ps-Adapter/Datasets/Data"

all images under folder Datasets/sets will we moved into Datasets/Data

After that, run

cd ..
python deal.py --length max_length --beams num_beams --random_num

or

python recaption.py --length 77 --beams 10 --image ~/autodl-tmp/self/Datasets/mpii/images --outdir_captions ~/autodl-tmp/Data/resaption/Captions --outdir_keypose ~/autodl-tmp/Data/resaption/Keypose

(no '/' after the ending folder)

to get captions and kepose images. Here, "max_length" and "num_beams" are parameters from nlpconnect/vit-gpt2-image-captioning program. So, make sure vit-gpt2 model has been installed.

After these, cpaions will be written into "captions.csv" under folder "./Datasets/Captions/" and images will be gathered under folder "./Datasets/Data".

Train

Before training, set environment variables as follow

export RANK=0
export WORLD_SIZE=2     # the number of the thread to be called
export MASTER_ADDR=localhost
export MASTER_PORT=5678
export LOCAL_RANK=0
export CUDA_VISIBLE_DEVICES=...(your gpus rank)

Use single gpu to train

python single_train.py --sd_ckpt ~/autodl-tmp/models/v1-5-pruned.ckpt --adapter_ori ~/autodl-tmp/models/t2iadapter_openpose_sd14v1.pth --adapter_ckpt ~/autodl-tmp/models/t2iadapter_openpose_sd14v1.pth  --caption_path ~/autodl-tmp/Datasets/Captions/captions.csv --keypose_folder ~/autodl-tmp/Datasets/Keypose/ --resize yes --bsize 4

However, if you want to use multi gpus for training, you should first ensure the nccl environment

Build:

git clone https://github.com/NVIDIA/nccl.git
cd nccl
make -j src.build  # ensure your CUDA was installed on /usr/local/cuda, otherwise, run: make -j src.build CUDA_HOME=<YOUR CUDA PATH>
make -j src.build NVCC_GENCODE="-gencode=arch=compute_70,code=sm_70"   # choosable; it might take several minutes

Install on Ubuntu or Debian

sudo apt install build-essential devscripts debhelper
make pkg.debian.build
ls build/pkg/deb/     # test

After this, test the installation

git clone https://github.com/NVIDIA/nccl-tests.git
cd nccl-tests
make
./build/all_reduce_perf -b 8 -e 256M -f 2 -g <YOUR GPU AMOUNT>

Use multi gpus to train

python -m torch.distributed.launch --nproc_per_node=<gpu ammounts> --master_port=5678  train_ps_adapter.py --sd_ckpt ~/autodl-tmp/models/v1-5-pruned.ckpt --adapter_ori ~/autodl-tmp/models/t2iadapter_openpose_sd14v1.pth --adapter_ckpt ~/autodl-tmp/models/t2iadapter_openpose_sd14v1.pth  --caption_path ~/autodl-tmp/Datasets/Captions/captions.csv --keypose_folder ~/autodl-tmp/Datasets/Keypose/ --resize yes --bsize 4 --local_rank 0 --gpus <your gpu amounts> --num_workers <max: your cpu kernel> * 2

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages