Image Generation

June 19, 2025 · View on GitHub

Reusing Pre-generated Embeddings

You can reuse embeddings generated from previous runs for faster inference:

python ecad/inference/inference.py \
    PixArtAlphaImageGenerator \
    --input-embeddings results/inference/previous_run/embeddings \
    --schedule schedules/schedules_in_paper/ours_fast.json \
    --num-images-per-prompt 20 \
    --output-dir results/inference/from_embeddings

Important: Embeddings are model-specific and should NOT be shared across different models. Always use embeddings generated by the same model type for inference.

Advanced Options

Override schedule parameters for custom resolutions or guidance:

python ecad/inference/inference.py \
    FluxImageGenerator \
    --schedule schedules/schedules_in_paper/flux_schedule.json \
    --prompt-file prompts/creative_prompts.txt \
    --height 768 \
    --width 768 \
    --guidance-scale 7.5 \
    --start-seed 42 \
    --seed-step 1

The script automatically:

  • Generates and saves embeddings to <output-dir>/embeddings/ for future reuse
  • Saves generated images to <output-dir>/images/
  • Handles batch processing efficiently

Note: For working with pre-generated embeddings (e.g., from benchmark datasets), refer to the Image Generation section above. For PixArt models at resolutions other than 256×256, use a custom schedule that specifies the appropriate height, width, and transformer weights.

For complete usage details:

python ecad/inference/inference.py --help

generate_images.py

Once embeddings are prepared, you can also use generate_images.py to render images under each caching schedule. In these examples, output images are saved under results/benchmark/<dataset>/<model_name> with subdirectories per schedule.

For example, for ImageReward and PixArt-α:

python ecad/benchmark/generate_images.py \
    --image-generator PixArtAlphaImageGenerator \
    --input-dir results/embeddings/image_reward/pixart_alpha_embeddings \
    --schedule-dir schedules/schedules_in_paper \
    --output-dir results/benchmark/image_reward/pixart_alpha \
    --num-images-per-prompt 10 \
    --batch-size 100 \
    --seed 0 \
    --seed-step 1

This will process each prompt embedding in results/embeddings/image_reward/pixart_alpha_embeddings, apply every JSON schedule found in schedules/schedules_in_paper, and save the results into results/benchmark/image_reward/pixart_alpha/<schedule-name>/. Adjust --num-images-per-prompt, --batch-size, or other flags as needed.

For full parameter details, run:

python ecad/benchmark/generate_images.py --help