UL Procyon definition files let you set up and run the benchmark with standard or custom settings. By default, these definition files are found in C:\Program Files\UL\Procyon\.

SettingDescriptionDefault values
ai_device_typeDevice to run the engine on. Value depends on the chosen engine.auto
ai_engineEngine to run SD pipeline withort-directml, tensorrt, openvino
model_idModel ID as presented on HuggingFace.corunwayml/stable-diffusion-v1-5, stabilityai/stable-diffusion-xl-base-1.0
inference_stepsUNET denoising step count100
batch_sizeNumber of images to process in a single pass of the pipeline1, 4
image_sizeResolution of the generated images512, 1024
num_imagesNumber of images to generate during the benchmark run.16
warmupEnable warmup pass of the pipeline before measured run. Generally, the first pass of the pipeline is slower than following passes.true
SeedSet to initialize random noise with the same seed for same images1073741824
schedulerScheduler to run UNET denoising withddim
prepare_models_onlyEnable to only prepare models with given settings and not run inferencefalse
calc_clip_scoresEnable to calculate CLIP scores after images have been generatedfalse

In the default runs only the engine and the target device can be modified


ai_imagegeneration_sd15fp16.def

<?xml version="1.0" encoding="utf-8"?>
<benchmark>
<test_info>
<benchmark_tests>
<benchmark_test name="AIImageGenerationSD15FP16Benchmark" test_run_type="EXPLICIT" version="1.0"/>
</benchmark_tests>
</test_info>
<application_info>
<selected_workloads>
<selected_workload name="AIImageGenerationSD15FP16Default"/>
</selected_workloads>
</application_info>
<settings>
<setting>
<name>ai_device_type</name>
<value>auto</value> <!-- options: ort-directml - auto; tensorrt - auto, cuda, cuda:0, cuda:1, etc.; openvino - auto, gpu, gpu.0, gpu.1 etc. -->
</setting>
<setting>
<name>ai_engine</name>
<value>ort-directml</value> <!-- options: ort-directml, tensorrt, openvino -->
</setting>
</settings>
</benchmark>

ai_imagegeneration_sdxlfp16.def

<?xml version="1.0" encoding="utf-8"?>
<benchmark>
<test_info>
<benchmark_tests>
<benchmark_test name="AIImageGenerationSDXLFP16Benchmark" test_run_type="EXPLICIT" version="1.0"/>
</benchmark_tests>
</test_info>
<application_info>
<selected_workloads>
<selected_workload name="AIImageGenerationSDXLFP16Default"/>
</selected_workloads>
</application_info>
<settings>
<setting>
<name>ai_device_type</name>
<value>auto</value> <!-- options: ort-directml - auto; tensorrt - auto, cuda, cuda:0, cuda:1, etc.; openvino - auto, gpu, gpu.0, gpu.1 etc. -->
</setting>
<setting>
<name>ai_engine</name>
<value>ort-directml</value> <!-- options: ort-directml, tensorrt, openvino -->
</setting>
</settings>
</benchmark>

ai_imagegeneration_sd15fp16_custom.def


<?xml version="1.0" encoding="utf-8"?>
<benchmark>
<test_info>
<benchmark_tests>
<benchmark_test name="AIImageGenerationSD15FP16BenchmarkCustom" test_run_type="EXPLICIT" version="1.0"/>
</benchmark_tests>
</test_info>
<application_info>
<selected_workloads>
<selected_workload name="AIImageGenerationSD15FP16Custom"/>
</selected_workloads>
</application_info>
<settings>
<setting>
<name>ai_device_type</name>
<value>auto</value> <!-- options: ort-directml - auto; tensorrt - auto, cuda, cuda:0, cuda:1, etc.; openvino - auto, gpu, gpu.0, gpu.1 etc. -->
</setting>
<setting>
<name>ai_engine</name>
<value>ort-directml</value> <!-- options: ort-directml, tensorrt, openvino -->
</setting>
<setting>
<name>model_id</name>
<value>runwayml/stable-diffusion-v1-5</value> <!-- runwayml/stable-diffusion-v1-5. Other non-sdxl models may work -->
</setting>
<setting>
<name>inference_steps</name>
<value>100</value> 
</setting>
<setting>
<name>seed</name>
<value>1073741824</value> <!-- any between 0 to 214748363 or none -->
</setting>
<setting>
<name>batch_size</name>
<value>4</value> 
</setting>
<setting>
<name>image_size</name>
<value>512</value> <!-- 512 for SD 1.5. Others may work  -->
</setting>
<setting>
<name>num_images</name>
<value>16</value> <!-- Must be a multiple of batch_size -->
</setting>
<setting>
<name>warmup</name>
<value>true</value> <!-- Execute pipeline once before starting measured passes -->
</setting>
<setting>
<name>prepare_models_only</name>
<value>false</value> <!-- Download and convert models for selected batch size and image size, but do not generate images -->
</setting>
<setting>
<name>calc_clip_scores</name>
<value>false</value> <!-- Calculate Clip scores for generated images -->
</setting>
<setting>
<name>scheduler</name>
<value>ddim</value> <!-- options: ddim, eulera, pndm -->
</setting>
</settings>
</benchmark>

ai_imagegeneration_sdxlfp16_custom.def

<?xml version="1.0" encoding="utf-8"?>
<benchmark>
<test_info>
<benchmark_tests>
<benchmark_test name="AIImageGenerationSDXLFP16BenchmarkCustom" test_run_type="EXPLICIT" version="1.0"/>
</benchmark_tests>
</test_info>
<application_info>
<selected_workloads>
<selected_workload name="AIImageGenerationSDXLFP16Custom"/>
</selected_workloads>
</application_info>
<settings>
<setting>
<name>ai_device_type</name>
<value>auto</value> <!-- options: ort-directml - auto; tensorrt - auto, cuda, cuda:0, cuda:1, etc.; openvino - auto, gpu, gpu.0, gpu.1 etc. -->
</setting>
<setting>
<name>ai_engine</name>
<value>ort-directml</value> <!-- options: ort-directml, tensorrt, openvino -->
</setting>
<setting>
<name>model_id</name>
<value>stabilityai/stable-diffusion-xl-base-1.0</value> <!-- stabilityai/stable-diffusion-xl-base-1.0 -->
</setting>
<setting>
<name>inference_steps</name>
<value>100</value> 
</setting>
<setting>
<name>seed</name>
<value>0</value> <!-- any between 0 to 214748363 or none -->
</setting>
<setting>
<name>batch_size</name>
<value>1</value> 
</setting>
<setting>
<name>image_size</name>
<value>1024</value> <!-- 1024 for SD XL. Others may work -->
</setting>
<setting>
<name>num_images</name>
<value>16</value> <!-- Must be a multiple of batch_size -->
</setting>
<setting>
<name>warmup</name>
<value>true</value> <!-- Execute pipeline once before starting measured passes -->
</setting>
<setting>
<name>prepare_models_only</name>
<value>false</value> <!-- Download and convert models for selected batch size and image size, but do not generate images -->
</setting>
<setting>
<name>calc_clip_scores</name>
<value>false</value> <!-- Calculate Clip scores for generated images -->
</setting>
<setting>
<name>scheduler</name>
<value>ddim</value> <!-- options: ddim, eulera, pndm -->
</setting>
</settings>
</benchmark>