Yiren Song1, Cheng Liu1, Haofan Wang2, Mike Zheng Shou1
1Show Lab, National University of Singapore 2Lovart AI
OmniPSD is a unified diffusion-transformer framework for bidirectional conversion between raster images and editable PSD files with full transparency support. It addresses two tasks:
Key components:
A subset of our layered poster dataset is available on Hugging Face:
git clone https://github.com/showlab/OmniPSD.git
cd OmniPSD
pip install -r requirements.txt
Base models required:
/PATH/TO/RGBA_VAE/ in scriptsAll scripts are run from the OmniPSD root directory. Edit the PATH placeholders in each script before running.
bash scripts/train_psd_flux.sh
Uses Flux-Dev with the RGBA-VAE. Training data is a 4-panel grid of [full poster | content layer | background | text-removed poster].
# Foreground extraction
bash scripts/train_psd_content_front.sh
# Background inpainting
bash scripts/train_psd_content_back.sh
# Foreground extraction
bash scripts/train_psd_text_front.sh
# Background inpainting
bash scripts/train_psd_text_back.sh
All Kontext-based scripts take (image, control) pairs where control is the input poster used as conditioning.
Edit inference/infer_psd_flux.py to set INPUT_TXT_DIR, OUTPUT_ROOT, LORA_PATH, and the RGBA-VAE path, then run:
cd /PATH/TO/OmniPSD
CUDA_VISIBLE_DEVICES=0 PYTHONPATH=$(pwd) python inference/infer_psd_flux.py
Each .txt file in INPUT_TXT_DIR is treated as one prompt. The script runs NUM_PASSES times per prompt with incrementing seeds and saves results under OUTPUT_ROOT/<stem>/.
If you find OmniPSD useful, please cite:
@article{Liu2025OmniPSD,
title = {OmniPSD: Layered PSD Generation with Diffusion Transformer},
author = {Liu, Cheng and Song, Yiren and Wang, Haofan and Shou, Mike Zheng},
journal = {arXiv preprint arXiv:2512.09247},
year = {2025},
archivePrefix = {arXiv},
eprint = {2512.09247},
primaryClass = {cs.CV},
doi = {10.48550/arXiv.2512.09247},
url = {https://arxiv.org/abs/2512.09247}
}
6 commits
Python
99.8%
Yiren Song1, Cheng Liu1, Haofan Wang2, Mike Zheng Shou1
1Show Lab, National University of Singapore 2Lovart AI
OmniPSD is a unified diffusion-transformer framework for bidirectional conversion between raster images and editable PSD files with full transparency support. It addresses two tasks:
Key components:
A subset of our layered poster dataset is available on Hugging Face:
git clone https://github.com/showlab/OmniPSD.git
cd OmniPSD
pip install -r requirements.txt
Base models required:
/PATH/TO/RGBA_VAE/ in scriptsAll scripts are run from the OmniPSD root directory. Edit the PATH placeholders in each script before running.
bash scripts/train_psd_flux.sh
Uses Flux-Dev with the RGBA-VAE. Training data is a 4-panel grid of [full poster | content layer | background | text-removed poster].
# Foreground extraction
bash scripts/train_psd_content_front.sh
# Background inpainting
bash scripts/train_psd_content_back.sh
# Foreground extraction
bash scripts/train_psd_text_front.sh
# Background inpainting
bash scripts/train_psd_text_back.sh
All Kontext-based scripts take (image, control) pairs where control is the input poster used as conditioning.
Edit inference/infer_psd_flux.py to set INPUT_TXT_DIR, OUTPUT_ROOT, LORA_PATH, and the RGBA-VAE path, then run:
cd /PATH/TO/OmniPSD
CUDA_VISIBLE_DEVICES=0 PYTHONPATH=$(pwd) python inference/infer_psd_flux.py
Each .txt file in INPUT_TXT_DIR is treated as one prompt. The script runs NUM_PASSES times per prompt with incrementing seeds and saves results under OUTPUT_ROOT/<stem>/.
If you find OmniPSD useful, please cite:
@article{Liu2025OmniPSD,
title = {OmniPSD: Layered PSD Generation with Diffusion Transformer},
author = {Liu, Cheng and Song, Yiren and Wang, Haofan and Shou, Mike Zheng},
journal = {arXiv preprint arXiv:2512.09247},
year = {2025},
archivePrefix = {arXiv},
eprint = {2512.09247},
primaryClass = {cs.CV},
doi = {10.48550/arXiv.2512.09247},
url = {https://arxiv.org/abs/2512.09247}
}
6 commits
Python
99.8%