GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - basiclab/PromptMoG: Enhancing Diversity in Long-Prompt Image Generation

BranchesTags
Open more actions menu

Latest commit

 

History

1 Commit
1 Commit

Folders and files

NameName
Last commit message
Last commit date
assets
assets
 
 
configs/gen
configs/gen
 
 
data/lpd_bench
data/lpd_bench
 
 
eval_utils
eval_utils
 
 
gen_utils
gen_utils
 
 
pipeline
pipeline
 
 
scripts
scripts
 
 
.gitignore
.gitignore
 
 
.python-version
.python-version
 
 
README.md
README.md
 
 
pyproject.toml
pyproject.toml
 
 
uv.lock
uv.lock
 
 

Repository files navigation

PromptMoG: Prompt Embedding Mixture-of-Gaussian Sampling

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

License: Apache2.0

Qwen-Image
Qwen-Image
+PromptMoG (Ours)
PromptMoG
+CADS
CADS
+DiverseFlow
DiverseFlow

Installation

uv sync
# load environment
source .venv/bin/activate

Data Preparation

We 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 40

The outputs will be saved to data/lpd_bench/filtered.

Usage

Additional Experiments

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

PromptMoG

./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

Ablation Study

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}
done
Exploring 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}
done
Exploring 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

Citation

@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}
}

About

Enhancing Diversity in Long-Prompt Image Generation

Resources

Readme
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.