# Prompt Post-Processor configuration file. # If you want to change any of these options make first a copy of this file as "ppp_config.yaml" and edit that file. # In ComfyUI the file should be in the user folder. # This defaults file will be overwritten when updating the extension, but your custom "ppp_config.yaml" should not be affected. # Options for supported host applications hosts: # For each host, define how to handle some operations: # attention: how to handle attention operators # - ok: leave as is # - parentheses: convert to parentheses-based attention # - disable: remove attention operators # - remove: remove the whole block, including the text inside # - error: raise an error # scheduling: how to handle scheduling operators # - ok: leave as is # - before: replace with the first scheduling text # - after: replace with the second scheduling text # - first: replace with the first scheduling text if present, otherwise with the second scheduling text # - remove: remove the whole block, including the text inside # - error: raise an error # alternation: how to handle alternation operators # - ok: leave as is # - first: replace with the first alternation text # - remove: remove the whole block, including the text inside # - error: raise an error # and: how to handle "AND" operators # - ok: leave as is # - eol: replace with end-of-line (newline) # - comma: replace with comma # - remove: remove the operator # - error: raise an error # break: how to handle "BREAK" operators # - ok: leave as is # - eol: replace with end-of-line (newline) # - comma: replace with comma # - remove: remove the operator # - error: raise an error # seed_bits: number of bits to use for the seed; if not specified, it defaults to 64 bits # Options in the user file override all these options by host (individual options are not inherited and if missing will use defaults in code). a1111: attention: ok scheduling: ok alternation: ok and: ok break: ok seed_bits: 32 forge: attention: ok scheduling: ok alternation: ok and: ok break: ok seed_bits: 32 forgeneo: attention: ok scheduling: ok alternation: ok and: ok break: ok seed_bits: 32 reforge: attention: ok scheduling: ok alternation: ok and: ok break: ok seed_bits: 32 sdnext: attention: ok scheduling: ok alternation: ok and: ok break: ok seed_bits: 32 comfyui: # ComfyUI only supports parentheses-based attention attention: parentheses # by default ComfyUI does not support scheduling, alternation, AND or BREAK operators, but you may be able to use them with a custom text encoder node scheduling: error alternation: error and: comma break: comma seed_bits: 53 # and not 64, because of frontend JavaScript limits # Supported base models, variants, and options # Check supported models for each host in: # a1111: # forge: repositories\huggingface_guess\huggingface_guess\model_list.py # forgeneo: modules_forge\packages\huggingface_guess\model_list.py # reforge: ldm_patched\modules\supported_models.py # sdnext: modules\shared_items.py # comfyui: ComfyUI\comfy\supported_models.py models: # We define supported models and how we detect them in each host application (by class or by a known boolean property, or null for not supported). # We can also define here variants and some options. # For each model, detect options in the user file replace these ones by host, and variants are fully replaced (so if you want to add to the default ones you need to copy them to your file). sd1: # Stable Diffusion 1 detect: a1111: { property: "is_sd1" } forge: { property: "is_sd1", class: ["SD15", "SD15_instructpix2pix"] } forgeneo: { property: "is_sd1", class: ["SD15"] } reforge: { property: "is_sd1", class: ["SD15", "SD15_instructpix2pix"] } sdnext: { class: ["LatentDiffusion", "StableDiffusionPipeline", "StableDiffusionInpaintPipeline", "StableDiffusionInstructPix2PixPipeline", "StableDiffusionUpscalePipeline"] } # LatentDiffusion is for the original backend, StableDiffusionPipeline is for the diffusers backend; cannot differentiate SD1 and SD2, we set both to True comfyui: { class: ["SD15", "SD15_instructpix2pix"] } sd2: # Stable Diffusion 2 detect: a1111: { property: "is_sd2" } forge: { property: "is_sd2", class: ["SD20", "SD21UnclipL", "SD21UnclipH"] } forgeneo: null reforge: { property: "is_sd2", class: ["SD20", "SD21UnclipL", "SD21UnclipH"] } sdnext: { class: ["LatentDiffusion", "StableDiffusionPipeline", "StableDiffusionInpaintPipeline", "StableDiffusionInstructPix2PixPipeline", "StableDiffusionUpscalePipeline"] } # cannot differentiate SD1 and SD2, we set both to True; LatentDiffusion is for the original backend, StableDiffusionPipeline is for the diffusers backend comfyui: { class: ["SD20", "SD21UnclipL", "SD21UnclipH", "LotusD"] } ssd: # Segmind Stable Diffusion 1B detect: a1111: { property: "is_ssd" } forge: { class: ["SSD1B"] } forgeneo: null reforge: { property: "is_ssd", class: ["SSD1B"] } sdnext: null comfyui: { class: ["SSD1B"]} sdxl: # Stable Diffusion XL detect: a1111: { property: "is_sdxl" } forge: { property: "is_sdxl", class: ["SDXL", "SDXLRefiner", "SDXL_instructpix2pix", "Segmind_Vega", "KOALA_700M", "KOALA_1B"] } forgeneo: { property: "is_sdxl", class: ["SDXL", "SDXLRefiner"] } reforge: { property: "is_sdxl", class: ["SDXL", "SDXLRefiner", "SDXL_instructpix2pix", "Segmind_Vega", "KOALA_700M", "KOALA_1B"] } sdnext: { class: ["StableDiffusionXLPipeline", "StableDiffusionXLImg2ImgPipeline", "StableDiffusionXLInpaintPipeline", "StableDiffusionXLInstructPix2PixPipeline"] } comfyui: { class: ["SDXL", "SDXLRefiner", "SDXL_instructpix2pix", "Segmind_Vega", "KOALA_700M", "KOALA_1B"] } variants: # At this level goes the name of the defined variants # find_in_filename: regex patterns as a str or regex/flags dict or list of them to identify the variant in the model filename. # If specified as a string, it is considered a regex with the IGNORECASE flag; # If specified as a dict, it should have "regex" and optional "flags" keys; # If specified as a list, it should be a list of dicts or strings pony: { find_in_filename: "(?:pony|pny|pdxl)" } illustrious: { find_in_filename: { regex: "(?:illustrious|illust|ilxl)", flags: ["IGNORECASE"] } } noobai: { find_in_filename: "(?:noob|nai)" } sd3: # Stable Diffusion 3 detect: a1111: { property: "is_sd3" } forge: { property: "is_sd3", class: ["SD3"] } forgeneo: null reforge: { property: "is_sd3", class: ["SD3"] } sdnext: { class: ["StableDiffusion3Pipeline"] } comfyui: { class: ["SD3"] } flux: # Flux 1 detect: a1111: null forge: { class: ["Flux", "FluxSchnell"] } forgeneo: { class: ["Flux", "FluxSchnell"] } reforge: { class: ["Flux", "FluxInpaint", "FluxSchnell"] } sdnext: { class: ["FluxPipeline"] } comfyui: { class: ["Flux", "FluxInpaint", "FluxSchnell"] } auraflow: # AuraFlow detect: a1111: null forge: { class: ["AuraFlow"] } forgeneo: null reforge: { class: ["AuraFlow"] } sdnext: { class: ["AuraFlowPipeline"] } comfyui: { class: ["AuraFlow"] } pixart: # PixArt detect: a1111: null forge: null forgeneo: null reforge: { class: ["PixArtAlpha", "PixArtSigma"] } sdnext: { class: ["PixArtAlphaPipeline", "PixArtSigmaPipeline"] } comfyui: { class: ["PixArtAlpha", "PixArtSigma"] } lumina2: # Lumina2 detect: a1111: null forge: null forgeneo: { class: ["Lumina2"] } reforge: { class: ["Lumina2"] } sdnext: { class: ["Lumina2Pipeline"] } comfyui: { class: ["Lumina2"] } zimage: # ZImage detect: a1111: null forge: null forgeneo: { class: ["ZImage"] } reforge: { class: ["ZImage"] } sdnext: { class: ["ZImagePipeline"] } comfyui: { class: ["ZImage"] } ltxv: # LTXV detect: a1111: null forge: null forgeneo: null reforge: { class: ["LTXV"] } sdnext: null comfyui: { class: ["LTXV", "LTXAV"] } cosmos: # Cosmos detect: a1111: null forge: null forgeneo: null reforge: { class: ["CosmosT2V", "CosmosI2V"] } sdnext: { class: ["Cosmos2TextToImagePipeline"] } comfyui: { class: ["CosmosT2V", "CosmosI2V"] } cosmospredict2: # CosmosPredict2 detect: a1111: null forge: null forgeneo: null reforge: { class: ["CosmosT2IPredict2", "CosmosI2VPredict2"] } sdnext: null comfyui: { class: ["CosmosT2IPredict2", "CosmosI2VPredict2"] } genmomochi: # GenmoMochi detect: a1111: null forge: null forgeneo: null reforge: { class: ["GenmoMochi"] } sdnext: null comfyui: { class: ["GenmoMochi"] } hunyuan: # Hunyuan detect: a1111: null forge: { class: ["HunyuanDiT", "HunyuanDiT1"] } forgeneo: null reforge: { class: ["HunyuanDiT", "HunyuanDiT1"] } sdnext: { class: ["HunyuanDiTPipeline", "HunyuanImagePipeline"] } comfyui: { class: ["HunyuanDiT", "HunyuanDiT1"] } hunyuanvideo: # HunyuanVideo detect: a1111: null forge: null forgeneo: null reforge: { class: ["HunyuanVideo", "HunyuanVideoI2V", "HunyuanVideoSkyreelsI2V", "HunyuanImage21", "HunyuanImage21Refiner", "HunyuanVideo15", "HunyuanVideo15_SR_Distilled"] } sdnext: null comfyui: { class: ["HunyuanVideo", "HunyuanVideoI2V", "HunyuanVideoSkyreelsI2V", "HunyuanImage21", "HunyuanImage21Refiner", "HunyuanVideo15", "HunyuanVideo15_SR_Distilled"] } hunyuan3d: # Hunyuan3D detect: a1111: null forge: null forgeneo: null reforge: { class: ["Hunyuan3Dv2", "Hunyuan3Dv2_1", "Hunyuan3Dv2mini"] } sdnext: null comfyui: { class: ["Hunyuan3Dv2", "Hunyuan3Dv2_1", "Hunyuan3Dv2mini"] } wan: # Wan21 & Wan22 detect: a1111: null forge: { class: ["WAN21_T2V", "WAN21_I2V"] } forgeneo: { class: ["WAN21_T2V", "WAN21_I2V"] } reforge: { class: ["WAN21_T2V", "WAN21_I2V", "WAN21_FunControl2V", "WAN21_Camera", "WAN22_Camera", "WAN21_Vace", "WAN21_HuMo", "WAN22_S2V", "WAN22_Animate", "WAN22_T2V"] } sdnext: { class: ["WanPipeline"] } comfyui: { class: ["WAN21_T2V", "WAN21_I2V", "WAN21_FunControl2V", "WAN21_Camera", "WAN22_Camera", "WAN21_Vace", "WAN21_HuMo", "WAN22_S2V", "WAN22_Animate", "WAN22_T2V", "WAN21_FlowRVS", "WAN21_SCAIL", "WAN22_WanDancer", "WAN21_CausalAR_T2V", "WAN21_SCAIL2", "WAN_Animate2"] } hidream: # HiDream detect: a1111: null forge: null forgeneo: null reforge: { class: ["HiDream"] } sdnext: { class: ["HiDreamImagePipeline"] } comfyui: { class: ["HiDream", "HiDreamO1"] } qwenimage: # QwenImage & QwenImageEdit detect: a1111: null forge: null forgeneo: { class: ["QwenImage"] } reforge: null sdnext: { class: ["QwenImagePipeline"] } comfyui: { class: ["QwenImage"] } chroma: # Chroma detect: a1111: null forge: null forgeneo: { class: ["Chroma"] } reforge: { class: ["Chroma", "ChromaRadiance"] } sdnext: { class: ["ChromaPipeline"] } comfyui: { class: ["Chroma", "ChromaRadiance"] } omnigen2: # Omnigen 2 detect: a1111: null forge: null forgeneo: null reforge: { class: ["Omnigen2"] } sdnext: { class: ["OmniGen2Pipeline"] } comfyui: { class: ["Omnigen2"] } flux2: # Flux 2 detect: a1111: null forge: null forgeneo: { class: ["Flux2K4B", "Flux2K9B"] } reforge: null sdnext: { class: ["Flux2Pipeline", "Flux2KleinPipeline"] } comfyui: { class: ["Flux2", "Flux2K4B", "Flux2K9B"] } kandinsky5: # Kandinsky 5 detect: a1111: null forge: null forgeneo: null reforge: null sdnext: { class: ["Kandinsky5T2IPipeline"] } comfyui: { class: ["Kandinsky5", "Kandinsky5Image"] } anima: # Anima detect: a1111: null forge: null forgeneo: { class: ["Anima"] } reforge: null sdnext: { class: ["AnimaText2ImagePipeline"] } comfyui: { class: ["Anima"] } longcatimage: # LongCatImage detect: a1111: null forge: null forgeneo: null reforge: null sdnext: { class: ["LongCatImagePipeline"] } comfyui: { class: ["LongCatImage"] } ernieimage: # ErnieImage detect: a1111: null forge: null forgeneo: { class: ["ErnieImage"] } reforge: null sdnext: { class: ["ErnieImagePipeline"] } comfyui: { class: ["ErnieImage"] } mugen: # Mugen detect: a1111: null forge: null forgeneo: { class: ["Mugen"] } reforge: null sdnext: null comfyui: { class: ["Mugen"] } cogvideox: # CogVideoX detect: a1111: null forge: null forgeneo: null reforge: null sdnext: null comfyui: { class: ["CogVideoX_T2V", "CogVideoX_I2V", "CogVideoX_Inpaint"] } krea2: # Krea2 detect: a1111: null forge: null forgeneo: { class: ["Krea2"] } reforge: null sdnext: null comfyui: { class: ["Krea2"] } ideogram4: # Ideogram4 detect: a1111: null forge: null forgeneo: null reforge: null sdnext: null comfyui: { class: ["Ideogram4"] } lens: # Lens detect: a1111: null forge: null forgeneo: null reforge: null sdnext: null comfyui: { class: ["Lens"] } boogu: # Boogu detect: a1111: null forge: null forgeneo: null reforge: null sdnext: null comfyui: { class: ["Boogu"] } mageflow: # MageFlow detect: a1111: null forge: null forgeneo: null reforge: null sdnext: null comfyui: { class: ["MageFlow"] } pid: # PiD detect: a1111: null forge: null forgeneo: { class: ["PiD"] } reforge: null sdnext: null comfyui: { class: ["PiD"] } minimaxh3: # MiniMaxH3 detect: a1111: null forge: null forgeneo: null reforge: null sdnext: null comfyui: { class: ["MiniMaxH3"] }