A plug-and-play framework for enhancing diversity in long-prompt image generation
Bo-Kai Ruan, Teng-Fang Hsiao, Ling Lo, Yi-Lun Wu, Hong-Han Shuai
| Qwen-Image |
|---|
![]() |
| +PromptMoG (Ours) |
![]() |
| +CADS |
![]() |
| +DiverseFlow |
![]() |
uv sync
# load environment
source .venv/bin/activateWe have provided the filtered dataset in data/lpd_bench. Users can also follow the following steps to generate the dataset themselves.
# Step 1: Generate a pool of long prompts
python misc/dataset_gen/generate_long_prompt.py --num-prompts-for-topic 60
# Step 2: Filter the prompts
python misc/dataset_gen/post_process_data.py --data-root data/lpd_bench --num_prompts_per_topic 60 --num_remain_per_topic 40The outputs will be saved to data/lpd_bench/filtered.
Diversity Test
# Generate images
./scripts/gen_image.sh \
--dataset_type long \
--prompt_root_dir data/lpd_bench \
--output_root_dir outputs/long_prompt
./scripts/gen_image.sh \
--dataset_type short \
--prompt_root_dir data/lpd_bench \
--output_root_dir outputs/short_prompt_1 \
--first_top 1
./scripts/gen_image.sh \
--dataset_type short \
--prompt_root_dir data/lpd_bench \
--output_root_dir outputs/short_prompt_3 \
--first_top 3
# Score the diversity
./scripts/scoring_diversity.sh --output_root_dir outputs/long_prompt
./scripts/scoring_diversity.sh --output_root_dir outputs/short_prompt_1
./scripts/scoring_diversity.sh --output_root_dir outputs/short_prompt_3./scripts/gen_image.sh \
--dataset_type long \
--model_type pmog \
--prompt_root_dir data/lpd_bench \
--output_root_dir outputs/pmog
./scripts/scoring_diversity.sh --output_root_dir outputs/pmog
./scripts/scoring_lpd.sh --output_root_dir outputs/pmog| Model | Gamma | Num Mode | Sigma |
|---|---|---|---|
| Flux | 0.6 | 50 | 0.25 |
| Qwen | 0.85 | 50 | 0.25 |
Exploring the gamma
GAMMA_LIST=(0.1 0.35 0.6 0.85 1.1)
for gamma in ${GAMMA_LIST[@]}; do
./scripts/ablation/gen_and_scoring_ablation.sh \
--prompt_root_dir data/lpd_bench \
--output_root_dir outputs/ablation_gamma_flux_${gamma}_qwen_${gamma} \
--dataset_type long \
--model_type pmog \
--partial_num 8 \
--flux_gamma ${gamma} \
--qwen_gamma ${gamma}
./scripts/scoring_lpd.sh --output_root_dir outputs/ablation_gamma_flux_${gamma}_qwen_${gamma}
doneExploring the sigma
# [0, 0.25, 0.5, 0.75, 1.0]
SIGMA_LIST=(0 0.25 0.5 0.75 1.0)
for sigma in ${SIGMA_LIST[@]}; do
./scripts/ablation/gen_and_scoring_ablation.sh \
--prompt_root_dir data/lpd_bench \
--output_root_dir outputs/ablation_sigma_flux_${sigma}_qwen_${sigma} \
--dataset_type long \
--model_type pmog \
--partial_num 8 \
--flux_sigma ${sigma} \
--qwen_sigma ${sigma}
./scripts/scoring_lpd.sh --output_root_dir outputs/ablation_sigma_flux_${sigma}_qwen_${sigma}
doneExploring the mode
NUM_MODE_LIST=(1 25 50 75 100)
for num_mode in ${NUM_MODE_LIST[@]}; do
./scripts/ablation/gen_and_scoring_ablation.sh \
--prompt_root_dir data/lpd_bench \
--output_root_dir outputs/ablation_mode_flux_${num_mode}_qwen_${num_mode} \
--dataset_type long \
--model_type pmog \
--partial_num 8 \
--flux_num_mode ${num_mode} \
--qwen_num_mode ${num_mode}
./scripts/scoring_lpd.sh --output_root_dir outputs/ablation_mode_flux_${num_mode}_qwen_${num_mode}
done@inproceedings{promptmog,
title={Diversifying Long Prompt Image Generation through Structured Prompt Embedding Space Sampling},
author={Ruan, Bo-Kai and Hsiao, Teng-Fang and Lo, Ling and Wu, Yi-Lun and Shuai, Hong-Han},
booktitle={BMVC},
year={2026}
}


