| <!DOCTYPE html> |
| |
| <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style data-emotion="mantine 1fwie01 yzuyvp 1kinfpg 3xbgk5 qo1k2 r67sg8 i4bfhs 15xbzqv 1gg8vod 1slh3ps h74xig 150a24d ubxmi3 cf0b3j gc2cx1 17n93iu mubvgq 1trwvlz 1u43i6u lw13s0 1avyp1d 4hkr0j 6v3wa0 6ioo7t im3jxi 1eod8xg 386jen 1u5ck20 v5o495 ljqvxq usl46c 3l9jp8 8wi0qm 54g21i fui8ih 1wz44l4 hghrbz xqh1pl 19fb38l h9iq4m 8od8ev 1dib7ec 1qn9423 14ggdt4 i2fjw4 1ercgiq 99b9qu 5f6x53 13zrjjj x34uy1 ax3msv 1dpxm8v 1rd7807 w3eg8i sxjlki j5xtyu 91sm8x 1hxnf01 840jf0 12tyuap hhfxu9 zyu68o 145h3id 1f0fmog agabl4 r9y4tq 1h6pkea pildck 17tws88 1dn2tzg 1ja8oh8 1supnlp 1uhluxa ct6e7 1o6w1nh kiwnw1 fjh1u7 1qlxz9s pgfohq g090tt 159pivy 6porwj 1uvkvh9 l3uf47 1l15trw 7c8fqu 1jt6jod 149q2jl u0eh0m rwe9kh 15qu6j 85sv9h s235hf 1k5iso9 16gcn8l cqtzff 12u8tet qxbfkk 17vtj7s 8mcs4 nvfdhm zav0aj" data-s="">.mantine-1fwie01{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;top:0;left:0;right:0;z-index:200;height:60px;max-height:60px;position:static;box-sizing:border-box;background-color:#1A1B1E;border-bottom:1px solid #2C2E33;}.mantine-yzuyvp{margin:-5px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;}.mantine-1kinfpg{box-sizing:border-box;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:5px;-webkit-flex-basis:0px;-ms-flex-preferred-size:0px;flex-basis:0px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:unset;padding-left:0;}@media (min-width: 576px){.mantine-1kinfpg{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 768px){.mantine-1kinfpg{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 992px){.mantine-1kinfpg{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 1200px){.mantine-1kinfpg{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 1400px){.mantine-1kinfpg{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}.mantine-3xbgk5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;overflow:visible;}.mantine-qo1k2{white-space:nowrap;height:100%;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.mantine-r67sg8{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;padding:5px;-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:50%;}@media (min-width: 576px){.mantine-r67sg8{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 768px){.mantine-r67sg8{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 992px){.mantine-r67sg8{-webkit-flex-basis:33.333333333333336%;-ms-flex-preferred-size:33.333333333333336%;flex-basis:33.333333333333336%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:33.333333333333336%;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}}@media (min-width: 1200px){.mantine-r67sg8{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 1400px){.mantine-r67sg8{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}.mantine-i4bfhs{box-sizing:border-box;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:5px;-webkit-flex-basis:0px;-ms-flex-preferred-size:0px;flex-basis:0px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:unset;}@media (min-width: 576px){.mantine-i4bfhs{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 768px){.mantine-i4bfhs{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 992px){.mantine-i4bfhs{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 1200px){.mantine-i4bfhs{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 1400px){.mantine-i4bfhs{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}.mantine-15xbzqv{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:26px;padding-left:8px;padding-right:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:rgba(25, 113, 194, 0.2);color:#a5d8ff;border-top-right-radius:0;border-bottom-right-radius:0;padding-left:12px;padding-right:4px;padding-top:8px;padding-bottom:8px;height:auto;}.mantine-15xbzqv:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-15xbzqv:focus:not(:focus-visible){outline:none;}.mantine-15xbzqv:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-15xbzqv:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-15xbzqv:hover{background-color:rgba(28, 126, 214, 0.25);}}@media (hover: none){.mantine-15xbzqv:active{background-color:rgba(28, 126, 214, 0.25);}}.mantine-15xbzqv:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-15xbzqv:disabled,.mantine-15xbzqv[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-15xbzqv:disabled:active,.mantine-15xbzqv[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-15xbzqv[data-loading]{pointer-events:none;}.mantine-15xbzqv[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-1gg8vod{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:8px;}.mantine-1gg8vod>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-1slh3ps{font-family:inherit;-webkit-tap-highlight-color:transparent;color:inherit;font-size:inherit;line-height:inherit;-webkit-text-decoration:none;text-decoration:none;font-weight:inherit;}.mantine-1slh3ps:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-1slh3ps:focus:not(:focus-visible){outline:none;}.mantine-h74xig{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:36px;padding-left:18px;padding-right:18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:rgba(25, 113, 194, 0.2);color:#a5d8ff;border-top-left-radius:0;border-bottom-left-radius:0;padding-right:4px;padding-left:4px;padding-top:8px;padding-bottom:8px;height:auto;}.mantine-h74xig:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-h74xig:focus:not(:focus-visible){outline:none;}.mantine-h74xig:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-h74xig:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-h74xig:hover{background-color:rgba(28, 126, 214, 0.25);}}@media (hover: none){.mantine-h74xig:active{background-color:rgba(28, 126, 214, 0.25);}}.mantine-h74xig:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-h74xig:disabled,.mantine-h74xig[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-h74xig:disabled:active,.mantine-h74xig[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-h74xig[data-loading]{pointer-events:none;}.mantine-h74xig[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-150a24d{position:relative;}.mantine-ubxmi3{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;border:1px solid transparent;background-color:transparent;color:#e9ecef;position:relative;height:28px;min-height:28px;width:28px;min-width:28px;border-radius:4px;padding:0;line-height:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}.mantine-ubxmi3:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-ubxmi3:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-ubxmi3:hover{background-color:rgba(52, 58, 64, 0.2);}}@media (hover: none){.mantine-ubxmi3:active{background-color:rgba(52, 58, 64, 0.2);}}.mantine-ubxmi3:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-ubxmi3:disabled,.mantine-ubxmi3[data-disabled]{color:#868e96;cursor:not-allowed;background-color:#343a40;border-color:#343a40;background-image:none;pointer-events:none;}.mantine-ubxmi3:disabled:active,.mantine-ubxmi3[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-ubxmi3[data-loading]{pointer-events:none;}.mantine-ubxmi3[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-cf0b3j{position:relative;display:block;}.mantine-gc2cx1{position:relative;display:inline-block;}.mantine-17n93iu{border:0;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;border-left-width:1px;border-left-color:#373A40;border-left-style:solid;}.mantine-mubvgq{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;}.mantine-mubvgq:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-mubvgq:focus:not(:focus-visible){outline:none;}.mantine-1trwvlz{object-fit:cover;width:100%;height:100%;display:block;}.mantine-1u43i6u{-webkit-tap-highlight-color:transparent;box-sizing:border-box;position:relative;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;width:38px;min-width:38px;height:38px;border-radius:32px;-webkit-text-decoration:none;text-decoration:none;border:0;background-color:transparent;padding:0;background-color:rgba(255,255,255,0.31);}.mantine-1u43i6u:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-1u43i6u:focus:not(:focus-visible){outline:none;}.mantine-lw13s0{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:4px;}.mantine-lw13s0>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-4hkr0j{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:36px;padding-left:18px;padding-right:18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid #373A40;background-color:#25262b;color:#fefefe;}.mantine-4hkr0j:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-4hkr0j:focus:not(:focus-visible){outline:none;}.mantine-4hkr0j:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-4hkr0j:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-4hkr0j:hover{background-color:#2C2E33;}}@media (hover: none){.mantine-4hkr0j:active{background-color:#2C2E33;}}.mantine-4hkr0j:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-4hkr0j:disabled,.mantine-4hkr0j[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-4hkr0j:disabled:active,.mantine-4hkr0j[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-4hkr0j[data-loading]{pointer-events:none;}.mantine-4hkr0j[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-6v3wa0{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:36px;padding-left:18px;padding-right:18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid #373A40;background-color:#25262b;color:#fefefe;display:block;}.mantine-6v3wa0:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-6v3wa0:focus:not(:focus-visible){outline:none;}.mantine-6v3wa0:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-6v3wa0:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-6v3wa0:hover{background-color:#2C2E33;}}@media (hover: none){.mantine-6v3wa0:active{background-color:#2C2E33;}}.mantine-6v3wa0:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-6v3wa0:disabled,.mantine-6v3wa0[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-6v3wa0:disabled:active,.mantine-6v3wa0[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-6v3wa0[data-loading]{pointer-events:none;}.mantine-6v3wa0[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}@container (min-width: 992px) and (max-width: 1440px){.mantine-6v3wa0{display:none;}}.mantine-6ioo7t{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:36px;padding-left:18px;padding-right:18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid #373A40;background-color:#25262b;color:#fefefe;background-color:rgba(140, 233, 154, 0.1);background-image:linear-gradient(90deg, rgba(105, 219, 124, 0), rgba(105, 219, 124, 0.1), rgba(105, 219, 124, 0));-webkit-background-size:50px;background-size:50px;-webkit-background-position:-300% 50%;background-position:-300% 50%;background-repeat:no-repeat;color:#8ce99a;-webkit-animation:button-highlight 5s linear infinite;animation:button-highlight 5s linear infinite;will-change:background-position;}.mantine-6ioo7t:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-6ioo7t:focus:not(:focus-visible){outline:none;}.mantine-6ioo7t:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-6ioo7t:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-6ioo7t:hover{background-color:#2C2E33;}}@media (hover: none){.mantine-6ioo7t:active{background-color:#2C2E33;}}.mantine-6ioo7t:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-6ioo7t:disabled,.mantine-6ioo7t[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-6ioo7t:disabled:active,.mantine-6ioo7t[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-6ioo7t[data-loading]{pointer-events:none;}.mantine-6ioo7t[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-im3jxi{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:36px;padding-left:18px;padding-right:18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:32px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:transparent;color:#e9ecef;padding:8px 10px 8px 16px;font-size:16px;font-weight:500;display:none;}.mantine-im3jxi:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-im3jxi:focus:not(:focus-visible){outline:none;}.mantine-im3jxi:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-im3jxi:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-im3jxi:hover{background-color:rgba(52, 58, 64, 0.2);}}@media (hover: none){.mantine-im3jxi:active{background-color:rgba(52, 58, 64, 0.2);}}.mantine-im3jxi:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-im3jxi:disabled,.mantine-im3jxi[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-im3jxi:disabled:active,.mantine-im3jxi[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-im3jxi[data-loading]{pointer-events:none;}.mantine-im3jxi[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:32px;cursor:not-allowed;}.mantine-im3jxi[data-active="true"]{background:#373A40;color:#fefefe;}@container (min-width: 992px) and (max-width: 1440px){.mantine-im3jxi{display:block;}}.mantine-1eod8xg{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:16px;}.mantine-1eod8xg>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-386jen{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:10px;}.mantine-1u5ck20{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:4px;}.mantine-1u5ck20>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-v5o495{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:36px;padding-left:18px;padding-right:18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:#1971c2;color:#fefefe;padding-right:10px;padding-left:10px;}.mantine-v5o495:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-v5o495:focus:not(:focus-visible){outline:none;}.mantine-v5o495:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-v5o495:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-v5o495:hover{background-color:#1864ab;}}@media (hover: none){.mantine-v5o495:active{background-color:#1864ab;}}.mantine-v5o495:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-v5o495:disabled,.mantine-v5o495[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-v5o495:disabled:active,.mantine-v5o495[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-v5o495[data-loading]{pointer-events:none;}.mantine-v5o495[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-ljqvxq{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;color:inherit;font-size:inherit;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;}.mantine-ljqvxq:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-ljqvxq:focus:not(:focus-visible){outline:none;}.mantine-usl46c{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:30px;padding-left:14px;padding-right:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:transparent;color:#e9ecef;}.mantine-usl46c:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-usl46c:focus:not(:focus-visible){outline:none;}.mantine-usl46c:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-usl46c:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-usl46c:hover{background-color:rgba(52, 58, 64, 0.2);}}@media (hover: none){.mantine-usl46c:active{background-color:rgba(52, 58, 64, 0.2);}}.mantine-usl46c:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-usl46c:disabled,.mantine-usl46c[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-usl46c:disabled:active,.mantine-usl46c[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-usl46c[data-loading]{pointer-events:none;}.mantine-usl46c[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-3l9jp8{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;border:1px solid transparent;background-color:transparent;color:#e9ecef;position:relative;height:34px;min-height:34px;width:34px;min-width:34px;border-radius:32px;padding:0;line-height:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}.mantine-3l9jp8:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-3l9jp8:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-3l9jp8:hover{background-color:rgba(52, 58, 64, 0.2);}}@media (hover: none){.mantine-3l9jp8:active{background-color:rgba(52, 58, 64, 0.2);}}.mantine-3l9jp8:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-3l9jp8:disabled,.mantine-3l9jp8[data-disabled]{color:#868e96;cursor:not-allowed;background-color:#343a40;border-color:#343a40;background-image:none;pointer-events:none;}.mantine-3l9jp8:disabled:active,.mantine-3l9jp8[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-3l9jp8[data-loading]{pointer-events:none;}.mantine-3l9jp8[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:32px;cursor:not-allowed;}.mantine-8wi0qm{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:30px;padding-left:14px;padding-right:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:rgba(240, 140, 0, 0.2);color:#ffec99;padding-left:4px;padding-right:10px;}.mantine-8wi0qm:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-8wi0qm:focus:not(:focus-visible){outline:none;}.mantine-8wi0qm:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-8wi0qm:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-8wi0qm:hover{background-color:rgba(245, 159, 0, 0.25);}}@media (hover: none){.mantine-8wi0qm:active{background-color:rgba(245, 159, 0, 0.25);}}.mantine-8wi0qm:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-8wi0qm:disabled,.mantine-8wi0qm[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-8wi0qm:disabled:active,.mantine-8wi0qm[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-8wi0qm[data-loading]{pointer-events:none;}.mantine-8wi0qm[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-54g21i{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:10px;}.mantine-54g21i>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-fui8ih{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:16px;}.mantine-1wz44l4{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;gap:16px;}.mantine-1wz44l4>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-hghrbz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:0;}.mantine-xqh1pl{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;color:inherit;font-size:16px;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;font-weight:500;vertical-align:middle;-webkit-filter:drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.8));filter:drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.8));}.mantine-xqh1pl:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-xqh1pl:focus:not(:focus-visible){outline:none;}.mantine-19fb38l{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;color:inherit;font-size:14px;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;}.mantine-19fb38l:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-19fb38l:focus:not(:focus-visible){outline:none;}.mantine-h9iq4m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.mantine-8od8ev{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}.mantine-1dib7ec{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:8px;}.mantine-1dib7ec>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-1qn9423{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;color:inherit;font-weight:inherit;}.mantine-1qn9423:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-1qn9423:focus:not(:focus-visible){outline:none;}.mantine-14ggdt4{outline:0;-webkit-tap-highlight-color:transparent;display:block;-webkit-text-decoration:none;text-decoration:none;color:#C1C2C5;background-color:#1A1B1E;box-sizing:border-box;border-radius:4px;box-shadow:none;border:1px solid #373A40;position:relative;overflow:hidden;background-color:#25262b;padding:16px;}.mantine-i2fjw4{display:block;margin-left:-16px;margin-right:-16px;}.mantine-i2fjw4+.mantine-i2fjw4{border-top:0;}.mantine-i2fjw4[data-first]{margin-top:-16px;border-top:0;}.mantine-i2fjw4[data-last]{margin-bottom:-16px;border-bottom:0;}.mantine-1ercgiq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:16px;padding:16px;}.mantine-99b9qu{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;gap:16px;min-height:60px;}.mantine-99b9qu>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-5f6x53{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:16px;}.mantine-5f6x53>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-13zrjjj{background:rgba(16, 17, 19, 0.8);margin:-16px;margin-top:0;min-height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;color:#fefefe;z-index:10;}.mantine-x34uy1{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:10px;padding:16px;padding-top:10px;padding-bottom:10px;position:relative;padding-top:8px;padding-bottom:8px;height:100%;}.mantine-ax3msv{position:absolute;bottom:4px;overflow:visible;}.mantine-1dpxm8v{outline:0;-webkit-tap-highlight-color:transparent;display:block;-webkit-text-decoration:none;text-decoration:none;color:#C1C2C5;background-color:#1A1B1E;box-sizing:border-box;border-radius:4px;box-shadow:none;width:60px;height:60px;}.mantine-1rd7807{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:0;margin-left:70px;}.mantine-w3eg8i{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;color:#909296;font-size:12px;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;}.mantine-w3eg8i:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-w3eg8i:focus:not(:focus-visible){outline:none;}.mantine-sxjlki{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:30px;padding-left:14px;padding-right:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:32px;font-weight:600;position:relative;line-height:1;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:#343a40;color:#fefefe;font-size:12px;font-weight:600;line-height:1.5;color:#FC9C2D;padding-left:8px;padding-right:8px;width:32px;height:32px;}.mantine-sxjlki:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-sxjlki:focus:not(:focus-visible){outline:none;}.mantine-sxjlki:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-sxjlki:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-sxjlki:hover{background-color:#212529;}}@media (hover: none){.mantine-sxjlki:active{background-color:#212529;}}.mantine-sxjlki:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-sxjlki:disabled,.mantine-sxjlki[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-sxjlki:disabled:active,.mantine-sxjlki[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-sxjlki[data-loading]{pointer-events:none;}.mantine-sxjlki[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:32px;cursor:not-allowed;}.mantine-j5xtyu{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:30px;padding-left:14px;padding-right:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:32px;font-weight:600;position:relative;line-height:1;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:#1971c2;color:#fefefe;font-size:12px;font-weight:600;line-height:1.5;padding-right:12px;padding-left:12px;height:32px;}.mantine-j5xtyu:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-j5xtyu:focus:not(:focus-visible){outline:none;}.mantine-j5xtyu:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-j5xtyu:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-j5xtyu:hover{background-color:#1864ab;}}@media (hover: none){.mantine-j5xtyu:active{background-color:#1864ab;}}.mantine-j5xtyu:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-j5xtyu:disabled,.mantine-j5xtyu[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-j5xtyu:disabled:active,.mantine-j5xtyu[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-j5xtyu[data-loading]{pointer-events:none;}.mantine-j5xtyu[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:32px;cursor:not-allowed;}.mantine-91sm8x{position:relative;height:100%;}.mantine-1hxnf01{margin:0;height:100%;}.mantine-840jf0{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;display:block;width:100%;height:100%;border:0;border-radius:0;object-fit:cover;height:100%!important;}.mantine-12tyuap{width:100%;height:100%;position:absolute;top:0;left:0;}.mantine-hhfxu9{border:0;border-top-width:1px;border-top-color:#373A40;border-top-style:solid;margin:0;}.mantine-zyu68o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:10px;}.mantine-145h3id{margin-right:calc(10px / 2);line-height:1;margin-right:4px;}.mantine-1f0fmog{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;color:inherit;font-size:inherit;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;font-size:16px;}.mantine-1f0fmog:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-1f0fmog:focus:not(:focus-visible){outline:none;}@container (width < 992px){.mantine-1f0fmog{font-size:14px;}}.mantine-agabl4{border-radius:4px;background-color:#25262b;border:1px solid transparent;-webkit-transition:background-color 150ms ease;transition:background-color 150ms ease;overflow:hidden;border-color:#373A40;box-shadow:0 1px 3px rgba(0, 0, 0, 0.05),rgba(0, 0, 0, 0.05) 0px 10px 15px -5px,rgba(0, 0, 0, 0.04) 0px 7px 7px -5px;}.mantine-agabl4+.mantine-agabl4{margin-top:16px;}.mantine-agabl4[data-active]{background-color:#1A1B1E;border-color:#373A40;}.mantine-r9y4tq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-right:12px;margin-left:0;}.mantine-1h6pkea{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-transition:-webkit-transform 200ms ease;transition:transform 200ms ease;margin-right:0;margin-left:20px;width:24px;min-width:24px;}.mantine-1h6pkea[data-rotate]{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);}.mantine-pildck{color:inherit;font-weight:400;-webkit-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;}.mantine-17tws88{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding:16px 8px;padding-left:calc(12px + 4px);text-align:left;color:#C1C2C5;padding:12px;}.mantine-17tws88:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-17tws88:focus:not(:focus-visible){outline:none;}.mantine-17tws88:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-17tws88:focus:not(:focus-visible){outline:none;}.mantine-17tws88:disabled{opacity:0.4;cursor:not-allowed;}@media (hover: hover){.mantine-17tws88:disabled:hover{background-color:transparent;}}@media (hover: none){.mantine-17tws88:disabled:active{background-color:transparent;}}.mantine-1dn2tzg{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;gap:16px;}.mantine-1dn2tzg>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}.mantine-1ja8oh8{padding:16px;padding-top:calc(10px / 2);padding:0;}.mantine-1supnlp{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;word-break:break-word;line-height:1.55;}.mantine-1uhluxa{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;color:#C1C2C5;line-height:1.55;font-size:16px;}@media (max-width: 755px){.mantine-1uhluxa{font-size:14px;}}.mantine-1uhluxa h1{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin-top:calc(24px * 1.3);margin-bottom:12px;font-size:34px;line-height:1.3;}@media (max-width: 755px){.mantine-1uhluxa h1{font-size:26.153846153846153px;}}.mantine-1uhluxa h2{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin-top:calc(24px * 1.35);margin-bottom:12px;font-size:26px;line-height:1.35;}@media (max-width: 755px){.mantine-1uhluxa h2{font-size:20px;}}.mantine-1uhluxa h3{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin-top:calc(24px * 1.4);margin-bottom:12px;font-size:22px;line-height:1.4;}@media (max-width: 755px){.mantine-1uhluxa h3{font-size:16.923076923076923px;}}.mantine-1uhluxa h4{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin-top:calc(24px * 1.45);margin-bottom:12px;font-size:18px;line-height:1.45;}@media (max-width: 755px){.mantine-1uhluxa h4{font-size:13.846153846153845px;}}.mantine-1uhluxa h5{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin-top:calc(24px * 1.5);margin-bottom:12px;font-size:16px;line-height:1.5;}@media (max-width: 755px){.mantine-1uhluxa h5{font-size:12.307692307692307px;}}.mantine-1uhluxa h6{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin-top:calc(24px * 1.5);margin-bottom:12px;font-size:14px;line-height:1.5;}@media (max-width: 755px){.mantine-1uhluxa h6{font-size:10.769230769230768px;}}.mantine-1uhluxa .ql-align-center{text-align:center;}.mantine-1uhluxa .ql-align-right{text-align:right;}.mantine-1uhluxa .ql-align-left{text-align:left;}.mantine-1uhluxa img{max-width:100%;margin-bottom:10px;}.mantine-1uhluxa p{margin-top:0;margin-bottom:20px;}.mantine-1uhluxa mark{background-color:#fcc419;color:#101113;}.mantine-1uhluxa hr{margin-top:16px;margin-bottom:12px;border-bottom:0;border-left:0;border-right:0;border-top:1px dashed #ced4da;}.mantine-1uhluxa a{-webkit-tap-highlight-color:transparent;color:#4dabf7;-webkit-text-decoration:none;text-decoration:none;}.mantine-1uhluxa a:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-1uhluxa a:focus:not(:focus-visible){outline:none;}.mantine-1uhluxa a:hover{-webkit-text-decoration:underline;text-decoration:underline;}.mantine-1uhluxa pre{padding:10px;line-height:1.55;margin:0;margin-top:16px;margin-bottom:16px;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;border-radius:4px;background-color:#141517;}.mantine-1uhluxa pre code{background-color:transparent;padding:0;border-radius:0;color:inherit;border:0;}.mantine-1uhluxa code{line-height:1.55;padding:1px 5px;border-radius:4px;color:#C1C2C5;background-color:#101113;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;border:1px solid #101113;}.mantine-1uhluxa ul,.mantine-1uhluxa ol{margin-bottom:16px;padding-left:38px;}.mantine-1uhluxa ul li,.mantine-1uhluxa ol li{margin-top:10px;}.mantine-1uhluxa table{width:100%;border-collapse:collapse;caption-side:bottom;margin-bottom:16px;}.mantine-1uhluxa table caption{margin-top:10px;font-size:14px;color:#909296;}.mantine-1uhluxa table th{text-align:left;font-weight:bold;color:#C1C2C5;font-size:14px;padding:7px 10px;}.mantine-1uhluxa table thead th{border-bottom:1px solid #373A40;}.mantine-1uhluxa table tfoot th{border-top:1px solid #373A40;}.mantine-1uhluxa table td{padding:7px 10px;border-bottom:1px solid #373A40;font-size:14px;}.mantine-1uhluxa table tr:last-of-type td{border-bottom:none;}.mantine-1uhluxa blockquote{font-size:18px;line-height:1.55;margin:16px 0;border-top-right-radius:4px;border-bottom-right-radius:4px;padding:16px 20px;color:#C1C2C5;border-left:6px solid #373A40;}.mantine-1uhluxa blockquote cite{display:block;font-size:14px;margin-top:10px;color:#909296;overflow:hidden;text-overflow:ellipsis;}.mantine-1uhluxa p:last-of-type{margin-bottom:0;}.mantine-1uhluxa p{word-break:break-word;}.mantine-1uhluxa iframe{border:none;}.mantine-1uhluxa code{white-space:break-spaces;}.mantine-1uhluxa div[data-type="instagram"]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:769px;}.mantine-1uhluxa div[data-type="instagram"]>iframe{width:50%;overflow:hidden;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@container (width < 992px){.mantine-1uhluxa div[data-type="instagram"]{height:649px;}}@container (width < 768px){.mantine-1uhluxa div[data-type="instagram"]{height:681px;}.mantine-1uhluxa div[data-type="instagram"]>iframe{width:100%;}}.mantine-1uhluxa div[data-type="strawPoll"]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:480px;}.mantine-1uhluxa div[data-type="strawPoll"]>iframe{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}.mantine-1uhluxa h1:before,.mantine-1uhluxa h2:before,.mantine-1uhluxa h3:before{display:block;content:"";margin-top:-70px;height:80px;visibility:hidden;}.mantine-1uhluxa hr{height:4px;padding:0;margin:24px 0;background-color:#373A40;border:0;}.mantine-ct6e7{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;border:1px solid transparent;background-color:transparent;color:#e9ecef;position:relative;height:28px;min-height:28px;width:28px;min-width:28px;border-radius:4px;padding:0;line-height:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}.mantine-ct6e7:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-ct6e7:focus:not(:focus-visible){outline:none;}.mantine-ct6e7:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-ct6e7:disabled,.mantine-ct6e7[data-disabled]{color:#868e96;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-ct6e7:disabled:active,.mantine-ct6e7[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-ct6e7[data-loading]{pointer-events:none;}.mantine-ct6e7[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-1o6w1nh{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:36px;padding-left:18px;padding-right:18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:4px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:rgba(47, 158, 68, 0.2);color:#b2f2bb;}.mantine-1o6w1nh:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-1o6w1nh:focus:not(:focus-visible){outline:none;}.mantine-1o6w1nh:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-1o6w1nh:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-1o6w1nh:hover{background-color:rgba(55, 178, 77, 0.25);}}@media (hover: none){.mantine-1o6w1nh:active{background-color:rgba(55, 178, 77, 0.25);}}.mantine-1o6w1nh:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-1o6w1nh:disabled,.mantine-1o6w1nh[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-1o6w1nh:disabled:active,.mantine-1o6w1nh[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-1o6w1nh[data-loading]{pointer-events:none;}.mantine-1o6w1nh[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-kiwnw1{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;color:inherit;font-size:24px;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;}.mantine-kiwnw1:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-kiwnw1:focus:not(:focus-visible){outline:none;}.mantine-fjh1u7{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:22px;padding-left:7px;padding-right:7px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:2px;font-weight:600;position:relative;line-height:1;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:transparent;color:#e9ecef;padding-right:0;padding-left:0;}.mantine-fjh1u7:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-fjh1u7:focus:not(:focus-visible){outline:none;}.mantine-fjh1u7:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-fjh1u7:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-fjh1u7:hover{background-color:rgba(52, 58, 64, 0.2);}}@media (hover: none){.mantine-fjh1u7:active{background-color:rgba(52, 58, 64, 0.2);}}.mantine-fjh1u7:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-fjh1u7:disabled,.mantine-fjh1u7[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-fjh1u7:disabled:active,.mantine-fjh1u7[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-fjh1u7[data-loading]{pointer-events:none;}.mantine-fjh1u7[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:2px;cursor:not-allowed;}.mantine-1qlxz9s{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:0;}.mantine-pgfohq{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;color:inherit;font-size:inherit;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-weight:700;font-size:26px;line-height:1.35;margin:0;}.mantine-pgfohq:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-pgfohq:focus:not(:focus-visible){outline:none;}.mantine-g090tt{padding-left:16px;padding-right:16px;max-width:1320px;margin-left:auto;margin-right:auto;position:relative;}.mantine-159pivy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:8px;margin-bottom:24px;}.mantine-6porwj{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;color:inherit;font-size:inherit;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-weight:bold;font-size:34px;line-height:1.3;margin:0;word-break:break-word;}.mantine-6porwj:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-6porwj:focus:not(:focus-visible){outline:none;}@container (width < 992px){.mantine-6porwj{font-size:28.799999999999997px;width:100%;padding-bottom:0;}}.mantine-1uvkvh9{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:16px;gap:10px;}.mantine-1uvkvh9>*{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}@container (width < 992px){.mantine-1uvkvh9{gap:4px;}}.mantine-l3uf47{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;border:1px solid transparent;background-color:transparent;color:#e9ecef;position:relative;height:28px;min-height:28px;width:28px;min-width:28px;border-radius:4px;padding:0;line-height:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0;}.mantine-l3uf47:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-l3uf47:focus:not(:focus-visible){outline:none;}.mantine-l3uf47:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-l3uf47:disabled,.mantine-l3uf47[data-disabled]{color:#868e96;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-l3uf47:disabled:active,.mantine-l3uf47[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-l3uf47[data-loading]{pointer-events:none;}.mantine-l3uf47[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:4px;cursor:not-allowed;}.mantine-1l15trw{outline:0;-webkit-tap-highlight-color:transparent;display:block;-webkit-text-decoration:none;text-decoration:none;color:#C1C2C5;background-color:#1A1B1E;box-sizing:border-box;border-radius:4px;box-shadow:none;width:26px;height:26px;}.mantine-7c8fqu{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;color:inherit;font-size:14px;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;font-weight:500;vertical-align:middle;-webkit-filter:drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.8));filter:drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.8));}.mantine-7c8fqu:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-7c8fqu:focus:not(:focus-visible){outline:none;}.mantine-1jt6jod{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;color:#909296;font-size:14px;line-height:1.55;-webkit-text-decoration:none;text-decoration:none;}.mantine-1jt6jod:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-1jt6jod:focus:not(:focus-visible){outline:none;}.mantine-149q2jl{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:10px;height:18px;line-height:16px;-webkit-text-decoration:none;text-decoration:none;padding:0 8px;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:auto;text-transform:uppercase;border-radius:4px;font-weight:700;letter-spacing:0.25px;cursor:inherit;text-overflow:ellipsis;overflow:hidden;background:linear-gradient(45deg, #0c8599 0%, #1971c2 100%);color:#fefefe;border:0px solid transparent;cursor:pointer;}.mantine-149q2jl:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-149q2jl:focus:not(:focus-visible){outline:none;}.mantine-u0eh0m{margin:-12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}.mantine-rwe9kh{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;padding:12px;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:100%;}@media (min-width: 576px){.mantine-rwe9kh{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:100%;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}}@media (min-width: 768px){.mantine-rwe9kh{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 992px){.mantine-rwe9kh{-webkit-flex-basis:66.66666666666667%;-ms-flex-preferred-size:66.66666666666667%;flex-basis:66.66666666666667%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:66.66666666666667%;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}}@media (min-width: 1200px){.mantine-rwe9kh{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 1400px){.mantine-rwe9kh{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}.mantine-15qu6j{position:relative;max-width:100%;}.mantine-15qu6j::before{content:"";height:0;display:block;padding-bottom:47.05882352941176%;}.mantine-15qu6j::after{content:"";display:table;clear:both;}.mantine-15qu6j>*:not(style){overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;}.mantine-15qu6j>img,.mantine-15qu6j>video{object-fit:cover;}.mantine-85sv9h{cursor:pointer;}.mantine-s235hf{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:13px;height:26px;line-height:24px;-webkit-text-decoration:none;text-decoration:none;padding:0 13.333333333333334px;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:auto;text-transform:uppercase;border-radius:4px;font-weight:700;letter-spacing:0.25px;cursor:inherit;text-overflow:ellipsis;overflow:hidden;background:rgba(52, 58, 64, 0.2);color:#e9ecef;border:1px solid transparent;padding-left:3px;padding-right:5px;cursor:pointer;height:28px;}.mantine-s235hf:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-s235hf:focus:not(:focus-visible){outline:none;}.mantine-1k5iso9{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;padding:12px;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:100%;}@media (min-width: 576px){.mantine-1k5iso9{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:100%;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}}@media (min-width: 768px){.mantine-1k5iso9{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 992px){.mantine-1k5iso9{-webkit-flex-basis:33.333333333333336%;-ms-flex-preferred-size:33.333333333333336%;flex-basis:33.333333333333336%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:33.333333333333336%;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;}}@media (min-width: 1200px){.mantine-1k5iso9{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}@media (min-width: 1400px){.mantine-1k5iso9{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}}.mantine-16gcn8l{position:-webkit-sticky;position:sticky;top:94px;}.mantine-cqtzff{box-sizing:border-box;display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));gap:2px 2px;}.mantine-12u8tet{outline:0;-webkit-tap-highlight-color:transparent;display:block;-webkit-text-decoration:none;text-decoration:none;color:#C1C2C5;background-color:#1A1B1E;box-sizing:border-box;border-radius:0;box-shadow:none;position:relative;overflow:hidden;background-color:#25262b;padding:16px;padding-top:10px;padding-bottom:10px;}.mantine-12u8tet:hover{background-color:rgba(65, 68, 74, 1);}.mantine-qxbfkk{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;gap:24px;margin-top:24px;}.mantine-17vtj7s{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;cursor:pointer;border:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font-size:16px;background-color:transparent;text-align:left;color:#C1C2C5;-webkit-text-decoration:none;text-decoration:none;box-sizing:border-box;height:26px;padding-left:8px;padding-right:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-tap-highlight-color:transparent;display:inline-block;width:auto;border-radius:32px;font-weight:600;position:relative;line-height:1;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;background-color:#343a40;color:#fefefe;}.mantine-17vtj7s:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-17vtj7s:focus:not(:focus-visible){outline:none;}.mantine-17vtj7s:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-17vtj7s:focus:not(:focus-visible){outline:none;}@media (hover: hover){.mantine-17vtj7s:hover{background-color:#212529;}}@media (hover: none){.mantine-17vtj7s:active{background-color:#212529;}}.mantine-17vtj7s:active{-webkit-transform:translateY(1px);-moz-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px);}.mantine-17vtj7s:disabled,.mantine-17vtj7s[data-disabled]{border-color:transparent;background-color:#373A40;color:#25262b;cursor:not-allowed;background-image:none;pointer-events:none;}.mantine-17vtj7s:disabled:active,.mantine-17vtj7s[data-disabled]:active{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}.mantine-17vtj7s[data-loading]{pointer-events:none;}.mantine-17vtj7s[data-loading]::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-color:rgba(26, 27, 30, 0.5);border-radius:32px;cursor:not-allowed;}.mantine-8mcs4{margin-top:24px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}.mantine-nvfdhm{-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:11px;height:20px;line-height:18px;-webkit-text-decoration:none;text-decoration:none;padding:0 10.666666666666666px;box-sizing:border-box;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:auto;text-transform:uppercase;border-radius:4px;font-weight:700;letter-spacing:0.25px;cursor:inherit;text-overflow:ellipsis;overflow:hidden;background:#343a40;color:#fefefe;border:1px solid transparent;cursor:pointer;}.mantine-nvfdhm:focus{outline-offset:2px;outline:2px solid #1c7ed6;}.mantine-nvfdhm:focus:not(:focus-visible){outline:none;}.mantine-zav0aj{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;width:32px;height:32px;min-width:32px;min-height:32px;border-radius:4px;background-color:rgba(25, 113, 194, 0.2);color:#a5d8ff;border:1px solid transparent;background-color:transparent;}</style><style data-emotion="mantine" data-s=""></style><meta name="viewport" content="maximum-scale=1, initial-scale=1, width=device-width"><link rel="manifest" href="https://civitai.com/site.webmanifest"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="6a97888e-site-verification" content="f517e489c958cfe10876b8f7daa294c2"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2048-2732.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2732-2048.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1668-2388.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2388-1668.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1536-2048.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2048-1536.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1668-2224.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2224-1668.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1620-2160.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2160-1620.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1290-2796.jpg" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2796-1290.jpg" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1179-2556.jpg" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2556-1179.jpg" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1284-2778.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2778-1284.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1170-2532.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2532-1170.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1125-2436.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2436-1125.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1242-2688.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2688-1242.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-828-1792.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1792-828.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1242-2208.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-2208-1242.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-750-1334.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1334-750.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-640-1136.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-1136-640.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2048-2732.jpg" media="(prefers-color-scheme: dark) and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2732-2048.jpg" media="(prefers-color-scheme: dark) and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1668-2388.jpg" media="(prefers-color-scheme: dark) and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2388-1668.jpg" media="(prefers-color-scheme: dark) and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1536-2048.jpg" media="(prefers-color-scheme: dark) and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2048-1536.jpg" media="(prefers-color-scheme: dark) and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1668-2224.jpg" media="(prefers-color-scheme: dark) and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2224-1668.jpg" media="(prefers-color-scheme: dark) and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1620-2160.jpg" media="(prefers-color-scheme: dark) and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2160-1620.jpg" media="(prefers-color-scheme: dark) and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1290-2796.jpg" media="(prefers-color-scheme: dark) and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2796-1290.jpg" media="(prefers-color-scheme: dark) and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1179-2556.jpg" media="(prefers-color-scheme: dark) and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2556-1179.jpg" media="(prefers-color-scheme: dark) and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1284-2778.jpg" media="(prefers-color-scheme: dark) and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2778-1284.jpg" media="(prefers-color-scheme: dark) and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1170-2532.jpg" media="(prefers-color-scheme: dark) and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2532-1170.jpg" media="(prefers-color-scheme: dark) and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1125-2436.jpg" media="(prefers-color-scheme: dark) and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2436-1125.jpg" media="(prefers-color-scheme: dark) and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1242-2688.jpg" media="(prefers-color-scheme: dark) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2688-1242.jpg" media="(prefers-color-scheme: dark) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-828-1792.jpg" media="(prefers-color-scheme: dark) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1792-828.jpg" media="(prefers-color-scheme: dark) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1242-2208.jpg" media="(prefers-color-scheme: dark) and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-2208-1242.jpg" media="(prefers-color-scheme: dark) and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-750-1334.jpg" media="(prefers-color-scheme: dark) and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1334-750.jpg" media="(prefers-color-scheme: dark) and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-640-1136.jpg" media="(prefers-color-scheme: dark) and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><link rel="apple-touch-startup-image" href="https://civitai.com/images/splash/apple-splash-dark-1136-640.jpg" media="(prefers-color-scheme: dark) and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><link rel="icon" href="https://civitai.com/favicon-blue.ico" type="image/x-icon"><title>Update 1/10/2025: Prompt Architect for Stable Diffusion A1111 & Forge | Civitai</title><meta name="title" content="Update 1/10/2025: Prompt Architect for Stable Diffusion A1111 & Forge | Civitai"><meta property="og:title" content="Update 1/10/2025: Prompt Architect for Stable Diffusion A1111 & Forge | Civitai"><meta property="twitter:title" content="Update 1/10/2025: Prompt Architect for Stable Diffusion A1111 & Forge | Civitai"><meta name="description" content="Update 1/10/2025: Added Forge Implementation: Essentially - to work with forge you need to add in the SDConditioning for distilled_cfg_scale=None s..."><meta property="og:description" content="Update 1/10/2025: Added Forge Implementation: Essentially - to work with forge you need to add in the SDConditioning for distilled_cfg_scale=None s..."><meta property="twitter:description" content="Update 1/10/2025: Added Forge Implementation: Essentially - to work with forge you need to add in the SDConditioning for distilled_cfg_scale=None s..."><meta property="og:type" content="website"><meta property="twitter:card" content="summary_large_image"><meta property="og:image" content="https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d3155763-b2a9-407d-9491-27d4abd655ff/width=1200/d3155763-b2a9-407d-9491-27d4abd655ff.jpeg"><meta property="twitter:image" content="https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d3155763-b2a9-407d-9491-27d4abd655ff/width=1200/d3155763-b2a9-407d-9491-27d4abd655ff.jpeg"><meta name="robots" content="max-image-preview:large"><link href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge" rel="canonical"><link href="https://civitai.com/articles/9140" rel="alternate"><meta name="next-head-count" content="80"><link rel="preload" href="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/3a22943a327205d7.css" as="style"><link rel="stylesheet" href="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/3a22943a327205d7.css" data-n-g=""><noscript data-n-css=""></noscript><script async="" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/wrap.js.Без названия"></script><script type="text/javascript" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/config.js.Без названия" async=""></script><script defer="" nomodule="" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/polyfills-78c92fac7aa8fdd8.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/webpack-75d207c2ca8cdede.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/framework-121e8c812f181e3f.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/main-9858d3550132a6e0.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/_app-64f6f1f01f14899b.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/4281-cfaa52ff327593bf.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/2273-1e52b37458ef3fcf.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/9409-0e74177f8cb65007.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/[[...slug]]-0e31d766a41d26f3.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/_buildManifest.js.Без названия" defer=""></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/_ssgManifest.js.Без названия" defer=""></script><style data-emotion="mantine-global animation-1rclr57" data-s="">@-webkit-keyframes animation-1rclr57{from{box-shadow:0 0 0.5px 0 #1971c2;opacity:0.6;}to{box-shadow:0 0 0.5px 4.4px #1971c2;opacity:0;}}@keyframes animation-1rclr57{from{box-shadow:0 0 0.5px 0 #1971c2;opacity:0.6;}to{box-shadow:0 0 0.5px 4.4px #1971c2;opacity:0;}}</style><style data-emotion="mantine-global animation-iavvt2" data-s="">@-webkit-keyframes animation-iavvt2{from{box-shadow:0 0 0.5px 0 #e03131;opacity:0.6;}to{box-shadow:0 0 0.5px 4.4px #e03131;opacity:0;}}@keyframes animation-iavvt2{from{box-shadow:0 0 0.5px 0 #e03131;opacity:0.6;}to{box-shadow:0 0 0.5px 4.4px #e03131;opacity:0;}}</style><style data-emotion="mantine-global animation-151xhna" data-s="">@-webkit-keyframes animation-151xhna{from,to{opacity:0.4;}50%{opacity:1;}}@keyframes animation-151xhna{from,to{opacity:0.4;}50%{opacity:1;}}</style><style data-emotion="mantine-global animation-p46y6l" data-s="">@-webkit-keyframes animation-p46y6l{to{width:100%;opacity:0.3;}}@keyframes animation-p46y6l{to{width:100%;opacity:0.3;}}</style><style data-emotion="mantine-global animation-f1cmpm" data-s="">@-webkit-keyframes animation-f1cmpm{0%{opacity:1;}100%{opacity:0;}}@keyframes animation-f1cmpm{0%{opacity:1;}100%{opacity:0;}}</style><style data-emotion="mantine-global animation-13t723b" data-s="">@-webkit-keyframes animation-13t723b{0%{-webkit-background-position:0% 50%;background-position:0% 50%;}50%{-webkit-background-position:100% 50%;background-position:100% 50%;}100%{-webkit-background-position:0% 50%;background-position:0% 50%;}}@keyframes animation-13t723b{0%{-webkit-background-position:0% 50%;background-position:0% 50%;}50%{-webkit-background-position:100% 50%;background-position:100% 50%;}100%{-webkit-background-position:0% 50%;background-position:0% 50%;}}</style><style data-emotion="mantine-global animation-fe87cb" data-s="">@-webkit-keyframes animation-fe87cb{0%{stroke:#FFD43B;opacity:1;}50%{stroke:#F59F00;opacity:0.7;}100%{stroke:#F08C00;opacity:1;}}@keyframes animation-fe87cb{0%{stroke:#FFD43B;opacity:1;}50%{stroke:#F59F00;opacity:0.7;}100%{stroke:#F08C00;opacity:1;}}</style><style data-emotion="mantine-global animation-ik9yhx" data-s="">@-webkit-keyframes animation-ik9yhx{from{box-shadow:0 0 0.5px 0 #228be6;opacity:0.6;}to{box-shadow:0 0 0.5px 4.4px #228be6;opacity:0;}}@keyframes animation-ik9yhx{from{box-shadow:0 0 0.5px 0 #228be6;opacity:0.6;}to{box-shadow:0 0 0.5px 4.4px #228be6;opacity:0;}}</style><style data-emotion="mantine-global animation-1pidz2s" data-s="">@-webkit-keyframes animation-1pidz2s{from{box-shadow:0 0 0.5px 0 #fa5252;opacity:0.6;}to{box-shadow:0 0 0.5px 4.4px #fa5252;opacity:0;}}@keyframes animation-1pidz2s{from{box-shadow:0 0 0.5px 0 #fa5252;opacity:0.6;}to{box-shadow:0 0 0.5px 4.4px #fa5252;opacity:0;}}</style><style data-emotion="mantine-global animation-y1jct1" data-s="">@-webkit-keyframes animation-y1jct1{from{-webkit-transform:translateY(-60%);-moz-transform:translateY(-60%);-ms-transform:translateY(-60%);transform:translateY(-60%);opacity:0;}to{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);opacity:1;}}@keyframes animation-y1jct1{from{-webkit-transform:translateY(-60%);-moz-transform:translateY(-60%);-ms-transform:translateY(-60%);transform:translateY(-60%);opacity:0;}to{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);opacity:1;}}</style><style data-emotion="mantine-global animation-n2gits" data-s="">@-webkit-keyframes animation-n2gits{from{-webkit-transform:translateY(60%);-moz-transform:translateY(60%);-ms-transform:translateY(60%);transform:translateY(60%);opacity:0;}to{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);opacity:1;}}@keyframes animation-n2gits{from{-webkit-transform:translateY(60%);-moz-transform:translateY(60%);-ms-transform:translateY(60%);transform:translateY(60%);opacity:0;}to{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);opacity:1;}}</style><style data-emotion="mantine-global animation-ckxm50" data-s="">@-webkit-keyframes animation-ckxm50{from{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);opacity:1;}to{-webkit-transform:translateY(-60%);-moz-transform:translateY(-60%);-ms-transform:translateY(-60%);transform:translateY(-60%);opacity:0;}}@keyframes animation-ckxm50{from{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);opacity:1;}to{-webkit-transform:translateY(-60%);-moz-transform:translateY(-60%);-ms-transform:translateY(-60%);transform:translateY(-60%);opacity:0;}}</style><style data-emotion="mantine-global animation-pud11" data-s="">@-webkit-keyframes animation-pud11{from{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);opacity:1;}to{-webkit-transform:translateY(60%);-moz-transform:translateY(60%);-ms-transform:translateY(60%);transform:translateY(60%);opacity:0;}}@keyframes animation-pud11{from{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);opacity:1;}to{-webkit-transform:translateY(60%);-moz-transform:translateY(60%);-ms-transform:translateY(60%);transform:translateY(60%);opacity:0;}}</style><style data-emotion="css-global" data-s="">html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;}body{margin:0;}article,aside,footer,header,nav,section,figcaption,figure,main{display:block;}h1{font-size:2em;}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace,monospace;font-size:1em;}a{background:transparent;text-decoration-skip:objects;}a:active,a:hover{outline-width:0;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;}b,strong{font-weight:bolder;}code,kbp,samp{font-family:monospace,monospace;font-size:1em;}dfn{font-style:italic;}mark{background-color:#ff0;color:#000;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-0.5em;}sub{bottom:-0.25em;}audio,video{display:inline-block;}audio:not([controls]){display:none;height:0;}img{border-style:none;vertical-align:middle;}svg:not(:root){overflow:hidden;}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button,[type=reset],[type=submit]{-webkit-appearance:button;}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0;}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{display:inline-block;vertical-align:baseline;}textarea{overflow:auto;}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto;}[type=search]{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button;font:inherit;}details,menu{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}canvas{display:inline-block;}template{display:none;}[hidden]{display:none;}</style><style data-emotion="css-global" data-s="">*,*::before,*::after{box-sizing:border-box;}html{-webkit-print-color-scheme:dark;color-scheme:dark;}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;background-color:#1A1B1E;color:#C1C2C5;line-height:1.55;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}</style><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/paddle.js.Без названия"></script><style data-emotion="css-global" data-s=""></style><script type="text/javascript" async="" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/prebid.js.Без названия"></script><script type="text/javascript" async="" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/f.txt"></script><script type="text/javascript" async="" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/adngin.js.Без названия"></script><script type="text/javascript" async="" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/argus.js.Без названия"></script><link rel="stylesheet" type="text/css" href="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/paddle.css" media="all"><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/profitwell.js.Без названия"></script><argprec0></argprec0><argprec1></argprec1><style type="text/css">.detachVideo > iframe{height:100%!important}.detachVideo{position:fixed;z-index:60000;bottom:150px;right:10px;min-height:180px;max-height:180px}</style><style type="text/css">.snigel-cmp-framework .sn-inner {background-color:#fffefe!important;}.snigel-cmp-framework .sn-b-def {border-color:#3b82f6!important;color:#3b82f6!important;}.snigel-cmp-framework .sn-b-def.sn-blue {color:#ffffff!important;background-color:#3b82f6!important;border-color:#3b82f6!important;}.snigel-cmp-framework .sn-selector ul li {color:#3b82f6!important;}.snigel-cmp-framework .sn-selector ul li:after {background-color:#3b82f6!important;}.snigel-cmp-framework .sn-footer-tab .sn-privacy a {color:#3b82f6!important;}.snigel-cmp-framework .sn-arrow:after,.snigel-cmp-framework .sn-arrow:before {background-color:#3b82f6!important;}.snigel-cmp-framework .sn-switch input:checked + span::before {background-color:#3b82f6!important;}#adconsent-usp-link {border: 1px solid #3b82f6!important;color:#3b82f6!important;}#adconsent-usp-banner-optout input:checked + .adconsent-usp-slider {background-color:#3b82f6!important;}#adconsent-usp-banner-btn {color:#ffffff;border: solid 1px #3b82f6!important;background-color:#3b82f6!important; }</style><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/f(1).txt" async=""></script><link href="https://securepubads.g.doubleclick.net/pagead/managed/dict/m202501090101/gpt" rel="compression-dictionary"><script async="" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/22152718"></script><style data-tiptap-style="">.ProseMirror { |
| position: relative; |
| } |
| |
| .ProseMirror { |
| word-wrap: break-word; |
| white-space: pre-wrap; |
| white-space: break-spaces; |
| -webkit-font-variant-ligatures: none; |
| font-variant-ligatures: none; |
| font-feature-settings: "liga" 0; |
| } |
| |
| .ProseMirror [contenteditable="false"] { |
| white-space: normal; |
| } |
| |
| .ProseMirror [contenteditable="false"] [contenteditable="true"] { |
| white-space: pre-wrap; |
| } |
| |
| .ProseMirror pre { |
| white-space: pre-wrap; |
| } |
| |
| img.ProseMirror-separator { |
| display: inline !important; |
| border: none !important; |
| margin: 0 !important; |
| width: 1px !important; |
| height: 1px !important; |
| } |
| |
| .ProseMirror-gapcursor { |
| display: none; |
| pointer-events: none; |
| position: absolute; |
| margin: 0; |
| } |
| |
| .ProseMirror-gapcursor:after { |
| content: ""; |
| display: block; |
| position: absolute; |
| top: -2px; |
| width: 20px; |
| border-top: 1px solid black; |
| animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite; |
| } |
| |
| @keyframes ProseMirror-cursor-blink { |
| to { |
| visibility: hidden; |
| } |
| } |
| |
| .ProseMirror-hideselection *::selection { |
| background: transparent; |
| } |
| |
| .ProseMirror-hideselection *::-moz-selection { |
| background: transparent; |
| } |
| |
| .ProseMirror-hideselection * { |
| caret-color: transparent; |
| } |
| |
| .ProseMirror-focused .ProseMirror-gapcursor { |
| display: block; |
| } |
| |
| .tippy-box[data-animation=fade][data-state=hidden] { |
| opacity: 0 |
| }</style></head><body class="dark"><div id="__next"><div class="flex flex-1 overflow-hidden"><div id="main" class="relative flex h-full flex-col @container flex-1"><header class="mantine-Header-root mantine-1fwie01"><div class="h-full hidden"><div class="mantine-Group-root mantine-lq2jv0"><div class="mantine-InputWrapper-root mantine-Select-root mantine-1co4959"><div role="combobox" aria-haspopup="listbox" aria-controls="mantine-rm" aria-expanded="false" tabindex="-1" class=""><input type="hidden" value="models"><div class="mantine-Input-wrapper mantine-Select-wrapper mantine-12sbrde"><input class="mantine-Input-input mantine-Select-input mantine-1ofsywk" autocomplete="off" type="search" id="mantine-rm" aria-autocomplete="list" readonly="" data-mantine-stop-propagation="false" aria-invalid="false" value="Models"><div class="mantine-Input-rightSection mantine-Select-rightSection mantine-14dm59e"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-down "><path d="M6 9l6 6l6 -6"></path></svg></div></div></div></div><div class="mantine-InputWrapper-root mantine-Autocomplete-root mantine-1pxkbq"><div class="mantine-Autocomplete-wrapper mantine-76h2sl" role="combobox" aria-haspopup="listbox" aria-controls="mantine-ro" aria-expanded="false" tabindex="-1"><div class="mantine-Input-wrapper mantine-Autocomplete-wrapper mantine-75hr1i"><input class="mantine-Input-input mantine-Autocomplete-input mantine-14lxlol" type="search" autocomplete="off" id="mantine-ro" placeholder="Search Civitai" data-mantine-stop-propagation="false" aria-autocomplete="list" aria-invalid="false" value=""></div></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-w64bkg" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-search "><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"></path><path d="M21 21l-6 -6"></path></svg></button></div></div><div class="mantine-Grid-root flex h-full flex-nowrap items-center justify-between px-2 @md:px-4 mantine-yzuyvp"><div class="mantine-Grid-col mantine-1kinfpg"><div class="flex items-center gap-2.5"><div class="Logo_logo__5xyYV"><a href="https://civitai.com/"><svg class="Logo_svg__0CcnB @sm:hidden" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 22.7 22.7"><g><lineargradient id="innerGradient" gradientUnits="userSpaceOnUse" x1="10.156" y1="22.45" x2="10.156" y2="2.4614" gradientTransform="matrix(1 0 0 -1 0 24)"><stop offset="0" style="stop-color: rgb(8, 22, 146);"></stop><stop offset="1" style="stop-color: rgb(30, 4, 60);"></stop></lineargradient><lineargradient id="outerGradient" gradientUnits="userSpaceOnUse" x1="10.156" y1="22.45" x2="10.156" y2="2.45" gradientTransform="matrix(1 0 0 -1 0 24)"><stop offset="0" style="stop-color: rgb(18, 132, 247);"></stop><stop offset="1" style="stop-color: rgb(10, 32, 201);"></stop></lineargradient><path d="M1.5,6.6v10l8.7,5l8.7-5v-10l-8.7-5L1.5,6.6z" style="fill: url("#innerGradient");"></path><path d="M10.2,4.7l5.9,3.4V15l-5.9,3.4L4.2,15V8.1 L10.2,4.7 M10.2,1.6l-8.7,5v10l8.7,5l8.7-5v-10C18.8,6.6,10.2,1.6,10.2,1.6z" style="fill: url("#outerGradient");"></path><path d="M11.8,12.4l-1.7,1l-1.7-1v-1.9l1.7-1l1.7,1h2.1V9.3l-3.8-2.2L6.4,9.3v4.3l3.8,2.2l3.8-2.2v-1.2H11.8z" style="fill: rgb(255, 255, 255);"></path></g></svg><svg class="Logo_svg__0CcnB @max-sm:hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 107 22.7"><defs><lineargradient id="prideGradient" gradientTransform="rotate(45)"><stop offset="0%" stop-color="#E04A4A"></stop><stop offset="20%" stop-color="#E04A4A"></stop><stop offset="40%" stop-color="#E0B54A"></stop><stop offset="60%" stop-color="#4AE0D4"></stop><stop offset="80%" stop-color="#4A6AE0"></stop><stop offset="100%" stop-color="#D44AE0"></stop></lineargradient></defs><g><path class="Logo_c__5WyIP" d="M20.8,1.7H3.7L1.5,4.1v15l2.3,2.3h17.1v-5.2H6.7V7h14.1V1.7z"></path><path class="Logo_ivit__SHcJ3" d="M76.1,1.7H56.6V7h7.2v14.3H69V7h7C76,7,76.1,1.7,76.1,1.7z M23.2,1.8v19.5h5.2V1.8C28.4,1.8,23.2,1.8,23.2,1.8z M30.8,1.8 v19.5h7.6l8.3-8.3V1.8h-5.2v8.3l-5.4,6V1.8C36.1,1.8,30.8,1.8,30.8,1.8z M49.1,1.8v19.5h5.2V1.8C54.3,1.8,49.1,1.8,49.1,1.8z"></path><path class="Logo_ai__HJ7wY" d="M100.3,1.8v19.5h5.2V1.8H100.3z M95.6,1.8H80.8l-2.3,2.3v17.2h5.2v-7.1h8.9v7.1h5.2V4.1C97.8,4.1,95.6,1.8,95.6,1.8z M92.7,8.9h-8.9V7h8.9V8.9z"></path><path class="Logo_accent__l3oG0" d="M46.7,16.2v5.1h-5.1"></path></g></svg></a></div><a class="mantine-UnstyledButton-root mantine-Button-root relative z-10 cursor-pointer px-2 mantine-1o6w1nh" type="button" data-button="true" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-r4-dropdown" id="mantine-r4-target" href="https://civitai.com/pricing?utm_campaign=emoji_money"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Text-root mantine-kiwnw1">💸</div><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-right "><path d="M9 6l6 6l-6 6"></path></svg></span></div></a></div></div><div class="mantine-Grid-col @max-md:hidden mantine-r67sg8"><div class="mantine-Group-root mantine-lq2jv0"><div class="mantine-InputWrapper-root mantine-Select-root mantine-1co4959"><div role="combobox" aria-haspopup="listbox" aria-controls="mantine-rq" aria-expanded="false" tabindex="-1" class=""><input type="hidden" value="models"><div class="mantine-Input-wrapper mantine-Select-wrapper mantine-12sbrde"><input class="mantine-Input-input mantine-Select-input mantine-1ofsywk" autocomplete="off" type="search" id="mantine-rq" aria-autocomplete="list" readonly="" data-mantine-stop-propagation="false" aria-invalid="false" value="Models"><div class="mantine-Input-rightSection mantine-Select-rightSection mantine-14dm59e"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-down "><path d="M6 9l6 6l6 -6"></path></svg></div></div></div></div><div class="mantine-InputWrapper-root mantine-Autocomplete-root mantine-1pxkbq"><div class="mantine-Autocomplete-wrapper mantine-76h2sl" role="combobox" aria-haspopup="listbox" aria-controls="mantine-rs" aria-expanded="false" tabindex="-1"><div class="mantine-Input-wrapper mantine-Autocomplete-wrapper mantine-75hr1i"><input class="mantine-Input-input mantine-Autocomplete-input mantine-1cmafit" type="search" autocomplete="off" id="mantine-rs" placeholder="Search Civitai" data-mantine-stop-propagation="false" aria-autocomplete="list" aria-invalid="false" value=""><div class="mantine-1n9cu5e mantine-Input-rightSection mantine-Autocomplete-rightSection"><div class="mantine-Text-root mantine-1pacl24" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-ru-dropdown" id="mantine-ru-target">/</div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-w64bkg" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-search "><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"></path><path d="M21 21l-6 -6"></path></svg></button></div></div><div class="mantine-Grid-col flex items-center justify-end gap-3 @max-md:hidden mantine-i4bfhs"><div class="flex items-center gap-3"><div class="flex items-center" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r5-dropdown" id="mantine-r5-target"><button class="mantine-UnstyledButton-root mantine-Button-root h-auto px-3 py-2 @md:pr-1 mantine-15xbzqv" type="button" data-button="true" data-activity="create:navbar"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1gg8vod"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brush "><path d="M3 21v-4a4 4 0 1 1 4 4h-4"></path><path d="M21 3a16 16 0 0 0 -12.8 10.2"></path><path d="M21 3a16 16 0 0 1 -10.2 12.8"></path><path d="M10.6 9a9 9 0 0 1 4.4 4.4"></path></svg><div class="mantine-Text-root hide-mobile mantine-1slh3ps">Create</div></div></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root @max-md:hidden mantine-h74xig" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-down "><path d="M6 9l6 6l6 -6"></path></svg></span></div></button></div><span aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-r6-dropdown" id="mantine-r6-target" class=""><div class="mantine-150a24d"><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button"><div class="mantine-Indicator-root mantine-cf0b3j"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-screen-share "><path d="M21 12v3a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1v-10a1 1 0 0 1 1 -1h9"></path><path d="M7 20l10 0"></path><path d="M9 16l0 4"></path><path d="M15 16l0 4"></path><path d="M17 4h4v4"></path><path d="M16 9l5 -5"></path></svg></div></button></div></span><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-r7-dropdown" id="mantine-r7-target"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-eye-exclamation "><path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"></path><path d="M15.03 17.478a8.797 8.797 0 0 1 -3.03 .522c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6a20.48 20.48 0 0 1 -.258 .419"></path><path d="M19 16v3"></path><path d="M19 22v.01"></path></svg></button><div style="height: 28px;"><div class="mantine-Indicator-root mantine-gc2cx1"><div class="mantine-Indicator-indicator mantine-Indicator-common mantine-1y2cv4n"><span class="mantine-1f5d3nx mantine-machine-base"><span class="mantine-1x56ny5 mantine-MachineNumber-baseNumber"><span class="mantine-MachineNumber-oldNumber mantine-MachineNumber-currentNumberTop mantine-12xtivr">9</span><span><span class="mantine-ytwda6 mantine-MachineNumber-currentNumber">9</span></span><span class="mantine-MachineNumber-oldNumber mantine-MachineNumber-oldNumberBottom mantine-1aipvvq">9</span></span><span class="mantine-1x56ny5 mantine-MachineNumber-baseNumber"><span class="mantine-MachineNumber-oldNumber mantine-MachineNumber-currentNumberTop mantine-12xtivr">9</span><span><span class="mantine-ytwda6 mantine-MachineNumber-currentNumber">9</span></span><span class="mantine-MachineNumber-oldNumber mantine-MachineNumber-oldNumberBottom mantine-1aipvvq">9</span></span><span>+</span></span></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bell "><path d="M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3h-16a4 4 0 0 0 2 -3v-3a7 7 0 0 1 4 -6"></path><path d="M9 17v1a3 3 0 0 0 6 0v-1"></path></svg></button></div></div><div class="mantine-Indicator-root mantine-gc2cx1"><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message-2 "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M9 18h-3a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-3l-3 3l-3 -3z"></path></svg></button></div></div><div class="mantine-Divider-root mantine-Divider-vertical mantine-17n93iu" role="separator"></div><button class="mantine-UnstyledButton-root flex items-center @md:rounded-[32px] mantine-mubvgq" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-r8-dropdown" id="mantine-r8-target"><div class="flex items-center gap-2 @max-md:hidden"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-93q6d0" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></div><div class="mantine-Text-root mantine-1ul1owb"><div class="mantine-Group-root mantine-lw13s0"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bolt "><path d="M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"></path></svg><div class="mantine-Text-root mantine-1n7971j">1k</div></div></div></div><div class="Burger_root__0ZjJO @md:hidden"><div class="Burger_burger__oacyO"></div></div></button></div><div class="mantine-Grid-col flex items-center justify-end @md:hidden mantine-i4bfhs"><div class="flex items-center gap-1"><div class="flex items-center" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r9-dropdown" id="mantine-r9-target"><button class="mantine-UnstyledButton-root mantine-Button-root h-auto px-3 py-2 @md:pr-1 mantine-15xbzqv" type="button" data-button="true" data-activity="create:navbar"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1gg8vod"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brush "><path d="M3 21v-4a4 4 0 1 1 4 4h-4"></path><path d="M21 3a16 16 0 0 0 -12.8 10.2"></path><path d="M21 3a16 16 0 0 1 -10.2 12.8"></path><path d="M10.6 9a9 9 0 0 1 4.4 4.4"></path></svg><div class="mantine-Text-root hide-mobile mantine-1slh3ps">Create</div></div></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root @max-md:hidden mantine-h74xig" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-down "><path d="M6 9l6 6l6 -6"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-search "><path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"></path><path d="M21 21l-6 -6"></path></svg></button><span aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-ra-dropdown" id="mantine-ra-target" class=""><div class="mantine-150a24d"><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button"><div class="mantine-Indicator-root mantine-cf0b3j"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-screen-share "><path d="M21 12v3a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1v-10a1 1 0 0 1 1 -1h9"></path><path d="M7 20l10 0"></path><path d="M9 16l0 4"></path><path d="M15 16l0 4"></path><path d="M17 4h4v4"></path><path d="M16 9l5 -5"></path></svg></div></button></div></span><div style="height: 28px;"><div class="mantine-Indicator-root mantine-gc2cx1"><div class="mantine-Indicator-indicator mantine-Indicator-common mantine-1y2cv4n"><span class="mantine-1f5d3nx mantine-machine-base"><span class="mantine-1x56ny5 mantine-MachineNumber-baseNumber"><span class="mantine-MachineNumber-oldNumber mantine-MachineNumber-currentNumberTop mantine-12xtivr">9</span><span><span class="mantine-ytwda6 mantine-MachineNumber-currentNumber">9</span></span><span class="mantine-MachineNumber-oldNumber mantine-MachineNumber-oldNumberBottom mantine-1aipvvq">9</span></span><span class="mantine-1x56ny5 mantine-MachineNumber-baseNumber"><span class="mantine-MachineNumber-oldNumber mantine-MachineNumber-currentNumberTop mantine-12xtivr">9</span><span><span class="mantine-ytwda6 mantine-MachineNumber-currentNumber">9</span></span><span class="mantine-MachineNumber-oldNumber mantine-MachineNumber-oldNumberBottom mantine-1aipvvq">9</span></span><span>+</span></span></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bell "><path d="M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3h-16a4 4 0 0 0 2 -3v-3a7 7 0 0 1 4 -6"></path><path d="M9 17v1a3 3 0 0 0 6 0v-1"></path></svg></button></div></div><div class="mantine-Indicator-root mantine-gc2cx1"><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message-2 "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M9 18h-3a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-3l-3 3l-3 -3z"></path></svg></button></div><button class="mantine-UnstyledButton-root flex items-center @md:rounded-[32px] mantine-mubvgq" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-rb-dropdown" id="mantine-rb-target"><div class="flex items-center gap-2 @max-md:hidden"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-93q6d0" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></div><div class="mantine-Text-root mantine-1ul1owb"><div class="mantine-Group-root mantine-lw13s0"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bolt "><path d="M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"></path></svg><div class="mantine-Text-root mantine-1n7971j">1k</div></div></div></div><div class="Burger_root__0ZjJO @md:hidden"><div class="Burger_burger__oacyO"></div></div></button></div></div></div></header><div class="flex flex-1 overflow-hidden"><div class="scroll-area flex-1 @container mantine-1avyp1d"><main class="flex-1"><div class="sticky inset-x-0 top-0 z-50 mb-3 bg-gray-1 shadow transition-transform dark:bg-dark-6" style="transform: translateY(-200%);"><div class="flex justify-between gap-2 px-2 py-1 flex-wrap"><div class="flex items-center gap-1 overflow-x-auto overflow-y-hidden"><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-4hkr0j" type="button" data-button="true" href="https://civitai.com/"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home "><path d="M5 12l-2 0l9 -9l9 9l-2 0"></path><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6"></path></svg><span class="text-base font-medium capitalize">home</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-4hkr0j" type="button" data-button="true" href="https://civitai.com/models"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-category "><path d="M4 4h6v6h-6z"></path><path d="M14 4h6v6h-6z"></path><path d="M4 14h6v6h-6z"></path><path d="M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path></svg><span class="text-base font-medium capitalize">models</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-4hkr0j" type="button" data-button="true" href="https://civitai.com/images"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-photo "><path d="M15 8h.01"></path><path d="M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12z"></path><path d="M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5"></path><path d="M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3"></path></svg><span class="text-base font-medium capitalize">images</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-4hkr0j" type="button" data-button="true" href="https://civitai.com/videos"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-video "><path d="M15 10l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -1.447 .894l-4.553 -2.276v-4z"></path><path d="M3 6m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path></svg><span class="text-base font-medium capitalize">videos</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-6v3wa0" type="button" data-button="true" href="https://civitai.com/posts"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-layout-list "><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M4 14m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path></svg><span class="text-base font-medium capitalize">posts</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 bg-gray-4 dark:bg-dark-4 mantine-4hkr0j" type="button" data-button="true" href="https://civitai.com/articles"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-file-text "><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path><path d="M9 9l1 0"></path><path d="M9 13l6 0"></path><path d="M9 17l6 0"></path></svg><span class="text-base font-medium capitalize">articles</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-6v3wa0" type="button" data-button="true" href="https://civitai.com/bounties"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-moneybag "><path d="M9.5 3h5a1.5 1.5 0 0 1 1.5 1.5a3.5 3.5 0 0 1 -3.5 3.5h-1a3.5 3.5 0 0 1 -3.5 -3.5a1.5 1.5 0 0 1 1.5 -1.5z"></path><path d="M4 17v-1a8 8 0 1 1 16 0v1a4 4 0 0 1 -4 4h-8a4 4 0 0 1 -4 -4z"></path></svg><span class="text-base font-medium capitalize">bounties</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-6v3wa0" type="button" data-button="true" href="https://civitai.com/tools"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-tools "><path d="M3 21h4l13 -13a1.5 1.5 0 0 0 -4 -4l-13 13v4"></path><path d="M14.5 5.5l4 4"></path><path d="M12 8l-5 -5l-4 4l5 5"></path><path d="M7 8l-1.5 1.5"></path><path d="M16 12l5 5l-4 4l-5 -5"></path><path d="M16 17l-1.5 1.5"></path></svg><span class="text-base font-medium capitalize">tools</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-6v3wa0" type="button" data-button="true" href="https://civitai.com/challenges"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-trophy "><path d="M8 21l8 0"></path><path d="M12 17l0 4"></path><path d="M7 4l10 0"></path><path d="M17 4v8a5 5 0 0 1 -10 0v-8"></path><path d="M5 9m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 9m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path></svg><span class="text-base font-medium capitalize">challenges</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-6v3wa0" type="button" data-button="true" href="https://civitai.com/events"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-calendar "><path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z"></path><path d="M16 3v4"></path><path d="M8 3v4"></path><path d="M4 11h16"></path><path d="M11 15h1"></path><path d="M12 15v3"></path></svg><span class="text-base font-medium capitalize">events</span></span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root h-8 rounded-full border-none py-2 pl-3 pr-4 mantine-6ioo7t" type="button" data-button="true" href="https://civitai.com/shop"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-2 items-center capitalize overflow-visible mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-christmas-tree "><path d="M12 3l4 4l-2 1l4 4l-3 1l4 4h-14l4 -4l-3 -1l4 -4l-2 -1z"></path><path d="M14 17v3a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-3"></path></svg><span class="text-base font-medium capitalize">shop</span></span></div></a><button class="mantine-UnstyledButton-root mantine-Button-root mantine-im3jxi" type="button" data-button="true" data-active="false" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-rc-dropdown" id="mantine-rc-target"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-lw13s0">More<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-caret-down "><path d="M6 10l6 6l6 -6h-12"></path></svg></div></span></div></button></div></div></div><div class="mantine-Container-root mantine-g090tt"><div class="mantine-Stack-root mantine-159pivy"><div class="mantine-Group-root mantine-1wz44l4"><h1 class="mantine-Text-root mantine-Title-root mantine-6porwj">Update 1/10/2025: Prompt Architect for Stable Diffusion A1111 & Forge</h1><div class="mantine-Group-root mantine-1uvkvh9"><div class="mantine-Group-root mantine-lw13s0"><div style="display: flex;"><button class="mantine-UnstyledButton-root mantine-1qn9423" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-rd-dropdown" id="mantine-rd-target" style="cursor: pointer;"><div class="mantine-Badge-root mantine-s235hf"><span class="mantine-145h3id mantine-Badge-leftSection"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bolt "><path d="M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"></path></svg></span><span class="mantine-h9iq4m mantine-Badge-inner"><div class="mantine-Text-root mantine-1f0fmog">54</div></span></div></button></div><div class="mantine-Badge-root mantine-s235hf"><span class="mantine-145h3id mantine-Badge-leftSection"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#e9ecef" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bookmark " style="fill: rgb(233, 236, 239);"><path d="M18 7v14l-6 -4l-6 4v-14a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4z"></path></svg></span><span class="mantine-h9iq4m mantine-Badge-inner"><div class="mantine-Text-root mantine-1f0fmog">8</div></span></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-re-dropdown" id="mantine-re-target"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-share-3 "><path d="M13 4v4c-6.575 1.028 -9.02 6.788 -10 12c-.037 .206 5.384 -5.962 10 -6v4l8 -7l-8 -7z"></path></svg></button></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-l3uf47" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-rf-dropdown" id="mantine-rf-target"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div></div><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div></div></a></div></div><div class="mantine-Divider-root mantine-Divider-vertical mantine-17n93iu" role="separator"></div><div class="mantine-Text-root mantine-1jt6jod">Jan 10, 2025</div><div class="mantine-Divider-root mantine-Divider-vertical mantine-17n93iu" role="separator"></div><a class="mantine-Badge-root mantine-149q2jl" href="https://civitai.com/articles?view=feed&tags=128646"><span class="mantine-h9iq4m mantine-Badge-inner">generation guide</span></a><div class="mantine-Divider-root mantine-Divider-vertical mantine-17n93iu" role="separator"></div><div class="mantine-Group-root mantine-1u5ck20"><a class="mantine-Badge-root mantine-nvfdhm" href="https://civitai.com/articles?view=feed&tags=136614"><span class="mantine-h9iq4m mantine-Badge-inner">generation</span></a><a class="mantine-Badge-root mantine-nvfdhm" href="https://civitai.com/articles?view=feed&tags=133125"><span class="mantine-h9iq4m mantine-Badge-inner">prompting</span></a></div></div></div><div class="mantine-Grid-root mantine-u0eh0m"><div class="mantine-Grid-col mantine-rwe9kh"><div class="mantine-Stack-root mantine-zyu68o"><div class="mantine-AspectRatio-root mantine-15qu6j"><div class="mantine-85sv9h" role="button" tabindex="0"><div class="size-full mantine-8od8ev"><div class="relative size-full"><button class="mantine-UnstyledButton-root mantine-ActionIcon-root absolute right-2 top-2 z-10 mantine-ct6e7" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-rg-dropdown" id="mantine-rg-target"><svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical " filter="drop-shadow(1px 1px 2px rgb(0 0 0 / 50%)) drop-shadow(0px 5px 15px rgb(0 0 0 / 60%))"><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button><img class="EdgeImage_image__iH4_q h-full rounded-lg object-cover" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00190-102601704314.jpeg" alt="Update 1/10/2025: Prompt Architect for Stable Diffusion A1111 & Forge" style="max-width: 1320px;"></div></div></div></div><article><div class="mantine-TypographyStylesProvider-root mantine-1uhluxa"><div><p>Update 1/10/2025:</p><p>Added Forge Implementation:</p><p>Essentially - to work with forge you need to add in the SDConditioning for distilled_cfg_scale=None since this is now part of processing. For this code section:</p><pre><code>class SdConditioning(list): |
| """ |
| A list with prompts for stable diffusion's conditioner model. |
| Can also specify width and height of created image - SDXL needs it. |
| """ |
| def __init__(self, prompts, is_negative_prompt=False, width=None, height=None, copy_from=None, distilled_cfg_scale=None): |
| super().__init__() |
| self.extend(prompts) |
|
|
| if copy_from is None: |
| copy_from = prompts |
|
|
| self.is_negative_prompt = is_negative_prompt or getattr(copy_from, 'is_negative_prompt', False) |
| self.width = width or getattr(copy_from, 'width', None) |
| self.height = height or getattr(copy_from, 'height', None) |
| self.distilled_cfg_scale = distilled_cfg_scale or getattr(copy_from, 'distilled_cfg_scale', None)</code></pre><p>I'm adding this file to my github as "prompt_parser - <a target="_blank" rel="ugc" href="http://forge.py/">forge.py</a>" to differentiate them. When you put it in your forge\modules folder, make a copy of the original prompt parser, then paste this file in. Rename this file to simply "prompt_<a target="_blank" rel="ugc" href="http://parser.py/">parser.py</a>" and then run a new instance of webui to use it.</p><p></p><p>I wanted to use python 3.9 and didn't feel like updating so I modified Forge to work with Python 3.9 --not getting into the details but here is a sample image using the prompt parser:</p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/f1270062-adfc-4b28-9417-22140cda2e76.jpeg">mountain::lake, Tree::oak, autumn_;, mountain:lake:0.7:15%-30%</p><p>Steps: 35, Sampler: DPM2, Schedule type: Karras Exponential, CFG scale: 7, Seed: 140850743528, Size: 960x640, Model hash: 81d4d52035, Model: Qasar_anireal, Denoising strength: 0.4, Hires Module 1: Use same choices, Hires CFG Scale: 7, Hires upscale: 2, Hires steps: 35, Hires upscaler: 4x-UltraSharp, Version: f2.0.1v1.10.1-previous-633-ge073e4ec</p><p></p><p>Adding in my scheduler was also very easy PM me if you need help with that.</p><h1 id="update-1210-sl77afiv4">UPDATE 12/10</h1><p><em>And more updates planned</em></p><p>This update adds: <strong><u>reverse scheduling</u></strong> and <strong><u>scheduling with steps or %</u></strong></p><h2 id="how-to-use-reverse-scheduling-5z5bluowb">How to use reverse scheduling</h2><p>- after setting up the schedule, add "r" or "reverse":</p><p>[prompt]:0.7:r</p><p>or prompt:0.7:r</p><h2 id="how-to-use-scheduling-with-steps:-v8qh3unzo"><br>How to use scheduling with steps:</h2><p>Note: it will clamp max steps if you specify in the prompt more than you actually use.</p><p>Note: 15-30 vs 15%-30% (example 100 steps) will not give you the same image. I thought it would and I tried to correct it and I guess I gave up, but I'm ok with it. It gives a slightly different image, and I'm ok with that. Let me show you an example of the differences between 15-30 and 15% to 30%:</p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/6b36ea50-82e5-43fe-882c-7510a8bcc0cb.jpeg">mountain:lake:0.7:15%-30%</p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/e94504b6-2c3d-43d3-90ce-b3d85f959ff1.jpeg">mountain:lake:0.7:15-30</p><p></p><p>Similar but different images.</p><p>And I'm ok with that, and hope you will be too. If not feel free to contribute on github.</p><p></p><h3 id="so-back-to-explaining-step-scheduling.-zllwkjvok">So back to explaining step scheduling.</h3><p>Essentiallly, you can instruct it to focus on steps 15-30 or 15% -30% of the generation (or pick your number/percent) and it will focus on those elements. You might not see much with a simple prompt with nothing else, but this is more of an example of how to use it versus the best prompt you can do.</p><p></p><p></p><p></p><p>Example prompt inputs for both -- please see the beach images here: <a target="_blank" rel="ugc" href="https://civitai.com/posts/10135414">Image post by KittensX | Civitai</a></p><p>or reference the below sample image. I thought the orange was a bit overstated but I kind of expected as much based on the prompt. I thought the sand and imprints in the sand were spot on for realisticness.</p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/57e0b4d0-f8b9-4798-9c47-c890cd632d64.jpeg">background::{white|blue|orange_sky}:50%-100%:r | {orange|white|blue_water}:10%-50%;, {sky, clouds}, {sand, beach::footprints in the sand;}</p><p>Steps: 100, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 118255258105, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.4, Clip skip: 2, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 60, Hires upscaler: 8x_NMKD-Superscale_150000_G, Version: v1.10.1, Hashes: {"model": "7be8cfbcd2"}</p><p></p><p></p><p></p><h2 id="update-1262024:-oafub0r3w">UPDATE 12/6/2024:</h2><p>Added the following:</p><ul><li><p>use | for OR functionality.</p></li><li><p>use & or AND for implicit AND functionality</p></li><li><p>use "::" to start a sequence, end it with ";" or if a nested sequence, must end each nested sequence with ";" with the last sequence with "_;".</p></li><li><p>use "_" to link concepts</p><p>for ungrouped requirements to join ideas like "red_hat" or "green_hair"</p></li></ul><p></p><p><strong><u>in progress ~ limited functionality in practice</u></strong></p><p>use numbers joined with "_" for quantity. In practice, it might be easier for CLIP to detect the use of a number in a sentence rather than a parse rule. If I can't get it to function with parsing I may re-release without this function.</p><p>This is a work in progress. In theory, if the number is followed by an exclamation point, it should enforce at least that amount in the output. It might duplicate output without actually get the model to draw a quantity number of items. Like if you wanted to draw 2 moons 2_moons ...it might just be easier and the model might understand it if you just use natural language. Using 2_ or 4_ or whatever number inside a group is meant to simplify a prompt, but it might just not be implemented correctly. Hence why I've added some functionality but won't guarantee it's effectiveness.</p><p></p><h2 id="simple-examples-to-better-understand-these-parsing-rules:-1hogxpglb">Simple Examples to better understand these parsing rules:</h2><h3 id="or-function-(allows-or-without-using-)-sbq2nacbn">| Function (allows or without using [])</h3><p>red | blue | green</p><p>Only one option will be chosen during parsing or generation</p><p>Seems to either work great, or favor one output. Is not 100%.</p><p></p><h3 id="using-and-to-enforce-conditions-oizrkyod2">Using & to enforce conditions</h3><p><em>Simple example:</em></p><p>red & blue & green</p><p>Represents a combination where <strong>all conditions are required simultaneously</strong>.</p><p>In negative prompts, it would mean that none of these are allowed</p><p></p><h3 id="conjoining-words-with-"_"-kc4br5kmo">Conjoining words with "_"</h3><p>red|blue|green_eyes</p><p>Will return red_eyes or blue_eyes or green_eyes. Because the last sequence had the joiner "_", it allows you to do various things like blonde|brunette|red_hair</p><p></p><p>red_hair will group the first concept with the second concept</p><p></p><h3 id="sequences-ifgc4ygdo">Sequences</h3><p>Sequences are meant to enhance assignment of attributes to objects.</p><p>They can be simple, or they can include nested sequences. Example:</p><p>You could describe a person like this:</p><p>{female:: hair::blonde, natural color, long, curly;, eyes::beautiful, brown, large;, adult, wearing::gym shorts, midriff, socks, sneakers_;}, {male::brown eyes, green hair, red_shirt}</p><p>Seems to work fairly well, though I don't know everything and refinement is still needed, and though colors might be specified, sometimes the just end up on the wrong person. So I'm not 100% sure how to enforce this.</p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/813b3844-4618-4e5f-967f-7492e4d6f76a.jpeg">{2 people_{female:: hair::blonde, natural color, long, curly;, eyes::beautiful, brown, large;, adult, wearing::gym shorts, midriff, socks, sneakers_;}, {male::brown eyes, green hair, red_shirt}}</p><p>Negative prompt: {magazine, watermark}, nude</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758917, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/fddf6b34-f4c1-43b1-8062-e5fcbb1b0114.jpeg">{2 people_{female:: blonde_hair:: natural color, long, curly;, brown_eyes::beautiful, large;, adult, blue_{gym shorts}, midriff, white_socks, pink_sneakers_;}, {male::brown_eyes, wearing::green_shirt, black_pants, striped_shorts;}}, park_background::bench, tree, brook, wooden_bridge::over the stream, concrete path_;,</p><p>Negative prompt: {magazine, watermark}, nude, hand:6_fingers AND 3_fingers AND wrong_fingercount;</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758915, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><h3 id="-yz5jbonm6"></h3><h3 id="using-sequence-("::")-367t8mhlf">Using sequence ("::")</h3><p>In practice, assigning attributes to objects has been easier, whether you use a sequence or use conjoining "_"</p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/c2aad85a-3570-4b61-a5d6-e26d9e789a65.jpeg">female:: age-22, blonde, glasses, tall, blue eyes, pink shirt,</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 14870554953, Size: 960x640, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.7, Clip skip: 2, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 40, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><h3 id="using-sequence-and-conjoiners-c7a9254hn">Using Sequence and Conjoiners</h3><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/d8c232e0-74c6-4e43-b280-f2d2f35a9889.jpeg">{2 females:: brunette|blonde hair:: long:: slightly wavy; , {blue|green_eyes}; , adult::age-18;, wearing::(red_panties) & (white_bra);, eyes::beautiful_eyes, (same_color);, height::same_size_;}, background::studio, deep black,solid black;, lighting: filtered, synthetic;,</p><p>Negative prompt: {magazine, watermark}, arms::3_arms, intersecting;, legs:3_legs;, {child::childlike features;, teen}, breasts::large;, hand::6_fingers, 3_fingers, no_thumb_;, fingers::trailing, unattached;, eyes:: plastic, bad, ugly;</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758916, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/9a63e87c-b9b9-4265-9d9f-8568bbb08b1a.jpeg">{2 females:: brunette|blonde hair:: long:: slightly wavy; , {blue|green_eyes}; , adult::age-18;, wearing::(red_panties) & (white_bra);, eyes::beautiful_eyes, (same_color);, height::same_size_;}, background::studio, deep black, inside a room;, lighting: filtered, synthetic;,</p><p>Negative prompt: {magazine, watermark}, arms::3_arms, intersecting;, legs:3_legs;, {child::childlike features;, teen}, breasts::large;, hand::6_fingers, 3_fingers, no_thumb_;, fingers::trailing, unattached;, eyes:: plastic, bad, ugly;</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 84494253437, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p><strong><u>It doesn't seem to be 100% but these prompts are fresh and need refinement, but it looks promising.</u></strong></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><h2 id="more-pictures-rn90otxnc">More pictures</h2><p>I have started to test out the functions. The OR and the AND function is iffy, but the use of the "_" to connect two objects like you would in a group using "{ }" seems to work fairly well. Using these may change a model to give a different style output, at least that's what I've noticed with mine. Here below are a few more sample pictures that I've been messing around with.</p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/dd4e9f72-e591-4724-bdae-c8008f09e020.jpeg">[mountain:lake:0.5], {stormclouds | sunny}</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 79500811399, Size: 960x640, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.7, Clip skip: 2, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 40, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/47e5d178-0917-4337-80b2-a6f39234b3ff.jpeg">{female:: tall:: athletic; cheerful & kind_eyes; wearing tshirt & shorts_; | animal:: furry, small, playful; } & {red_hat, green_hair & blue_eyes};, photorealistic, a photo,</p><p>Negative prompt: {magazine, watermark}, nude</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758915, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/829046ad-e53e-4dc4-bba3-b6cac87bfb74.jpeg">2_{female:: tall:: athletic, blonde; cheerful & kind_eyes_; | animal:: furry, small, playful; } & {red_hat | green_hair & blue_eyes};</p><p>Negative prompt: {magazine, watermark}, nude</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758915, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p></p><p></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/e01707b2-2dc3-4c5e-b4a3-18487a249ae7.jpeg">2_{person:: tall:: athletic, muscular_; cheerful & kind_eyes_; | animal:: furry, small, playful_; } | 3_{red_hat | green_hair & blue_eyes};</p><p>Negative prompt: {magazine, watermark},</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758917, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/b9f6f0db-f363-41d7-83b1-7c35927ecd64.jpeg">{2 females:: brunette|blonde hair:: long:: slightly wavy; , {blue|green_eyes}; , adult::age-18;, wearing::(red_panties) & (white_bra);, eyes::beautiful_eyes, (same_color);, height::same_size_;}, background::studio, deep black,solid black;, lighting: filtered, synthetic;,</p><p>Negative prompt: {magazine, watermark}, arms::3_arms, intersecting;, legs:3_legs;, {child::childlike features;, teen}, breasts::large;, hand::6_fingers, 3_fingers, no_thumb_;, fingers::trailing, unattached;, eyes:: plastic, bad, ugly;</p><p>Steps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758914, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p><strong>==============================================</strong></p><p>Also on github <a target="_blank" rel="ugc" href="https://github.com/Kittensx/Prompt-Architect-for-A1111">here </a><strong>Link updated on 12/6/2024</strong></p><p>For updated pictures & Tests please view the post (click the view button) to see the entire post, which includes detailed comments and comparisons.</p><p><a target="_blank" rel="ugc" href="https://civitai.com/posts/9615037">The mountain test | Civitai</a></p><p><a target="_blank" rel="ugc" href="https://civitai.com/posts/9616590">Another Test & Comparisons | Civitai</a></p><p></p><p>It shows how varying between grouping {}, transitions : , or scheduling, object1:object2:object3:weight example: mountain:lake:trees:0.5 can transform your image. It is a simple test meant to illustrate how you can use them in your pictures.</p><p></p><p></p><p>Update: added 'grouped' to the prompt section on line 17. Now it's properly parsing the grouped parse rules.</p><p>Update: commented out the sorted list return on res (~ line 142). Now it is returning res without sorting or removing duplicates.</p><p></p><p></p><h1 id="new-features-donxqcv9u"><strong><span style="color:rgb(34, 139, 230)">N</span><span style="color:rgb(64, 192, 87)">e</span><span style="color:rgb(250, 176, 5)">w</span> <span style="color:rgb(250, 82, 82)">F</span><span style="color:rgb(230, 73, 128)">e</span><span style="color:rgb(190, 75, 219)">a</span><span style="color:rgb(121, 80, 242)">t</span><span style="color:rgb(64, 192, 87)">u</span><span style="color:rgb(21, 170, 191)">r</span><span style="color:rgb(230, 73, 128)">e</span><span style="color:rgb(253, 126, 20)">s</span></strong></h1><p>So, I've added the following functionality:</p><p>1) Grouping using brackets {}.</p><p>2) Multiple scheduling using colons :.</p><p>3) Optional debugging (uncomment the print statements)</p><p>4) Apply weights to entire groups or individual transitions</p><p></p><h2 id="grouping-a6bwntk6e"><strong><span style="color:rgb(34, 139, 230)">Grouping</span></strong></h2><p>With phrases you can group with brackets to treat the phrase as one prompt. Gives more precision control over your image.</p><p>--Original Parser = No explicit support for grouping. Prompts are parsed individually or as scheduled transitions using :.</p><p><strong>Benefit</strong>: Grouping improves control over scene composition by maintaining relationships between prompt elements.</p><p>All items are treated as a cohesive group. It can be simple or a complex prompt involving multiple phrases, groups, transitions, etc.</p><p></p><h2 id="weighted-prompts-and-transitions-gu5uv3j5q"><strong><span style="color:rgb(34, 139, 230)">Weighted Prompts and Transitions</span></strong></h2><p>Brackets (<code>[]</code>) can include multiple colon-separated elements, followed by an optional weight. For example:</p><p><code>[mountain:lake:river:0.25]</code> applies a <code>0.25</code> de-emphasis to the whole sequence.</p><p><strong>Original Parser</strong>: Limited handling of weights and no clear support for multiple elements within brackets (beyond 2 elements).</p><p><strong>Benefit</strong>: The improved parser provides fine-grained control over transitions and emphasis within a prompt.</p><p></p><p><u>Example use combining weighted prompts and grouping:</u></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/d1af9e47-eca5-4485-83f0-a2b187648f7a.jpeg">city:storm:lightning:tree:street:puddle:0.7, ({{closeup}, {green eyes}, {blonde hair}, {1 adult, woman, {peach orange dress}}}),</p><p>Negative prompt: watermark, {child, teen}, selfie, muscular, glow,</p><p>Steps: 45, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 6265453010, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.55, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p></p><p></p><p><em><u><span style="color:rgb(230, 73, 128)">If you can logically group items together, you can discover more efficient ways to craft what you want with possibly fewer images.</span></u></em></p><p></p><p></p><p></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/fa3d8ce6-47f9-4c9d-b10a-e61af4fa5320.jpeg">{puddle,lightning,storm clouds}:{sunset,city}:0.5, {woman, (brown)-eyes, white dress}:{man, (blond)-hair, green eyes}:0.9</p><p>Negative prompt: powerlines, watermark, {crowds of people}:1.1</p><p>Steps: 20, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 121826728852, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires upscaler: Latent, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><p></p><p></p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/d21fa2e6-d630-47c0-8e29-ccb64520ad31.jpeg">{puddle,lightning,storm clouds}:{sunset,city}:0.7, {woman, {blue eyes}, {white dress}}:1.1, {{portrait}, {looking at camera}}:candid:1.1</p><p>Negative prompt: watermark, {child, teen}, selfie, muscular, separated, powerlines, {crowds of people}, cars, flooding,</p><p>Steps: 45, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 53043189590, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.55, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "31ca5c2b37"}</p><p></p><h2 id="-21id051gj"></h2><p></p><h2 id="conclusion-8pojrrwjq"><strong><span style="color:rgb(34, 139, 230)">Conclusion</span></strong></h2><p>I've only scratched the surface what this can do, but my takeaways for what I like the most are:</p><p><em>(i.e. the two main features)</em></p><ul><li><p>Groupings</p><p>Why? Obvious reasons - grouping descriptions together for objects and having the model do what I want it to do.</p></li><li><p>Multiple prompts scheduling</p><p>Why? While I have not really used this in the past, I find that being able to group a bunch of things together, and then assign it a group emphasis/deemphasis is a great way to create a new scene from scratch that involves less time crafting the background, the model, and any other special things like colors, material, etc. Can spend less time in development and more time creating images.</p></li></ul><p></p><h2 id="how-to-install-ss85vr1bc"><span style="color:rgb(34, 139, 230)">How to Install</span></h2><p>(See Attachments)</p><ol><li><p>Backup your current file in your modules folder for the same name, "prompt_parser.py"</p></li><li><p>Replace or move the prompt_parser.py file into your modules folder, which is located in your root (where you installed Stable Diffusion) folder. root\modules\prompt_parser.py.</p><p></p></li></ol><p></p><h2 id="cover-art-qxlv5wvin"><span style="color:rgb(34, 139, 230)">Cover art</span></h2><p>a majestic ((deer)):{standing on a moss-covered [rock] near the stream, looking over its shoulder}:0.95, a {lush rainforest, serene waterfall:0.6} with [misty clouds:clear skies:0.3] above and a [winding river:0.5]:rocky stream:0.4 flowing through, surrounded by {wildlife, vibrant flowers} and occasional [wildlife:birds:0.2] grazing near a [clearing:shaded grove:0.7]. At a distance, a majestic {mountain range, volcano:0.4} looms, casting a shadow over a {golden meadow:rolling hills:0.5}. Closer to the viewer, a foreground of {dense foliage, tall trees:0.7} with [sunlight streaming through:soft shade:0.4] adds contrast,</p><p>Negative prompt: cluttered background, harsh lighting, unnatural pose, blurry details</p><p>Steps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 102601704314, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "7be8cfbcd2"}</p><p></p><p></p><h2 id="codeblock-445nngojr">Codeblock</h2><pre><code>''' |
| from __future__ import annotations |
|
|
| import re |
| from collections import namedtuple |
| import lark |
|
|
| # a prompt like this: "fantasy landscape with a [mountain:lake:0.25] and [an oak:a christmas tree:0.75][ in foreground::0.6][: in background:0.25] [shoddy:masterful:0.5]" |
| # will be represented with prompt_schedule like this (assuming steps=100): |
| # [25, 'fantasy landscape with a mountain and an oak in foreground shoddy'] |
| # [50, 'fantasy landscape with a lake and an oak in foreground in background shoddy'] |
| # [60, 'fantasy landscape with a lake and an oak in foreground in background masterful'] |
| # [75, 'fantasy landscape with a lake and an oak in background masterful'] |
| # [100, 'fantasy landscape with a lake and a christmas tree in background masterful'] |
|
|
| schedule_parser = lark.Lark(r""" |
| !start: (prompt | /[][():]/+)* |
| prompt: (emphasized | scheduled | grouped | alternate | plain | WHITESPACE)* |
| !emphasized: "(" prompt ")" |
| | "(" prompt ":" prompt ")" |
| | "[" prompt "]" |
| scheduled: "[" [prompt (":" prompt)+] "]" ":" [WHITESPACE] NUMBER [WHITESPACE] //allows use of optional brackets to apply weights to phrases |
| alternate: "[" prompt ("|" [prompt])+ "]" |
| grouped: "{" (prompt ",")+ [prompt] "}" // Group descriptions with commas |
| WHITESPACE: /\s+/ |
| plain: /([^\\\[\]():|]|\\.)+/ |
| %import common.SIGNED_NUMBER -> NUMBER |
| """) |
|
|
|
|
| def get_learned_conditioning_prompt_schedules(prompts, base_steps, hires_steps=None, use_old_scheduling=False): |
| """ |
| >>> g = lambda p: get_learned_conditioning_prompt_schedules([p], 10)[0] |
| >>> g("test") |
| [[10, 'test']] |
| >>> g("a [b:3]") |
| [[3, 'a '], [10, 'a b']] |
| >>> g("a [b: 3]") |
| [[3, 'a '], [10, 'a b']] |
| >>> g("a [[[b]]:2]") |
| [[2, 'a '], [10, 'a [[b]]']] |
| >>> g("[(a:2):3]") |
| [[3, ''], [10, '(a:2)']] |
| >>> g("a [b : c : 1] d") |
| [[1, 'a b d'], [10, 'a c d']] |
| >>> g("a[b:[c:d:2]:1]e") |
| [[1, 'abe'], [2, 'ace'], [10, 'ade']] |
| >>> g("a [unbalanced") |
| [[10, 'a [unbalanced']] |
| >>> g("a [b:.5] c") |
| [[5, 'a c'], [10, 'a b c']] |
| >>> g("a [{b|d{:.5] c") # not handling this right now |
| [[5, 'a c'], [10, 'a {b|d{ c']] |
| >>> g("((a][:b:c [d:3]") |
| [[3, '((a][:b:c '], [10, '((a][:b:c d']] |
| >>> g("[a|(b:1.1)]") |
| [[1, 'a'], [2, '(b:1.1)'], [3, 'a'], [4, '(b:1.1)'], [5, 'a'], [6, '(b:1.1)'], [7, 'a'], [8, '(b:1.1)'], [9, 'a'], [10, '(b:1.1)']] |
| >>> g("[fe|]male") |
| [[1, 'female'], [2, 'male'], [3, 'female'], [4, 'male'], [5, 'female'], [6, 'male'], [7, 'female'], [8, 'male'], [9, 'female'], [10, 'male']] |
| >>> g("[fe|||]male") |
| [[1, 'female'], [2, 'male'], [3, 'male'], [4, 'male'], [5, 'female'], [6, 'male'], [7, 'male'], [8, 'male'], [9, 'female'], [10, 'male']] |
| >>> g = lambda p: get_learned_conditioning_prompt_schedules([p], 10, 10)[0] |
| >>> g("a [b:.5] c") |
| [[10, 'a b c']] |
| >>> g("a [b:1.5] c") |
| [[5, 'a c'], [10, 'a b c']] |
| """ |
|
|
| if hires_steps is None or use_old_scheduling: |
| int_offset = 0 |
| flt_offset = 0 |
| steps = base_steps |
| else: |
| int_offset = base_steps |
| flt_offset = 1.0 |
| steps = hires_steps |
|
|
| def collect_steps(steps, tree): |
| #if not tree or not hasattr(tree, 'children') or not tree.children: #debugs |
| #print("Invalid tree structure:", tree) |
| #return [] |
| res = [steps] # Always include the final step |
|
|
| class CollectSteps(lark.Visitor): |
| def grouped(self,tree): |
| # Collect all descriptions within the group |
| group_descriptions = [ |
| self._resolve_tree(child) if isinstance(child, lark.Tree) else str(child) |
| for child in tree.children] |
| |
| #print(f"Group: {group_descriptions}") #debug |
| |
| # Handle the group as a cohesive unit (e.g., append to results) |
| res.append(", ".join(group_descriptions)) |
| |
| def scheduled(self, tree): |
| #Validate tree.children #debug |
| if not hasattr(tree, "children") or not tree.children: |
| #print("Invalid tree or missing children:", tree) #debug |
| return |
| |
| # Collect all prompts and the scheduling number |
| prompts = tree.children[:-2] # All but the last two children are options |
| number_node = tree.children[-2] # Second-to-last child is the scheduling number |
|
|
| # Debugging: Inspect tree structure |
| #print("Scheduled Node:", tree.pretty()) |
| #print("Prompts:", prompts) |
| #print("Number Node:", number_node) |
|
|
| # Safeguard for missing or invalid children |
| if not prompts or not number_node: |
| #print("Invalid scheduled node structure:", tree) #debug |
| return |
|
|
| try: |
| # Convert number_node to a float |
| v = float(number_node) #keep as a float! |
| except ValueError: |
| #print(f"Invalid scheduling number: {number_node}") #debug |
| return |
|
|
| #Apply Weight (de-emphasis) to each prompt |
| weighted_prompts = [(prompt, v) for prompt in prompts] |
| |
| # Divide steps equally for each transition between prompts |
| num_prompts = len(weighted_prompts) |
| #use when needed: If v can represent either a fraction or a raw number of steps (v < 1 or v >= 1 |
| step_intervals = [ |
| (i + 1) * (v / num_prompts) if v < 1 else (i + 1) * steps / num_prompts |
| for i in range(num_prompts - 1) |
| ] |
| ''' |
| #simpler calculation when you always use a fraction |
| step_intervals = [ |
| int((i + 1) * (v * steps) / num_prompts) for i in range(num_prompts - 1) |
| ] |
| ''' |
| tree.children[-2] = step_intervals # Replace number_node with numeric step intervals |
| res.extend(step_intervals) |
|
|
| # Visit the tree and collect step intervals |
| CollectSteps().visit(tree) |
| #return sorted(set(res)) # Remove duplicates and sort |
| return res #does not remove duplicates or sort |
|
|
|
|
| def at_step(step, tree): |
| class AtStep(lark.Transformer): |
| def scheduled(self, args): |
| #print("Scheduled args:", args) #debug |
|
|
| # Ensure args is valid |
| if not args or len(args) < 2: |
| #print("Invalid scheduled args:", args) #debug |
| return |
|
|
| *prompts, when, _ , weight = args # Extract prompts and step boundaries |
|
|
| if not isinstance(when, list): |
| #print(f"Invalid step boundaries: {when}") #debug |
| return |
|
|
| # Select the appropriate prompt based on the step |
| for i, boundary in enumerate(when): |
| if step <= boundary: |
| yield f"({prompts[i]}:{weight})" # Apply weight (de-emphasis) |
| return |
|
|
| # Default to the last prompt with the weight if step exceeds boundaries |
| yield f"({prompts[-1]}:{weight})" |
| def alternate(self, args): |
| # Handle alternates with a cycle |
| args = ["" if not arg else arg for arg in args] |
| yield args[(step - 1) % len(args)] |
| def start(self, args): |
| #flatten nested structures into a single string |
| def flatten(x): |
| if isinstance(x, str): |
| yield x |
| else: |
| for gen in x: |
| yield from flatten(gen) |
| return ''.join(flatten(args)) |
| def plain(self, args): |
| #handle plain text nodes |
| yield args[0].value |
| def grouped(self, args): |
| # Return the group as a cohesive string |
| return ", ".join(args) |
| def __default__(self, data, children, meta): |
| #handle all other nodes |
| for child in children: |
| yield child |
| return AtStep().transform(tree) |
|
|
| def get_schedule(prompt): |
| try: |
| tree = schedule_parser.parse(prompt) |
| #print(tree.pretty()) # Debugging: visualize the tree structure |
| |
| except lark.exceptions.LarkError as e: |
| #print(f"Parsing error for prompt: {prompt}") |
| #if 0: |
| # import traceback |
| # traceback.print_exc() |
| return [[steps, prompt]] |
| |
| return [[t, at_step(t, tree)] for t in collect_steps(steps, tree)] |
|
|
| promptdict = {prompt: get_schedule(prompt) for prompt in set(prompts)} |
| return [promptdict[prompt] for prompt in prompts] |
|
|
|
|
| ScheduledPromptConditioning = namedtuple("ScheduledPromptConditioning", ["end_at_step", "cond"]) |
|
|
|
|
| class SdConditioning(list): |
| """ |
| A list with prompts for stable diffusion's conditioner model. |
| Can also specify width and height of created image - SDXL needs it. |
| """ |
| def __init__(self, prompts, is_negative_prompt=False, width=None, height=None, copy_from=None): |
| super().__init__() |
| self.extend(prompts) |
|
|
| if copy_from is None: |
| copy_from = prompts |
|
|
| self.is_negative_prompt = is_negative_prompt or getattr(copy_from, 'is_negative_prompt', False) |
| self.width = width or getattr(copy_from, 'width', None) |
| self.height = height or getattr(copy_from, 'height', None) |
|
|
|
|
|
|
| def get_learned_conditioning(model, prompts: SdConditioning | list[str], steps, hires_steps=None, use_old_scheduling=False): |
| """converts a list of prompts into a list of prompt schedules - each schedule is a list of ScheduledPromptConditioning, specifying the comdition (cond), |
| and the sampling step at which this condition is to be replaced by the next one. |
|
|
| Input: |
| (model, ['a red crown', 'a [blue:green:5] jeweled crown'], 20) |
|
|
| Output: |
| [ |
| [ |
| ScheduledPromptConditioning(end_at_step=20, cond=tensor([[-0.3886, 0.0229, -0.0523, ..., -0.4901, -0.3066, 0.0674], ..., [ 0.3317, -0.5102, -0.4066, ..., 0.4119, -0.7647, -1.0160]], device='cuda:0')) |
| ], |
| [ |
| ScheduledPromptConditioning(end_at_step=5, cond=tensor([[-0.3886, 0.0229, -0.0522, ..., -0.4901, -0.3067, 0.0673], ..., [-0.0192, 0.3867, -0.4644, ..., 0.1135, -0.3696, -0.4625]], device='cuda:0')), |
| ScheduledPromptConditioning(end_at_step=20, cond=tensor([[-0.3886, 0.0229, -0.0522, ..., -0.4901, -0.3067, 0.0673], ..., [-0.7352, -0.4356, -0.7888, ..., 0.6994, -0.4312, -1.2593]], device='cuda:0')) |
| ] |
| ] |
| """ |
| res = [] |
|
|
| prompt_schedules = get_learned_conditioning_prompt_schedules(prompts, steps, hires_steps, use_old_scheduling) |
| cache = {} |
|
|
| for prompt, prompt_schedule in zip(prompts, prompt_schedules): |
|
|
| cached = cache.get(prompt, None) |
| if cached is not None: |
| res.append(cached) |
| continue |
|
|
| texts = SdConditioning([x[1] for x in prompt_schedule], copy_from=prompts) |
| conds = model.get_learned_conditioning(texts) |
|
|
| cond_schedule = [] |
| for i, (end_at_step, _) in enumerate(prompt_schedule): |
| if isinstance(conds, dict): |
| cond = {k: v[i] for k, v in conds.items()} |
| else: |
| cond = conds[i] |
|
|
| cond_schedule.append(ScheduledPromptConditioning(end_at_step, cond)) |
|
|
| cache[prompt] = cond_schedule |
| res.append(cond_schedule) |
|
|
| return res |
|
|
|
|
| re_AND = re.compile(r"\bAND\b") |
| re_weight = re.compile(r"^((?:\s|.)*?)(?:\s*:\s*([-+]?(?:\d+\.?|\d*\.\d+)))?\s*$") |
|
|
|
|
| def get_multicond_prompt_list(prompts: SdConditioning | list[str]): |
| res_indexes = [] |
|
|
| prompt_indexes = {} |
| prompt_flat_list = SdConditioning(prompts) |
| prompt_flat_list.clear() |
|
|
| for prompt in prompts: |
| subprompts = re_AND.split(prompt) |
|
|
| indexes = [] |
| for subprompt in subprompts: |
| match = re_weight.search(subprompt) |
|
|
| text, weight = match.groups() if match is not None else (subprompt, 1.0) |
|
|
| weight = float(weight) if weight is not None else 1.0 |
|
|
| index = prompt_indexes.get(text, None) |
| if index is None: |
| index = len(prompt_flat_list) |
| prompt_flat_list.append(text) |
| prompt_indexes[text] = index |
|
|
| indexes.append((index, weight)) |
|
|
| res_indexes.append(indexes) |
|
|
| return res_indexes, prompt_flat_list, prompt_indexes |
|
|
|
|
| class ComposableScheduledPromptConditioning: |
| def __init__(self, schedules, weight=1.0): |
| self.schedules: list[ScheduledPromptConditioning] = schedules |
| self.weight: float = weight |
|
|
|
|
| class MulticondLearnedConditioning: |
| def __init__(self, shape, batch): |
| self.shape: tuple = shape # the shape field is needed to send this object to DDIM/PLMS |
| self.batch: list[list[ComposableScheduledPromptConditioning]] = batch |
|
|
|
|
| def get_multicond_learned_conditioning(model, prompts, steps, hires_steps=None, use_old_scheduling=False) -> MulticondLearnedConditioning: |
| """same as get_learned_conditioning, but returns a list of ScheduledPromptConditioning along with the weight objects for each prompt. |
| For each prompt, the list is obtained by splitting the prompt using the AND separator. |
|
|
| https://energy-based-model.github.io/Compositional-Visual-Generation-with-Composable-Diffusion-Models/ |
| """ |
|
|
| res_indexes, prompt_flat_list, prompt_indexes = get_multicond_prompt_list(prompts) |
|
|
| learned_conditioning = get_learned_conditioning(model, prompt_flat_list, steps, hires_steps, use_old_scheduling) |
|
|
| res = [] |
| for indexes in res_indexes: |
| res.append([ComposableScheduledPromptConditioning(learned_conditioning[i], weight) for i, weight in indexes]) |
|
|
| return MulticondLearnedConditioning(shape=(len(prompts),), batch=res) |
|
|
|
|
| class DictWithShape(dict): |
| def __init__(self, x, shape=None): |
| super().__init__() |
| self.update(x) |
|
|
| @property |
| def shape(self): |
| return self["crossattn"].shape |
|
|
|
|
| def reconstruct_cond_batch(c: list[list[ScheduledPromptConditioning]], current_step): |
| param = c[0][0].cond |
| is_dict = isinstance(param, dict) |
|
|
| if is_dict: |
| dict_cond = param |
| res = {k: torch.zeros((len(c),) + param.shape, device=param.device, dtype=param.dtype) for k, param in dict_cond.items()} |
| res = DictWithShape(res, (len(c),) + dict_cond['crossattn'].shape) |
| else: |
| res = torch.zeros((len(c),) + param.shape, device=param.device, dtype=param.dtype) |
|
|
| for i, cond_schedule in enumerate(c): |
| target_index = 0 |
| for current, entry in enumerate(cond_schedule): |
| if current_step <= entry.end_at_step: |
| target_index = current |
| break |
|
|
| if is_dict: |
| for k, param in cond_schedule[target_index].cond.items(): |
| res[k][i] = param |
| else: |
| res[i] = cond_schedule[target_index].cond |
|
|
| return res |
|
|
|
|
| def stack_conds(tensors): |
| # if prompts have wildly different lengths above the limit we'll get tensors of different shapes |
| # and won't be able to torch.stack them. So this fixes that. |
| token_count = max([x.shape[0] for x in tensors]) |
| for i in range(len(tensors)): |
| if tensors[i].shape[0] != token_count: |
| last_vector = tensors[i][-1:] |
| last_vector_repeated = last_vector.repeat([token_count - tensors[i].shape[0], 1]) |
| tensors[i] = torch.vstack([tensors[i], last_vector_repeated]) |
|
|
| return torch.stack(tensors) |
|
|
|
|
|
|
| def reconstruct_multicond_batch(c: MulticondLearnedConditioning, current_step): |
| param = c.batch[0][0].schedules[0].cond |
|
|
| tensors = [] |
| conds_list = [] |
|
|
| for composable_prompts in c.batch: |
| conds_for_batch = [] |
|
|
| for composable_prompt in composable_prompts: |
| target_index = 0 |
| for current, entry in enumerate(composable_prompt.schedules): |
| if current_step <= entry.end_at_step: |
| target_index = current |
| break |
|
|
| conds_for_batch.append((len(tensors), composable_prompt.weight)) |
| tensors.append(composable_prompt.schedules[target_index].cond) |
|
|
| conds_list.append(conds_for_batch) |
|
|
| if isinstance(tensors[0], dict): |
| keys = list(tensors[0].keys()) |
| stacked = {k: stack_conds([x[k] for x in tensors]) for k in keys} |
| stacked = DictWithShape(stacked, stacked['crossattn'].shape) |
| else: |
| stacked = stack_conds(tensors).to(device=param.device, dtype=param.dtype) |
|
|
| return conds_list, stacked |
|
|
|
|
| re_attention = re.compile(r""" |
| \\\(| |
| \\\)| |
| \\\[| |
| \\]| |
| \\\\| |
| \\| |
| \(| |
| \[| |
| :\s*([+-]?[.\d]+)\s*\)| |
| \)| |
| ]| |
| [^\\()\[\]:]+| |
| : |
| """, re.X) |
|
|
| re_break = re.compile(r"\s*\bBREAK\b\s*", re.S) |
|
|
| def parse_prompt_attention(text): |
| """ |
| Parses a string with attention tokens and returns a list of pairs: text and its associated weight. |
| Accepted tokens are: |
| (abc) - increases attention to abc by a multiplier of 1.1 |
| (abc:3.12) - increases attention to abc by a multiplier of 3.12 |
| [abc] - decreases attention to abc by a multiplier of 1.1 |
| \( - literal character '(' |
| \[ - literal character '[' |
| \) - literal character ')' |
| \] - literal character ']' |
| \\ - literal character '\' |
| anything else - just text |
|
|
| >>> parse_prompt_attention('normal text') |
| [['normal text', 1.0]] |
| >>> parse_prompt_attention('an (important) word') |
| [['an ', 1.0], ['important', 1.1], [' word', 1.0]] |
| >>> parse_prompt_attention('(unbalanced') |
| [['unbalanced', 1.1]] |
| >>> parse_prompt_attention('\(literal\]') |
| [['(literal]', 1.0]] |
| >>> parse_prompt_attention('(unnecessary)(parens)') |
| [['unnecessaryparens', 1.1]] |
| >>> parse_prompt_attention('a (((house:1.3)) [on] a (hill:0.5), sun, (((sky))).') |
| [['a ', 1.0], |
| ['house', 1.5730000000000004], |
| [' ', 1.1], |
| ['on', 1.0], |
| [' a ', 1.1], |
| ['hill', 0.55], |
| [', sun, ', 1.1], |
| ['sky', 1.4641000000000006], |
| ['.', 1.1]] |
| """ |
|
|
| res = [] |
| round_brackets = [] |
| square_brackets = [] |
|
|
| round_bracket_multiplier = 1.1 |
| square_bracket_multiplier = 1 / 1.1 |
|
|
| def multiply_range(start_position, multiplier): |
| for p in range(start_position, len(res)): |
| res[p][1] *= multiplier |
|
|
| for m in re_attention.finditer(text): |
| text = m.group(0) |
| weight = m.group(1) |
|
|
| if text.startswith('\\'): |
| res.append([text[1:], 1.0]) |
| elif text == '(': |
| round_brackets.append(len(res)) |
| elif text == '[': |
| square_brackets.append(len(res)) |
| elif weight is not None and round_brackets: |
| multiply_range(round_brackets.pop(), float(weight)) |
| elif text == ')' and round_brackets: |
| multiply_range(round_brackets.pop(), round_bracket_multiplier) |
| elif text == ']' and square_brackets: |
| multiply_range(square_brackets.pop(), square_bracket_multiplier) |
| else: |
| parts = re.split(re_break, text) |
| for i, part in enumerate(parts): |
| if i > 0: |
| res.append(["BREAK", -1]) |
| res.append([part, 1.0]) |
|
|
| for pos in round_brackets: |
| multiply_range(pos, round_bracket_multiplier) |
|
|
| for pos in square_brackets: |
| multiply_range(pos, square_bracket_multiplier) |
|
|
| if len(res) == 0: |
| res = [["", 1.0]] |
|
|
| # merge runs of identical weights |
| i = 0 |
| while i + 1 < len(res): |
| if res[i][1] == res[i + 1][1]: |
| res[i][0] += res[i + 1][0] |
| res.pop(i + 1) |
| else: |
| i += 1 |
|
|
| return res |
|
|
| if __name__ == "__main__": |
| import doctest |
| doctest.testmod(optionflags=doctest.NORMALIZE_WHITESPACE) |
| else: |
| import torch # doctest faster |
| '''</code></pre><p></p><h2 id="some-more-experimentation-pictures-wmqytlzuf">Some more experimentation Pictures</h2><p>Experimenting a little...Definitely needs some tweaking!</p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/61f9e7f0-c470-4a9b-a6d3-331db0fca190.jpeg">{tree:1.5, sky}:ocean:island:a serene ocean:0.4, cloudy lighting conditions,</p><p>Negative prompt: {low-hanging clouds}:{crazy tree roots, crazy branches}:0.6</p><p>Steps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 126387303976, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "7be8cfbcd2"}</p><p></p><p></p><p>Started here:<img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/9a0142af-33a3-47bd-bd21-770f634426fb.jpeg">{tree, sky}:ocean:island:0.4, cloudy lighting conditions,</p><p>Steps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 119007798841, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "7be8cfbcd2"}</p><p></p><p></p><p></p><p>then in the next iteration...a crazy tree with crazy roots. Howebeit, when I tried to remove said craziness, it reverted to a view without a crazy tree<img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/d8cef39c-4166-44b6-8f52-68088412fe4d.jpeg">{tree, sky}:ocean:island:0.4, cloudy lighting conditions,</p><p>Negative prompt: low-hanging clouds,</p><p>Steps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 9240202417, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "7be8cfbcd2"}</p><p></p><p></p><p>....hence the need to refine this prompt.</p><p><img src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/117690a3-32ea-42d9-b92b-e0983d13a9b8.jpeg">{tree, sky}:ocean:island:a serene ocean:0.4, cloudy lighting conditions,</p><p>Negative prompt: {low-hanging clouds}:{crazy tree roots, crazy branches}:0.6</p><p>Steps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 92633545050, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {"model": "7be8cfbcd2"}</p><p></p><p></p><p></p><p></p><p></p></div></div></article><div class="mantine-Divider-root mantine-Divider-horizontal mantine-hhfxu9" role="separator"></div><div class="mantine-Group-root mantine-1dn2tzg"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><div class="mantine-Group-root mantine-lw13s0"><div style="display: flex;"><button class="mantine-UnstyledButton-root mantine-1qn9423" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-rh-dropdown" id="mantine-rh-target" style="cursor: pointer;"><div class="mantine-Badge-root mantine-s235hf"><span class="mantine-145h3id mantine-Badge-leftSection"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bolt "><path d="M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"></path></svg></span><span class="mantine-h9iq4m mantine-Badge-inner"><div class="mantine-Text-root mantine-1f0fmog">54</div></span></div></button></div><div class="mantine-Badge-root mantine-s235hf"><span class="mantine-145h3id mantine-Badge-leftSection"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#e9ecef" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bookmark " style="fill: rgb(233, 236, 239);"><path d="M18 7v14l-6 -4l-6 4v-14a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4z"></path></svg></span><span class="mantine-h9iq4m mantine-Badge-inner"><div class="mantine-Text-root mantine-1f0fmog">8</div></span></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ubxmi3" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="mantine-ri-dropdown" id="mantine-ri-target"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-share-3 "><path d="M13 4v4c-6.575 1.028 -9.02 6.788 -10 12c-.037 .206 5.384 -5.962 10 -6v4l8 -7l-8 -7z"></path></svg></button></div></div></div></div><div class="mantine-Grid-col mantine-1k5iso9"><aside class="mantine-16gcn8l"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-1avyp1d" data-accordion="true"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Accordion-item mantine-1u2s3to"><button class="mantine-UnstyledButton-root mantine-Accordion-control mantine-17tws88" type="button" data-accordion-control="true" aria-expanded="false" aria-controls="mantine-rj-panel-toc" id="mantine-rj-control-toc"><div class="mantine-1h6pkea mantine-Accordion-chevron"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></div><div class="mantine-pildck mantine-Accordion-label">Table of Contents</div><div class="mantine-r9y4tq mantine-Accordion-icon"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-list "><path d="M9 6l11 0"></path><path d="M9 12l11 0"></path><path d="M9 18l11 0"></path><path d="M5 6l0 .01"></path><path d="M5 12l0 .01"></path><path d="M5 18l0 .01"></path></svg></div></button><div class="mantine-Accordion-panel mantine-1supnlp" aria-hidden="true" role="region" id="mantine-rj-panel-toc" aria-labelledby="mantine-rj-control-toc" style="box-sizing: border-box; display: none; height: 0px; overflow: hidden;"><div style="opacity: 0; transition: opacity 200ms;"><div class="mantine-1ja8oh8 mantine-Accordion-content"><ul aria-label="Table of contents" style="padding-left: 0px;"><div class="mantine-ScrollArea-root mantine-jghxib" dir="ltr" style="position: relative; --radix-scroll-area-corner-width: 0px; --radix-scroll-area-corner-height: 0px; height: 300px;"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" class="mantine-xlwgkm mantine-ScrollArea-viewport" style="overflow: scroll;"><div style="min-width: 100%; display: table;"><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-60mtnq" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#update-1210-sl77afiv4"><li class="mantine-Text-root mantine-1821k1p">UPDATE 12/10</li></a><div class="mantine-1avyp1d" aria-hidden="false" style="box-sizing: border-box;"><div style="opacity: 1; transition: opacity 200ms;"><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#how-to-use-reverse-scheduling-5z5bluowb"><li class="mantine-Text-root mantine-1821k1p">How to use reverse scheduling</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#how-to-use-scheduling-with-steps:-v8qh3unzo"><li class="mantine-Text-root mantine-1821k1p">How to use scheduling with steps:</li></a><div class="mantine-1avyp1d" aria-hidden="false" style="box-sizing: border-box;"><div style="opacity: 1; transition: opacity 200ms;"><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-kap5ey" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#so-back-to-explaining-step-scheduling.-zllwkjvok"><li class="mantine-Text-root mantine-1821k1p">So back to explaining step scheduling.</li></a></div></div></div></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#update-1262024:-oafub0r3w"><li class="mantine-Text-root mantine-1821k1p">UPDATE 12/6/2024:</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#simple-examples-to-better-understand-these-parsing-rules:-1hogxpglb"><li class="mantine-Text-root mantine-1821k1p">Simple Examples to better understand these parsing rules:</li></a><div class="mantine-1avyp1d" aria-hidden="false" style="box-sizing: border-box;"><div style="opacity: 1; transition: opacity 200ms;"><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-kap5ey" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#or-function-(allows-or-without-using-)-sbq2nacbn"><li class="mantine-Text-root mantine-1821k1p">| Function (allows or without using [])</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-kap5ey" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#using-and-to-enforce-conditions-oizrkyod2"><li class="mantine-Text-root mantine-1821k1p">Using & to enforce conditions</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-kap5ey" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#conjoining-words-with-%22_%22-kc4br5kmo"><li class="mantine-Text-root mantine-1821k1p">Conjoining words with "_"</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-kap5ey" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#sequences-ifgc4ygdo"><li class="mantine-Text-root mantine-1821k1p">Sequences</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-kap5ey" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#-yz5jbonm6"><li class="mantine-Text-root mantine-1821k1p"></li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-kap5ey" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#using-sequence-(%22::%22)-367t8mhlf"><li class="mantine-Text-root mantine-1821k1p">Using sequence ("::")</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-kap5ey" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#using-sequence-and-conjoiners-c7a9254hn"><li class="mantine-Text-root mantine-1821k1p">Using Sequence and Conjoiners</li></a></div></div></div></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#more-pictures-rn90otxnc"><li class="mantine-Text-root mantine-1821k1p">More pictures</li></a></div></div></div></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-60mtnq" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#new-features-donxqcv9u"><li class="mantine-Text-root mantine-1821k1p">New Features</li></a><div class="mantine-1avyp1d" aria-hidden="false" style="box-sizing: border-box;"><div style="opacity: 1; transition: opacity 200ms;"><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#grouping-a6bwntk6e"><li class="mantine-Text-root mantine-1821k1p">Grouping</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#weighted-prompts-and-transitions-gu5uv3j5q"><li class="mantine-Text-root mantine-1821k1p">Weighted Prompts and Transitions</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#-21id051gj"><li class="mantine-Text-root mantine-1821k1p"></li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#conclusion-8pojrrwjq"><li class="mantine-Text-root mantine-1821k1p">Conclusion</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#how-to-install-ss85vr1bc"><li class="mantine-Text-root mantine-1821k1p">How to Install</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-wkb5g" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#cover-art-qxlv5wvin"><li class="mantine-Text-root mantine-1821k1p">Cover art</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#codeblock-445nngojr"><li class="mantine-Text-root mantine-1821k1p">Codeblock</li></a></div><div class="mantine-Stack-root mantine-1qlxz9s"><a class="mantine-Text-root mantine-Anchor-root mantine-1q7jji8" href="https://civitai.com/articles/9140/update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge#some-more-experimentation-pictures-wmqytlzuf"><li class="mantine-Text-root mantine-1821k1p">Some more experimentation Pictures</li></a></div></div></div></div></div></div></div></ul></div></div></div></div><div class="mantine-Accordion-item mantine-agabl4" data-active="true"><button class="mantine-UnstyledButton-root mantine-Accordion-control mantine-17tws88" type="button" data-accordion-control="true" aria-expanded="true" aria-controls="mantine-rj-panel-attachments" id="mantine-rj-control-attachments" data-active="true"><div class="mantine-1h6pkea mantine-Accordion-chevron" data-rotate="true"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></div><div class="mantine-pildck mantine-Accordion-label">Attachments</div><div class="mantine-r9y4tq mantine-Accordion-icon"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-paperclip "><path d="M15 7l-6.5 6.5a1.5 1.5 0 0 0 3 3l6.5 -6.5a3 3 0 0 0 -6 -6l-6.5 6.5a4.5 4.5 0 0 0 9 9l6.5 -6.5"></path></svg></div></button><div class="mantine-Accordion-panel mantine-1supnlp" aria-hidden="false" role="region" id="mantine-rj-panel-attachments" aria-labelledby="mantine-rj-control-attachments" style="box-sizing: border-box;"><div style="opacity: 1; transition: opacity 200ms;"><div class="mantine-1ja8oh8 mantine-Accordion-content"><div class="mantine-SimpleGrid-root mantine-cqtzff"><a class="mantine-Paper-root mantine-Card-root mantine-12u8tet" href="https://civitai.com/api/download/attachments/167155" download=""><div class="mantine-Group-root mantine-54g21i"><div class="mantine-ThemeIcon-root mantine-zav0aj"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-python "><path d="M12 9h-7a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h3"></path><path d="M12 15h7a2 2 0 0 0 2 -2v-4a2 2 0 0 0 -2 -2h-3"></path><path d="M8 9v-4a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v5a2 2 0 0 1 -2 2h-4a2 2 0 0 0 -2 2v5a2 2 0 0 0 2 2h4a2 2 0 0 0 2 -2v-4"></path><path d="M11 6l0 .01"></path><path d="M13 18l0 .01"></path></svg></div><div class="mantine-Stack-root mantine-1qlxz9s"><div class="mantine-Text-root mantine-19fb38l">prompt_parser.py</div><div class="mantine-Text-root mantine-w3eg8i">32.9 KB</div></div></div></a><a class="mantine-Paper-root mantine-Card-root mantine-12u8tet" href="https://civitai.com/api/download/attachments/188454" download=""><div class="mantine-Group-root mantine-54g21i"><div class="mantine-ThemeIcon-root mantine-zav0aj"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-python "><path d="M12 9h-7a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h3"></path><path d="M12 15h7a2 2 0 0 0 2 -2v-4a2 2 0 0 0 -2 -2h-3"></path><path d="M8 9v-4a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v5a2 2 0 0 1 -2 2h-4a2 2 0 0 0 -2 2v5a2 2 0 0 0 2 2h4a2 2 0 0 0 2 -2v-4"></path><path d="M11 6l0 .01"></path><path d="M13 18l0 .01"></path></svg></div><div class="mantine-Stack-root mantine-1qlxz9s"><div class="mantine-Text-root mantine-19fb38l">prompt_parser - forge.py</div><div class="mantine-Text-root mantine-w3eg8i">33.03 KB</div></div></div></a></div></div></div></div></div></div></div><div class="mantine-Paper-root mantine-Card-root mantine-14ggdt4"><div class="mantine-Card-cardSection mantine-i2fjw4" padding="md" data-first="true" style="position: relative;"><div class="mantine-Image-root mantine-12tyuap" style="width: 100%;"><figure class="mantine-1hxnf01 mantine-Image-figure"><div class="mantine-91sm8x mantine-Image-imageWrapper"><img class="mantine-840jf0 mantine-Image-image" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/civitai-default-account-bg.png" alt="default creator card background decoration" style="object-fit: cover; width: 100%; height: auto;"></div></figure></div><div class="mantine-Stack-root mantine-1ercgiq"><div class="mantine-Group-root mantine-99b9qu" style="z-index: 1;"><div class="mantine-Group-root mantine-5f6x53"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-lw13s0"><div class="mantine-Group-root mantine-sy0k2z"><div class="mantine-1mi6odh"><img alt="Followers - 171" loading="lazy" width="32" height="32" decoding="async" data-nimg="1" srcset="/_next/image?url=%2Fimages%2Fbase-badge.png&w=32&q=75 1x, /_next/image?url=%2Fimages%2Fbase-badge.png&w=64&q=75 2x" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/base-badge.png" style="color: transparent;"><div class="mantine-1avyp1d" style="top: 50%; left: 50%; position: absolute; transform: translate(-50%, -50%);"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-users "><path d="M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path><path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path><path d="M21 21v-2a4 4 0 0 0 -3 -3.85"></path></svg></div></div><div class="mantine-Badge-root mantine-1w5n0ne"><span class="mantine-h9iq4m mantine-Badge-inner"><div class="mantine-Text-root mantine-jhfans" title="171">171</div></span></div></div><div class="mantine-Group-root mantine-sy0k2z"><div class="mantine-1mi6odh"><img alt="Likes - 82" loading="lazy" width="32" height="32" decoding="async" data-nimg="1" srcset="/_next/image?url=%2Fimages%2Fbase-badge.png&w=32&q=75 1x, /_next/image?url=%2Fimages%2Fbase-badge.png&w=64&q=75 2x" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/base-badge.png" style="color: transparent;"><div class="mantine-1avyp1d" style="top: 50%; left: 50%; position: absolute; transform: translate(-50%, -50%);"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></div><div class="mantine-Badge-root mantine-1w5n0ne"><span class="mantine-h9iq4m mantine-Badge-inner"><div class="mantine-Text-root mantine-jhfans" title="82">82</div></span></div></div></div></div></div></div><div class="mantine-13zrjjj"><div class="mantine-Stack-root mantine-x34uy1"><div class="mantine-Group-root mantine-1wz44l4"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1eod8xg"><div class="mantine-ax3msv"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1dpxm8v" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></div></div><div class="mantine-Stack-root mantine-1rd7807"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-xqh1pl">KittensX</div></div><div class="mantine-Text-root mantine-kfgl1f" style="color: rgba(254, 254, 254, 0.75);">Joined Apr 28, 2023</div></div></div></a><div class="mantine-Group-root mantine-1gg8vod"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-sxjlki" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-lw13s0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-bolt "><path d="M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"></path></svg></div></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root mantine-1py5dgv" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-lw13s0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message-2 "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M9 18h-3a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-3l-3 3l-3 -3z"></path></svg></div></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root mantine-j5xtyu" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Unfollow</span></div></button></div></div></div></div></div></div><div class="mantine-Card-cardSection mantine-exy4dl" padding="md" data-last="true"><div class="mantine-Group-root mantine-1u5ck20"><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-1kgo63i" href="https://ko-fi.com/kittensx" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mug "><path d="M4.083 5h10.834a1.08 1.08 0 0 1 1.083 1.077v8.615c0 2.38 -1.94 4.308 -4.333 4.308h-4.334c-2.393 0 -4.333 -1.929 -4.333 -4.308v-8.615a1.08 1.08 0 0 1 1.083 -1.077"></path><path d="M16 8h2.5c1.38 0 2.5 1.045 2.5 2.333v2.334c0 1.288 -1.12 2.333 -2.5 2.333h-2.5"></path></svg></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-1kgo63i" href="https://github.com/Kittensx/" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-github "><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"></path></svg></a></div></div></div></div></aside></div></div><div class="mantine-Stack-root mantine-qxbfkk"><div class="mantine-Stack-root mantine-1qlxz9s"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-5f6x53"><h2 class="mantine-Text-root mantine-Title-root mantine-pgfohq" id="comments">Comments</h2></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-17vtj7s" type="button" data-button="true" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-rk-dropdown" id="mantine-rk-target"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-sort-descending "><path d="M4 6l9 0"></path><path d="M4 12l7 0"></path><path d="M4 18l7 0"></path><path d="M15 15l3 3l3 -3"></path><path d="M18 6l0 12"></path></svg>Oldest</div></span><span class="mantine-Button-icon mantine-Button-rightIcon mantine-386jen"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-down "><path d="M6 9l6 6l6 -6"></path></svg></span></div></button></div></div><div class="mantine-Stack-root mantine-1s5o4d6"><div class="mantine-Group-root mantine-qrnz3n"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Avatar-root mantine-1u43i6u"><img loading="lazy" class="mantine-1trwvlz mantine-Avatar-image" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar"></div></div></div><form class="relative" style="flex: 1 1 0%;"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-InputWrapper-root mantine-1m3pqry"><div class="mantine-RichTextEditor-root mantine-kmq1p7" name="content" id="input_content"><div class="mantine-TypographyStylesProvider-root mantine-RichTextEditor-typographyStylesProvider mantine-dh3h4"><div class="rounded-3xl mantine-RichTextEditor-content mantine-7n1kgp"><div contenteditable="true" translate="no" class="ProseMirror" tabindex="0"><p data-placeholder="Type your comment..." class="is-empty is-editor-empty"><br class="ProseMirror-trailingBreak"></p></div></div></div></div></div></div></form></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-647011"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-11-24T13:26:20+05:00" datetime="2024-11-24T13:26:20+05:00">2 months ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r36-dropdown" id="mantine-r36-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>noone has asked me about it - but you may (or may not) have noticed that some of my seeds exceed the max seeds that is natively supported by SD A1111. I modified that a while ago. I haven't seen any negative effects - still testing it out, but if you find line ~ 685 in "processing.py" where it says "return int(random.randrange", change the number from 4294967294 to 149845734499. The differences between these two numbers...the fiirst one is 2^32, which is a really big number that most programmers use. The other one is about 34 times bigger, and the largest seed that A1111 supports - this is the biggest number you can get, given their current code. I found this number by using this return: return int(hashlib.sha256(str(seed).encode()).hexdigest(), 16) % (10**12), and this number was the largest I could use. While 2^32 gives you approximately 4.3 billion numbers for random generation, this new number gives about 149 billion numbers. Could be a performance increase, due to the larger number, however, I have not noticed any slowing on my little computer.</p></div></div></div><div class="flex justify-start"><div class="mantine-Text-root cursor-pointer text-sm mantine-12i30r7">Show more</div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-651161"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-11-26T09:02:37+05:00" datetime="2024-11-26T09:02:37+05:00">2 months ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r37-dropdown" id="mantine-r37-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>or better yet, comment out that line, then replace it with the new number. If you ever change your mind just go back delete or comment the new code, then uncomment the old code.</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-652675"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-11-27T02:39:47+05:00" datetime="2024-11-27T02:39:47+05:00">2 months ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r38-dropdown" id="mantine-r38-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>also see image post: <a target="_blank" rel="ugc" href="https://civitai.com/posts/9615037">The mountain test | Civitai </a></p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-655944"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-11-28T06:57:11+05:00" datetime="2024-11-28T06:57:11+05:00">2 months ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r39-dropdown" id="mantine-r39-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>For comparing v1 code vs finalized code, also see <a target="_blank" rel="ugc" href="https://civitai.com/posts/9662679">Image post by KittensX | Civitai</a></p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-687896"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/akersamir228"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Avatar-root mantine-1bs86az"><div class="mantine-1z3v0l mantine-Avatar-placeholder" title="akersamir228's Avatar">AK</div></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/akersamir228"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">akersamir228</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T16:43:59+05:00" datetime="2024-12-10T16:43:59+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3a-dropdown" id="mantine-r3a-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>Is this only Regional prompting wannabe, or has its use for other thigs? Specially for more realism?</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-687923"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T17:02:12+05:00" datetime="2024-12-10T17:02:12+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3b-dropdown" id="mantine-r3b-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>It is an update to the traditional prompt_parser as found in Stable Diffusion A1111. It adds several different ways you can craft a prompt. For more realisticness you need to use a model which has the right blend of weights. This prompt parser gives you a bit more control over how elements are composed, but realisticness depends on the model you use. I've been posting pretty regularly using this new parser on both my models and other peoples models. I find it easier to use other people's models and still get the prompt I want with relative ease.</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-687936"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/akersamir228"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Avatar-root mantine-1bs86az"><div class="mantine-1z3v0l mantine-Avatar-placeholder" title="akersamir228's Avatar">AK</div></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/akersamir228"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">akersamir228</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T17:15:21+05:00" datetime="2024-12-10T17:15:21+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3c-dropdown" id="mantine-r3c-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>"I find it easier to use other people's models and still get the prompt I want with relative ease" What do you mean by this?</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-687951"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T17:22:46+05:00" datetime="2024-12-10T17:22:46+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3d-dropdown" id="mantine-r3d-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>When you use other peoples models, the prompt that you created may not work very well. So you have to start from scratch. I find it generally easier using this updated prompt_parser versus the original prompt_parser. I have extensive tools built in including scheduling, sequences, groups, AND, OR, reverse scheduling, ETC. Some improvements might be adding in a language parser or better natural language as those are things that A1111 does not have. Future updates :)</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root mantine-4ijnyf" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-1 mantine-Button-label"><div class="mantine-Text-root mantine-9yukw3">👍</div> 1</span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-687962"><div class="mantine-Group-root mantine-1g4q40w"><button class="mantine-UnstyledButton-root mantine-mubvgq" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrows-maximize "><path d="M16 4l4 0l0 4"></path><path d="M14 10l6 -6"></path><path d="M8 20l-4 0l0 -4"></path><path d="M4 20l6 -6"></path><path d="M16 20l4 0l0 -4"></path><path d="M14 14l6 6"></path><path d="M8 4l-4 0l0 4"></path><path d="M4 4l6 6"></path></svg></button><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/akersamir228"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Avatar-root mantine-1bs86az"><div class="mantine-1z3v0l mantine-Avatar-placeholder" title="akersamir228's Avatar">AK</div></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/akersamir228"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">akersamir228</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T17:25:49+05:00" datetime="2024-12-10T17:25:49+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3e-dropdown" id="mantine-r3e-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>I will wait for this. Will this work with Forge?</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Divider-root mantine-Divider-horizontal mantine-Divider-withLabel mantine-gstba7" role="separator"><div class="mantine-Text-root mantine-Divider-label mantine-Divider-labelDefaultStyles mantine-138xue5"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Text-root mantine-15zw87b">Show 1 More</div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-687967"><div class="mantine-Group-root mantine-1g4q40w"><button class="mantine-UnstyledButton-root mantine-mubvgq" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrows-maximize "><path d="M16 4l4 0l0 4"></path><path d="M14 10l6 -6"></path><path d="M8 20l-4 0l0 -4"></path><path d="M4 20l6 -6"></path><path d="M16 20l4 0l0 -4"></path><path d="M14 14l6 6"></path><path d="M8 4l-4 0l0 4"></path><path d="M4 4l6 6"></path></svg></button><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T17:30:37+05:00" datetime="2024-12-10T17:30:37+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3f-dropdown" id="mantine-r3f-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>if you notice abnormalities or bad images you should do 1 of 2 things: either delete all your positive prompts or all your negative prompts. Run it again, if you still notice something is bad, you should go prompt by prompt until you figure out what is wrong. And when you're doing this you need to use the SAME SEED (very important). Otherwise you won't know if what you did made a difference or not. A strong prompt will perform well any any seed. So once you've hammered out the best prompt using the same seed, let it loose and go -1 on your prompts and check to see if most of your images are good. Once you've gotten your good prompt together, you should know it will work well on that particular model (or if using similar models example: from the same model creator), you may be able to use it for those models too. If you use the same prompt on 20 or 30 different models and they all turned out fairly good images, that's a sign that the models all use similar architecture. If you find one that has good images on the model site, but you can't seem to get a good prompt using your saved prompt, and also you notice the author doesn't use Loras, then that's a sign that you should change your prompt. IF you notice that they only use LORAS to get good images, that's a sign that perhaps it's not a very good base model. IMHO, a good base model can create good images without using Loras. I for one, hate using LORAS unless I need it for a particular pose or whatnot. Personally, I'd rather put together a prompt manually so that the style of the model I'm using isn't altered, because some LORAS are terrible at not preserving the style of the model you use.</p></div></div></div><div class="flex justify-start"><div class="mantine-Text-root cursor-pointer text-sm mantine-12i30r7">Show more</div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Divider-root mantine-Divider-horizontal mantine-Divider-withLabel mantine-gstba7" role="separator"><div class="mantine-Text-root mantine-Divider-label mantine-Divider-labelDefaultStyles mantine-138xue5"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Text-root mantine-15zw87b">Show 1 More</div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-687984"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T17:47:12+05:00" datetime="2024-12-10T17:47:12+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3g-dropdown" id="mantine-r3g-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>This update to A1111 prompt_parser simply interprets what you input and instructs the model to display the image for each step or partial step. OR iterates a random choice over each step, so it can blend your choices. the advanced scheduling allows you to specify which steps that are applied to each prompt --which is HUGE imho. But for the most part, you can arrive at a similar juncture using regular commas between prompts and random chance, but you have more control using this prompt_parser. So if you're an advanced user who wants more control, then this prompt_parser is for you. </p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-688133"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">daskmaster</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T19:05:14+05:00" datetime="2024-12-10T19:05:14+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3h-dropdown" id="mantine-r3h-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>Hm... This woring for Neutral prompt? Or semantic guidance? Or cuttof? Or prompt fusion?</p><p>or <a target="_blank" rel="ugc" href="https://github.com/jiuntian/sd-webui-interactdiffusion">https://github.com/jiuntian/sd-webui-interactdiffusion</a>?<br>just by imagining what you described I feel that it might be possible to create a whole new control over the prompt.</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-688154"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T19:24:54+05:00" datetime="2024-12-10T19:24:54+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3i-dropdown" id="mantine-r3i-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>I don't know if those are like versions like Forge -- if the code for it matches the code for A1111, then yes it would be a simple code swap for the file. It may have the same name "prompt_parser" but you'd need to examine the code and see if anything changed between the version I used to modify (A1111's web ui) vs the others.</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-688155"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T19:26:12+05:00" datetime="2024-12-10T19:26:12+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3j-dropdown" id="mantine-r3j-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>What you posted is an extension for WebUi / A1111. So yes, it will work with it. <a target="_blank" rel="ugc" href="https://github.com/jiuntian/sd-webui-interactdiffusion">jiuntian/sd-webui-interactdiffusion: WebUI extension for InteractDiffusion</a></p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-688161"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T19:28:16+05:00" datetime="2024-12-10T19:28:16+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3k-dropdown" id="mantine-r3k-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>It is a prompt_parser -- everything you type into the box for positive and negative prompts. It translates what you type and basically translates it into code that the program sends to the model to retrieve the weights...essentially thats what it does. So we just add a few new rules for the prompt_parser and just like that you have more control. What you do with it, is up to you.</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-688243"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">daskmaster</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-10T20:12:08+05:00" datetime="2024-12-10T20:12:08+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3l-dropdown" id="mantine-r3l-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>cool</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root mantine-4ijnyf" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-1 mantine-Button-label"><div class="mantine-Text-root mantine-9yukw3">👍</div> 1</span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-690185"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">daskmaster</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-11T20:18:08+05:00" datetime="2024-12-11T20:18:08+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3m-dropdown" id="mantine-r3m-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-ljqvxq"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>Can you explain how the Sequences works?<br><br>I don't quite understand. Does the model perfectly understand such words as females, hair, eyes, and can separate on their basis what words refer to what or what?</p><p><br></p><p>And these same sections can I use other reference points, say quality, character, or color?</p></div></div></div><div class="flex justify-start"><div class="mantine-Text-root cursor-pointer text-sm mantine-12i30r7">Show less</div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-690241"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">daskmaster</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-11T21:06:05+05:00" datetime="2024-12-11T21:06:05+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3n-dropdown" id="mantine-r3n-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-ljqvxq"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>Oh, and have you tried combining the Sequences with the combination?<br><br>I just learned that it's possible to combine two words into a single concept, for example.<br></p><p>[cristal * sword: 0.9]</p><p><br>Does what?<br></p><p>Combines two concepts into a single combined representation.<br></p><p>The generator tries to represent both items as related or merged into one.<br></p><p>A weight of 0.76 indicates how important this merging is.<br></p><p>The prompt is interpreted as “crystal sword”, not just two separate objects “crystal” and “sword”.<br></p><p>That's what I understood from the explanations, maybe this will help you to improve Sequences<br></p></div></div></div><div class="flex justify-start"><div class="mantine-Text-root cursor-pointer text-sm mantine-12i30r7">Show less</div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-690436"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-11T23:52:23+05:00" datetime="2024-12-11T23:52:23+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3o-dropdown" id="mantine-r3o-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-ljqvxq"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>In prompt_parser which is a modified version with additional rules, a * is not defined as a special rule. It is treated as plain text. </p><p></p><p>If you look at the code * is not defined as a special character. </p><p></p><p>In my code update , if you use an underscore to connect two prompts it connects them together as one prompt. </p><p></p><p>Chat GPT explains it like this:</p><p><strong>Significance of _ in Combinations</strong></p><p></p><p><strong>1. Unity in Representation</strong></p><p><strong>• </strong>_<strong> unifies multiple prompts into a single cohesive representation that the parser treats as one element.</strong></p><p><strong>• Example: </strong>mountain_snowy_peak<strong> ensures that “snowy” and “peak” are associated with “mountain.”</strong></p><p></p><p><strong>2. Avoids Misinterpretation</strong></p><p><strong>• Without </strong>_<strong>, spaces or other delimiters might confuse the parser, leading to misinterpretation or separation of related terms.</strong></p><p><strong>• For example, </strong>tree pine needles<strong> could be interpreted as three separate elements (</strong>tree<strong>, </strong>pine<strong>, </strong>needles<strong>), whereas </strong>tree_pine_needles<strong> ensures they are connected.</strong></p><p></p><p><strong>3. Enhances Flexibility</strong></p><p><strong>• </strong>_<strong> allows for flexible combinations of prompts without needing to write extensive or complex grammar rules for every possible connection.</strong></p><p></p><p></p><p>Key Observations</p><p> 1. The _ is exclusive to combinations and is not interchangeable with other delimiters like | or ,.</p><p> 2. It is particularly useful in descriptive prompts or hierarchical sequences where multiple attributes must be linked.</p><p> 3. The use of _ simplifies grammar parsing and ensures logical grouping of related elements.</p><p>By combining prompts effectively, the _ ensures that the generated outputs adhere to the intended structure and relationships between elements. It is a fundamental tool for clarity and precision in prompt composition.</p></div></div></div><div class="flex justify-start"><div class="mantine-Text-root cursor-pointer text-sm mantine-12i30r7">Show less</div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-690428"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-11T23:39:49+05:00" datetime="2024-12-11T23:39:49+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3p-dropdown" id="mantine-r3p-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-ljqvxq"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>A sequence starts with “::” and terminates with either “;” or “_;”. </p><p></p><p>Yes you can use them in combination with groups “{ }” and if it’s complicated you need to terminate with “_;”. Essentially if it’s not complicated, you won’t get any errors if you get an error you should terminate with underscore + semicolon “_;”</p><p></p><p>A parser does not provide any updates to the model it just provides the user a different way to create a prompt. </p><p></p><p>A sequence takes the prompt preceding “::” and starts a tree. Items after it are its children. </p><p></p><p>This is how Chat GPT describes a tree and children and how it works in prompt_parser:</p><p></p><p>In the context of the prompt_parser and the concept of a sequence, understanding it as a tree structure provides a clear and organized view of how prompts are parsed and nested.</p><p>What is a Tree in the Parser?</p><p> • A tree represents the hierarchical structure of a parsed prompt.</p><p> • Each node in the tree can have children (sub-prompts or elements) or be a leaf (a terminal value like a specific word or token).</p><p> • A sequence in a prompt creates a tree where the primary element (the parent) has a series of children that describe or modify it.</p><p>How Sequences Work in Trees</p><p> 1. Parent-Child Relationship:</p><p> • A sequence like tree::oak creates a parent node (tree) with one child (oak).</p><p> • The parent (e.g., tree) represents the main concept, while the child (e.g., oak) describes a specific attribute or property.</p><p> 2. Nested Sequences:</p><p> • Sequences can themselves contain other sequences or nested elements.</p><p> • For example, tree::oak::leafy creates a tree structure where:</p><p> • tree is the root.</p><p> • oak is the child of tree.</p><p> • leafy is the child of oak.</p><p>Visualization:</p><p>tree</p><p> └── oak</p><p> └── leafy</p><p> 3. End Tokens for Sequences:</p><p> • Sequences are terminated by specific delimiters like ; or _ ;, which signal the parser to close the current sequence branch and move to the next element.</p><p>How Nested Trees Work in Parsing</p><p> 1. Example:</p><p>A more complex sequence, such as:</p><p>tree::oak::leafy; flower::rose::red;</p><p>Creates a tree with two distinct branches:</p><p> • Branch 1: tree -> oak -> leafy</p><p> • Branch 2: flower -> rose -> red</p><p>Visualization:</p><p>Root</p><p> ├── tree</p><p> │ └── oak</p><p> │ └── leafy</p><p> └── flower</p><p> └── rose</p><p> └── red</p><p> 2. Mixing Nested Elements:</p><p> • Nested structures can combine sequences with other elements like groups, alternates, or emphasized elements.</p><p> • Example:</p><p>{tree::oak, flower::rose};</p><p> • The grouping {} creates a parent node where tree::oak and flower::rose are siblings.</p><p>Visualization:</p><p>Group</p><p> ├── tree</p><p> │ └── oak</p><p> └── flower</p><p> └── rose</p><p> 3. Parsing Behavior:</p><p> • The parser processes the input prompt left-to-right, building nodes and branches dynamically based on the rules (e.g., ::, {}, []).</p><p> • Nested trees allow for infinite flexibility in describing relationships and variations within prompts.</p><p>Key Points for Sequences in Nested Trees</p><p> 1. Root Node:</p><p> • Every sequence begins with a root (the main subject of the prompt, such as tree).</p><p> 2. Children:</p><p> • Subsequent elements separated by :: become children that describe or refine the root.</p><p> 3. Depth:</p><p> • The tree grows in depth with each ::, where the last element in the sequence is the deepest child.</p><p> 4. Siblings:</p><p> • Sequences separated by ; or _ ; become sibling branches under the same parent node or at the root level.</p><p> <strong>5. Hierarchy and Context:</strong></p><p><strong>• The hierarchy of the tree determines how elements relate to each other.</strong></p><p><strong>• For example, in </strong>tree::oak::leafy<strong>, the context of </strong>leafy<strong> is fully dependent on its ancestors (</strong>oak<strong> and </strong>tree<strong>), meaning the term </strong>leafy<strong> specifically describes the type of “oak tree” rather than being independent.</strong></p><p><strong>6. Sequence Termination:</strong></p><p><strong>• A sequence branch is considered complete when a delimiter like </strong>;<strong> or </strong>_ ;<strong> is encountered. This allows the parser to close the current branch and start a new one.</strong></p><p><strong>• For example:</strong></p><p></p><p>tree::oak::leafy; flower::rose::red;</p><p></p><p><strong>This creates two separate branches, as the </strong>;<strong> signals the end of </strong>tree::oak::leafy<strong> and begins parsing </strong>flower::rose::red<strong>.</strong></p><p></p><p><strong>7. Mixing Nested Sequences with Other Elements:</strong></p><p><strong>• Groups, alternates, and other elements can integrate into sequences, creating complex nested trees. For instance:</strong></p><p></p><p>tree::oak::leafy::{season|spring|fall};</p><p></p><p><strong>This combines a sequence (</strong>tree::oak::leafy<strong>) with an alternate group (</strong>season|spring|fall<strong>) as a child node.</strong></p><p><strong>Visualization:</strong></p><p></p><p>tree</p><p>└── oak</p><p> └── leafy</p><p> └── {season|spring|fall}</p><p></p><p></p><p><strong>8. Dynamic Expansion:</strong></p><p><strong>• Nested sequences allow dynamic generation of highly detailed and nuanced prompts. For example:</strong></p><p></p><p>tree::oak::{green|leafy|dry}::height::{tall|medium|short};</p><p></p><p><strong>This creates multiple possible trees by expanding the alternates within the sequence:</strong></p><p><strong>• </strong>tree -> oak -> green -> height -> tall</p><p><strong>• </strong>tree -> oak -> leafy -> height -> medium</p><p><strong>• </strong>tree -> oak -> dry -> height -> short</p><p><strong>• And so on…</strong></p><p></p><p><strong>9. Error Handling in Trees:</strong></p><p><strong>• Improperly formatted sequences (e.g., missing termination or unmatched delimiters) can cause errors during parsing. For example:</strong></p><p></p><p>tree::oak::leafy, flower::rose::red</p><p></p><p><strong>Here, the comma </strong>,<strong> disrupts the sequence structure, as it is not a valid delimiter for sequence termination. The parser might throw an error or misinterpret the prompt.</strong></p><p></p><p><strong>10. Parser Flexibility:</strong></p><p><strong>• The tree-based structure allows the </strong>prompt_parser<strong> to process deeply nested and intricate sequences. This flexibility supports advanced use cases, such as describing relationships between multiple entities in the same prompt or generating varied outputs with precise control.</strong></p><p></p><p><strong>Summary of Nested Trees in Sequences</strong></p><p><strong>• Trees provide a way to organize the hierarchical structure of sequences.</strong></p><p><strong>• The root node represents the main concept, with children adding details and depth.</strong></p><p><strong>• Nested sequences allow complex descriptions and context-dependent relationships between elements.</strong></p><p><strong>• Delimiters (</strong>;<strong>, </strong>_ ;<strong>) are crucial for defining boundaries within the tree.</strong></p><p><strong>• The tree structure is flexible, supporting additional features like groups, alternates, and weighted elements.</strong></p><p></p><p><strong>This approach ensures that even the most complex prompts can be parsed, understood, and expanded into meaningful outputs.</strong></p></div></div></div><div class="flex justify-start"><div class="mantine-Text-root cursor-pointer text-sm mantine-12i30r7">Show less</div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-695902"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">daskmaster</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-14T21:57:17+05:00" datetime="2024-12-14T21:57:17+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3q-dropdown" id="mantine-r3q-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-ljqvxq"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>Hm..... new idea semantic guidance<br><a target="_blank" rel="ugc" href="https://github.com/v0xie/sd-webui-semantic-guidance/tree/mct2izer0">https://github.com/v0xie/sd-webui-semantic-guidance/tree/mct2izer0</a><br><br>If you use your method of creating prompts in theory it should complement it by enhancing the effects, but you will need to change the method of using prompt parser in the code so that it can support seguence, group, etc. as I understand from the code of this branch, only a few simple tweaks will be needed.</p></div></div></div><div class="flex justify-start"><div class="mantine-Text-root cursor-pointer text-sm mantine-12i30r7">Show less</div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-699517"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">daskmaster</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-16T19:04:25+05:00" datetime="2024-12-16T19:04:25+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3r-dropdown" id="mantine-r3r-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>Hi new update?</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-699633"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/unnamed.jpg" alt="daskmaster's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/daskmaster"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">daskmaster</div></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-16T20:47:19+05:00" datetime="2024-12-16T20:47:19+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3s-dropdown" id="mantine-r3s-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>soo and how to use? mountain:lake:0.7:15%-30% is this how it's gonna work or should it [mountain:lake:0.7:15%-30%] and reverse</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div><div class="mantine-Stack-root mantine-15jx8aq"><div class="mantine-Stack-root mantine-fui8ih"><div class="mantine-Group-root mantine-1dlf95a" id="comment-701173"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-17T10:43:13+05:00" datetime="2024-12-17T10:43:13+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3t-dropdown" id="mantine-r3t-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>if you want to do a scheduled with a emphasis of 0.7 with a focused at 15%-30% then yes first one is fine...or ssecond one. In this prompt parser, the [] are optional. if you want reverse so it would go from lake to mountain instead of mountain to lake, add ":r" or :reverse at the end, likee so: mountain:lake:0.7:15%-30%:r OR [mountain:lake:0.7:15%-30%:r] // as for updates -- I am working on a bugfix update which doesn't break the other functions. </p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root mantine-1rk94m8" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-1 mantine-Button-label"><div class="mantine-Text-root mantine-9yukw3">👍</div> 1</span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-701194"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-17T10:54:56+05:00" datetime="2024-12-17T10:54:56+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3u-dropdown" id="mantine-r3u-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>I don't use scheduling that often, but I thought it would be cool to specify focus for steps, which is why the feature for steps or percentages was added. Percentages seem to be a little smoother versus using steps, but a neat feature nonetheless. </p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root mantine-1rk94m8" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-1 mantine-Button-label"><div class="mantine-Text-root mantine-9yukw3">👍</div> 1</span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-756519"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2025-01-10T20:23:09+05:00" datetime="2025-01-10T20:23:09+05:00">4 days ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r3v-dropdown" id="mantine-r3v-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>Tested with forge - no issues :)</p><p>Forge might actually be my new favorite SD program ~ Tested and works with Forge.</p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button><button class="mantine-UnstyledButton-root mantine-Button-root mantine-1rk94m8" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 flex gap-1 mantine-Button-label"><div class="mantine-Text-root mantine-9yukw3">❤️</div> 1</span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div></div></div></div><button class="mantine-UnstyledButton-root mantine-nr69kh" type="button"></button></div><div class="mantine-Group-root mantine-1dlf95a" id="comment-701188"><div class="mantine-Group-root mantine-1g4q40w"><div class="mantine-Group-root mantine-1gg8vod"><a href="https://civitai.com/user/KittensX"><div class="mantine-Indicator-root mantine-cf0b3j"><div class="mantine-Paper-root mantine-1l15trw" style="overflow: hidden; position: relative; background-color: rgba(255, 255, 255, 0.31); border-radius: 50%;"><img class="EdgeImage_image__iH4_q" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/00109-116959476852.jpeg" alt="KittensX's Avatar" loading="lazy" style="max-width: 450px; object-fit: cover; min-height: 100%;"></div></div></a></div></div><div class="mantine-Stack-root mantine-1qlxz9s" style="flex: 1 1 0%;"><div class="mantine-Group-root mantine-1dn2tzg"><div class="mantine-Group-root mantine-1dib7ec"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Stack-root mantine-hghrbz"><a href="https://civitai.com/user/KittensX"><div class="mantine-Group-root mantine-1u5ck20"><div class="mantine-Group-root mantine-1gg8vod"><div class="mantine-Text-root mantine-7c8fqu">KittensX</div></div><div class="mantine-Badge-root mantine-r11dfj"><span class="mantine-h9iq4m mantine-Badge-inner">op</span></div></div></a></div></div><div class="mantine-Text-root mantine-t3rda4"><time title="2024-12-17T10:52:17+05:00" datetime="2024-12-17T10:52:17+05:00">a month ago</time></div></div><button class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-ebg4u" type="button" aria-haspopup="menu" aria-expanded="false" aria-controls="mantine-r40-dropdown" id="mantine-r40-target"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dots-vertical "><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></button></div><div class="mantine-Stack-root mantine-mwqi5l" style="flex: 1 1 0%;"><div class="mantine-1pxpe37"><div class="mantine-Text-root mantine-1x3omva"><div class="mantine-TypographyStylesProvider-root mantine-mqq5wg"><div><p>if you get an error like " lark.exceptions.VisitError: Error trying to process rule "grouped":</p><p>sequence item 0: expected str instance, generator found" add "_;" to your prompt. For example this prompt: {log_cabin} forest_driveway_garage {guest_cabin} requires "_<em>;" or it won't work. It is a known issue. Presently I am aware of the problem, and may make "_;" optional as a fix. At this time, no plans to roll out an update for this issue. If you encounter this problem, add "_;".</em></p></div></div></div></div><div class="mantine-Group-root mantine-1u5ck20"><div class="flex items-center justify-center gap-1"><button class="mantine-UnstyledButton-root mantine-Button-root mantine-fjh1u7" type="button" data-button="true"><div class="mantine-3xbgk5 flex gap-0.5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-mood-smile "><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path><path d="M9 10l.01 0"></path><path d="M15 10l.01 0"></path><path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path></svg></span></div></button></div><button class="mantine-UnstyledButton-root mantine-Button-root mantine-15k25kx" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><div class="mantine-Group-root mantine-1u5ck20"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-back-up "><path d="M9 14l-4 -4l4 -4"></path><path d="M5 10h11a4 4 0 1 1 0 8h-1"></path></svg>Reply</div></span></div></button></div></div></div></div></div></div></div></main><footer class="sticky inset-x-0 bottom-0 z-50 mt-3 transition-transform" style="transform: translateY(var(--footer-height));"><div class="absolute bottom-[var(--footer-height)] left-2 mb-2"></div><div class="absolute bottom-[var(--footer-height)] right-2 group-[.no-scroll]:right-4"><div class="relative mb-2 flex gap-2 group-[.no-scroll]:mb-3"><button class="mantine-UnstyledButton-root mantine-Button-root transition-transform mantine-v5o495" type="button" data-button="true" style=""><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-arrow-up "><path d="M12 5l0 14"></path><path d="M18 11l-6 -6"></path><path d="M6 11l6 -6"></path></svg></span></div></button><span class="mantine-UnstyledButton-root mantine-Button-root mantine-v5o495" type="button" data-button="true"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message-chatbot "><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z"></path><path d="M9.5 9h.01"></path><path d="M14.5 9h.01"></path><path d="M9.5 13a3.5 3.5 0 0 0 5 0"></path></svg></span></div></span></div></div><div class=" relative flex h-[var(--footer-height)] w-full items-center gap-2 overflow-x-auto bg-gray-0 p-1 px-2 @sm:gap-3 dark:bg-dark-7 border-t border-gray-3 dark:border-dark-4" style="scrollbar-width: thin;"><div class="mantine-Text-root select-none text-nowrap font-bold mantine-ljqvxq">© Civitai 2025</div><div class="flex items-center"><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" href="https://civitai.com/creators-program"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Creators</span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" href="https://civitai.com/content/tos"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Terms of Service</span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" href="https://civitai.com/content/privacy"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Privacy</span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" href="https://civitai.com/safety"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Safety</span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" href="https://civitai.com/newsroom"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Newsroom</span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" target="_blank" rel="nofollow noreferrer" href="https://civitai.com/github/wiki/REST-API-Reference"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">API</span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" target="_blank" rel="nofollow noreferrer" href="https://status.civitai.com/"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Status</span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" target="_blank" rel="nofollow noreferrer" href="https://civitai.com/wiki"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Wiki</span></div></a><a class="mantine-UnstyledButton-root mantine-Button-root px-2.5 @max-sm:px-1 mantine-usl46c" type="button" data-button="true" target="_blank" rel="nofollow noreferrer" href="https://civitai.com/education"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">Education</span></div></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-3l9jp8" href="https://civitai.com/discord" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-discord "><path d="M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0"></path><path d="M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0"></path><path d="M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3"></path><path d="M7 16.5c3.5 1 6.5 1 10 0"></path></svg></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-3l9jp8" href="https://civitai.com/twitter" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-x "><path d="M4 4l11.733 16h4.267l-11.733 -16z"></path><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path></svg></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-3l9jp8" href="https://civitai.com/instagram" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-instagram "><path d="M4 4m0 4a4 4 0 0 1 4 -4h8a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-8a4 4 0 0 1 -4 -4z"></path><path d="M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path><path d="M16.5 7.5l0 .01"></path></svg></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-3l9jp8" href="https://civitai.com/youtube" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-youtube "><path d="M2 8a4 4 0 0 1 4 -4h12a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-8z"></path><path d="M10 9l5 3l-5 3z"></path></svg></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-3l9jp8" href="https://civitai.com/tiktok" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-tiktok "><path d="M21 7.917v4.034a9.948 9.948 0 0 1 -5 -1.951v4.5a6.5 6.5 0 1 1 -8 -6.326v4.326a2.5 2.5 0 1 0 4 2v-11.5h4.083a6.005 6.005 0 0 0 4.917 4.917z"></path></svg></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-3l9jp8" href="https://civitai.com/reddit" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-reddit "><path d="M12 8c2.648 0 5.028 .826 6.675 2.14a2.5 2.5 0 0 1 2.326 4.36c0 3.59 -4.03 6.5 -9 6.5c-4.875 0 -8.845 -2.8 -9 -6.294l-1 -.206a2.5 2.5 0 0 1 2.326 -4.36c1.646 -1.313 4.026 -2.14 6.674 -2.14z"></path><path d="M12 8l1 -5l6 1"></path><path d="M19 4m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><circle cx="9" cy="13" r=".5" fill="currentColor"></circle><circle cx="15" cy="13" r=".5" fill="currentColor"></circle><path d="M10 17c.667 .333 1.333 .5 2 .5s1.333 -.167 2 -.5"></path></svg></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-3l9jp8" href="https://civitai.com/github" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-github "><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"></path></svg></a><a class="mantine-UnstyledButton-root mantine-ActionIcon-root mantine-3l9jp8" href="https://civitai.com/twitch" target="_blank" rel="nofollow noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-twitch "><path d="M4 5v11a1 1 0 0 0 1 1h2v4l4 -4h5.584c.266 0 .52 -.105 .707 -.293l2.415 -2.414c.187 -.188 .293 -.442 .293 -.708v-8.585a1 1 0 0 0 -1 -1h-14a1 1 0 0 0 -1 1z"></path><path d="M16 8l0 4"></path><path d="M12 8l0 4"></path></svg></a></div><div class="ml-auto flex items-center gap-1"><a class="mantine-UnstyledButton-root mantine-Button-root mantine-8wi0qm" type="button" data-button="true" href="https://civitai.com/support"><div class="mantine-3xbgk5 mantine-Button-inner"><span class="mantine-qo1k2 mantine-Button-label">🛟 Support</span></div></a></div></div></footer></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"colorScheme":"dark","cookies":{"referrals":{"landingPage":"/"}},"flags":{"earlyAccessModel":true,"apiKeys":true,"ambientCard":true,"gallery":true,"posts":false,"articles":true,"articleCreate":true,"adminTags":false,"civitaiLink":false,"stripe":false,"imageTraining":false,"imageTrainingResults":false,"sdxlGeneration":true,"questions":false,"imageGeneration":true,"largerGenerationImages":true,"enhancedSearch":true,"alternateHome":true,"collections":true,"air":false,"profileCollections":true,"imageSearch":true,"buzz":true,"signal":false,"recommenders":false,"assistant":false,"bounties":true,"newsroom":true,"safety":true,"csamReports":false,"appealReports":false,"reviewTrainingData":false,"clubs":false,"createClubs":false,"moderateTags":false,"chat":false,"creatorsProgram":false,"buzzWithdrawalTransfer":false,"vault":false,"draftMode":true,"membershipsV2":true,"cosmeticShop":true,"impersonation":false,"donationGoals":true,"creatorComp":true,"experimentalGen":false,"imageIndex":true,"imageIndexFeed":true,"isGreen":false,"isBlue":true,"isRed":false,"canViewNsfw":true,"canBuyBuzz":false,"customPaymentProvider":true,"adsEnabled":true,"paddleAdjustments":false,"announcements":false,"blocklists":false,"toolSearch":true},"seed":1736840748305,"hasAuthCookie":true,"id":9140,"slug":["update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge"],"trpcState":{"json":{"mutations":[],"queries":[{"state":{"data":{"id":9140,"createdAt":"2024-11-24T07:12:39.349Z","nsfwLevel":1,"userNsfwLevel":2,"content":"\u003cp\u003eUpdate 1/10/2025:\u003c/p\u003e\u003cp\u003eAdded Forge Implementation:\u003c/p\u003e\u003cp\u003eEssentially - to work with forge you need to add in the SDConditioning for distilled_cfg_scale=None since this is now part of processing. For this code section:\u003c/p\u003e\u003cpre\u003e\u003ccode\u003eclass SdConditioning(list):\n \"\"\"\n A list with prompts for stable diffusion's conditioner model.\n Can also specify width and height of created image - SDXL needs it.\n \"\"\"\n def __init__(self, prompts, is_negative_prompt=False, width=None, height=None, copy_from=None, distilled_cfg_scale=None):\n super().__init__()\n self.extend(prompts)\n\n if copy_from is None:\n copy_from = prompts\n\n self.is_negative_prompt = is_negative_prompt or getattr(copy_from, 'is_negative_prompt', False)\n self.width = width or getattr(copy_from, 'width', None)\n self.height = height or getattr(copy_from, 'height', None)\n self.distilled_cfg_scale = distilled_cfg_scale or getattr(copy_from, 'distilled_cfg_scale', None)\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI'm adding this file to my github as \"prompt_parser - \u003ca target=\"_blank\" rel=\"ugc\" href=\"http://forge.py\"\u003eforge.py\u003c/a\u003e\" to differentiate them. When you put it in your forge\\modules folder, make a copy of the original prompt parser, then paste this file in. Rename this file to simply \"prompt_\u003ca target=\"_blank\" rel=\"ugc\" href=\"http://parser.py\"\u003eparser.py\u003c/a\u003e\" and then run a new instance of webui to use it.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eI wanted to use python 3.9 and didn't feel like updating so I modified Forge to work with Python 3.9 --not getting into the details but here is a sample image using the prompt parser:\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/f1270062-adfc-4b28-9417-22140cda2e76/width=525/f1270062-adfc-4b28-9417-22140cda2e76.jpeg\" /\u003emountain::lake, Tree::oak, autumn_;, mountain:lake:0.7:15%-30%\u003c/p\u003e\u003cp\u003eSteps: 35, Sampler: DPM2, Schedule type: Karras Exponential, CFG scale: 7, Seed: 140850743528, Size: 960x640, Model hash: 81d4d52035, Model: Qasar_anireal, Denoising strength: 0.4, Hires Module 1: Use same choices, Hires CFG Scale: 7, Hires upscale: 2, Hires steps: 35, Hires upscaler: 4x-UltraSharp, Version: f2.0.1v1.10.1-previous-633-ge073e4ec\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eAdding in my scheduler was also very easy PM me if you need help with that.\u003c/p\u003e\u003ch1 id=\"update-1210-sl77afiv4\"\u003eUPDATE 12/10\u003c/h1\u003e\u003cp\u003e\u003cem\u003eAnd more updates planned\u003c/em\u003e\u003c/p\u003e\u003cp\u003eThis update adds: \u003cstrong\u003e\u003cu\u003ereverse scheduling\u003c/u\u003e\u003c/strong\u003e and \u003cstrong\u003e\u003cu\u003escheduling with steps or %\u003c/u\u003e\u003c/strong\u003e\u003c/p\u003e\u003ch2 id=\"how-to-use-reverse-scheduling-5z5bluowb\"\u003eHow to use reverse scheduling\u003c/h2\u003e\u003cp\u003e- after setting up the schedule, add \"r\" or \"reverse\":\u003c/p\u003e\u003cp\u003e[prompt]:0.7:r\u003c/p\u003e\u003cp\u003eor prompt:0.7:r\u003c/p\u003e\u003ch2 id=\"how-to-use-scheduling-with-steps:-v8qh3unzo\"\u003e\u003cbr /\u003eHow to use scheduling with steps:\u003c/h2\u003e\u003cp\u003eNote: it will clamp max steps if you specify in the prompt more than you actually use.\u003c/p\u003e\u003cp\u003eNote: 15-30 vs 15%-30% (example 100 steps) will not give you the same image. I thought it would and I tried to correct it and I guess I gave up, but I'm ok with it. It gives a slightly different image, and I'm ok with that. Let me show you an example of the differences between 15-30 and 15% to 30%:\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/6b36ea50-82e5-43fe-882c-7510a8bcc0cb/width=525/6b36ea50-82e5-43fe-882c-7510a8bcc0cb.jpeg\" /\u003emountain:lake:0.7:15%-30%\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e94504b6-2c3d-43d3-90ce-b3d85f959ff1/width=525/e94504b6-2c3d-43d3-90ce-b3d85f959ff1.jpeg\" /\u003emountain:lake:0.7:15-30\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eSimilar but different images.\u003c/p\u003e\u003cp\u003eAnd I'm ok with that, and hope you will be too. If not feel free to contribute on github.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch3 id=\"so-back-to-explaining-step-scheduling.-zllwkjvok\"\u003eSo back to explaining step scheduling.\u003c/h3\u003e\u003cp\u003eEssentiallly, you can instruct it to focus on steps 15-30 or 15% -30% of the generation (or pick your number/percent) and it will focus on those elements. You might not see much with a simple prompt with nothing else, but this is more of an example of how to use it versus the best prompt you can do.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eExample prompt inputs for both -- please see the beach images here: \u003ca target=\"_blank\" rel=\"ugc\" href=\"https://civitai.com/posts/10135414\"\u003eImage post by KittensX | Civitai\u003c/a\u003e\u003c/p\u003e\u003cp\u003eor reference the below sample image. I thought the orange was a bit overstated but I kind of expected as much based on the prompt. I thought the sand and imprints in the sand were spot on for realisticness.\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/57e0b4d0-f8b9-4798-9c47-c890cd632d64/width=525/57e0b4d0-f8b9-4798-9c47-c890cd632d64.jpeg\" /\u003ebackground::{white|blue|orange_sky}:50%-100%:r | {orange|white|blue_water}:10%-50%;, {sky, clouds}, {sand, beach::footprints in the sand;}\u003c/p\u003e\u003cp\u003eSteps: 100, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 118255258105, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.4, Clip skip: 2, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 60, Hires upscaler: 8x_NMKD-Superscale_150000_G, Version: v1.10.1, Hashes: {\"model\": \"7be8cfbcd2\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"update-1262024:-oafub0r3w\"\u003eUPDATE 12/6/2024:\u003c/h2\u003e\u003cp\u003eAdded the following:\u003c/p\u003e\u003cul\u003e\u003cli\u003e\u003cp\u003euse | for OR functionality.\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003euse \u0026amp; or AND for implicit AND functionality\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003euse \"::\" to start a sequence, end it with \";\" or if a nested sequence, must end each nested sequence with \";\" with the last sequence with \"_;\".\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003euse \"_\" to link concepts\u003c/p\u003e\u003cp\u003efor ungrouped requirements to join ideas like \"red_hat\" or \"green_hair\"\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003e\u003cu\u003ein progress ~ limited functionality in practice\u003c/u\u003e\u003c/strong\u003e\u003c/p\u003e\u003cp\u003euse numbers joined with \"_\" for quantity. In practice, it might be easier for CLIP to detect the use of a number in a sentence rather than a parse rule. If I can't get it to function with parsing I may re-release without this function.\u003c/p\u003e\u003cp\u003eThis is a work in progress. In theory, if the number is followed by an exclamation point, it should enforce at least that amount in the output. It might duplicate output without actually get the model to draw a quantity number of items. Like if you wanted to draw 2 moons 2_moons ...it might just be easier and the model might understand it if you just use natural language. Using 2_ or 4_ or whatever number inside a group is meant to simplify a prompt, but it might just not be implemented correctly. Hence why I've added some functionality but won't guarantee it's effectiveness.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"simple-examples-to-better-understand-these-parsing-rules:-1hogxpglb\"\u003eSimple Examples to better understand these parsing rules:\u003c/h2\u003e\u003ch3 id=\"or-function-(allows-or-without-using-)-sbq2nacbn\"\u003e| Function (allows or without using [])\u003c/h3\u003e\u003cp\u003ered | blue | green\u003c/p\u003e\u003cp\u003eOnly one option will be chosen during parsing or generation\u003c/p\u003e\u003cp\u003eSeems to either work great, or favor one output. Is not 100%.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch3 id=\"using-and-to-enforce-conditions-oizrkyod2\"\u003eUsing \u0026amp; to enforce conditions\u003c/h3\u003e\u003cp\u003e\u003cem\u003eSimple example:\u003c/em\u003e\u003c/p\u003e\u003cp\u003ered \u0026amp; blue \u0026amp; green\u003c/p\u003e\u003cp\u003eRepresents a combination where \u003cstrong\u003eall conditions are required simultaneously\u003c/strong\u003e.\u003c/p\u003e\u003cp\u003eIn negative prompts, it would mean that none of these are allowed\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch3 id=\"conjoining-words-with-\u0026quot;_\u0026quot;-kc4br5kmo\"\u003eConjoining words with \"_\"\u003c/h3\u003e\u003cp\u003ered|blue|green_eyes\u003c/p\u003e\u003cp\u003eWill return red_eyes or blue_eyes or green_eyes. Because the last sequence had the joiner \"_\", it allows you to do various things like blonde|brunette|red_hair\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003ered_hair will group the first concept with the second concept\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch3 id=\"sequences-ifgc4ygdo\"\u003eSequences\u003c/h3\u003e\u003cp\u003eSequences are meant to enhance assignment of attributes to objects.\u003c/p\u003e\u003cp\u003eThey can be simple, or they can include nested sequences. Example:\u003c/p\u003e\u003cp\u003eYou could describe a person like this:\u003c/p\u003e\u003cp\u003e{female:: hair::blonde, natural color, long, curly;, eyes::beautiful, brown, large;, adult, wearing::gym shorts, midriff, socks, sneakers_;}, {male::brown eyes, green hair, red_shirt}\u003c/p\u003e\u003cp\u003eSeems to work fairly well, though I don't know everything and refinement is still needed, and though colors might be specified, sometimes the just end up on the wrong person. So I'm not 100% sure how to enforce this.\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/813b3844-4618-4e5f-967f-7492e4d6f76a/width=525/813b3844-4618-4e5f-967f-7492e4d6f76a.jpeg\" /\u003e{2 people_{female:: hair::blonde, natural color, long, curly;, eyes::beautiful, brown, large;, adult, wearing::gym shorts, midriff, socks, sneakers_;}, {male::brown eyes, green hair, red_shirt}}\u003c/p\u003e\u003cp\u003eNegative prompt: {magazine, watermark}, nude\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758917, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fddf6b34-f4c1-43b1-8062-e5fcbb1b0114/width=525/fddf6b34-f4c1-43b1-8062-e5fcbb1b0114.jpeg\" /\u003e{2 people_{female:: blonde_hair:: natural color, long, curly;, brown_eyes::beautiful, large;, adult, blue_{gym shorts}, midriff, white_socks, pink_sneakers_;}, {male::brown_eyes, wearing::green_shirt, black_pants, striped_shorts;}}, park_background::bench, tree, brook, wooden_bridge::over the stream, concrete path_;,\u003c/p\u003e\u003cp\u003eNegative prompt: {magazine, watermark}, nude, hand:6_fingers AND 3_fingers AND wrong_fingercount;\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758915, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003ch3 id=\"-yz5jbonm6\"\u003e\u003c/h3\u003e\u003ch3 id=\"using-sequence-(\u0026quot;::\u0026quot;)-367t8mhlf\"\u003eUsing sequence (\"::\")\u003c/h3\u003e\u003cp\u003eIn practice, assigning attributes to objects has been easier, whether you use a sequence or use conjoining \"_\"\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/c2aad85a-3570-4b61-a5d6-e26d9e789a65/width=525/c2aad85a-3570-4b61-a5d6-e26d9e789a65.jpeg\" /\u003efemale:: age-22, blonde, glasses, tall, blue eyes, pink shirt,\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 14870554953, Size: 960x640, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.7, Clip skip: 2, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 40, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch3 id=\"using-sequence-and-conjoiners-c7a9254hn\"\u003eUsing Sequence and Conjoiners\u003c/h3\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d8c232e0-74c6-4e43-b280-f2d2f35a9889/width=525/d8c232e0-74c6-4e43-b280-f2d2f35a9889.jpeg\" /\u003e{2 females:: brunette|blonde hair:: long:: slightly wavy; , {blue|green_eyes}; , adult::age-18;, wearing::(red_panties) \u0026amp; (white_bra);, eyes::beautiful_eyes, (same_color);, height::same_size_;}, background::studio, deep black,solid black;, lighting: filtered, synthetic;,\u003c/p\u003e\u003cp\u003eNegative prompt: {magazine, watermark}, arms::3_arms, intersecting;, legs:3_legs;, {child::childlike features;, teen}, breasts::large;, hand::6_fingers, 3_fingers, no_thumb_;, fingers::trailing, unattached;, eyes:: plastic, bad, ugly;\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758916, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9a63e87c-b9b9-4265-9d9f-8568bbb08b1a/width=525/9a63e87c-b9b9-4265-9d9f-8568bbb08b1a.jpeg\" /\u003e{2 females:: brunette|blonde hair:: long:: slightly wavy; , {blue|green_eyes}; , adult::age-18;, wearing::(red_panties) \u0026amp; (white_bra);, eyes::beautiful_eyes, (same_color);, height::same_size_;}, background::studio, deep black, inside a room;, lighting: filtered, synthetic;,\u003c/p\u003e\u003cp\u003eNegative prompt: {magazine, watermark}, arms::3_arms, intersecting;, legs:3_legs;, {child::childlike features;, teen}, breasts::large;, hand::6_fingers, 3_fingers, no_thumb_;, fingers::trailing, unattached;, eyes:: plastic, bad, ugly;\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 84494253437, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003e\u003cu\u003eIt doesn't seem to be 100% but these prompts are fresh and need refinement, but it looks promising.\u003c/u\u003e\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"more-pictures-rn90otxnc\"\u003eMore pictures\u003c/h2\u003e\u003cp\u003eI have started to test out the functions. The OR and the AND function is iffy, but the use of the \"_\" to connect two objects like you would in a group using \"{ }\" seems to work fairly well. Using these may change a model to give a different style output, at least that's what I've noticed with mine. Here below are a few more sample pictures that I've been messing around with.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/dd4e9f72-e591-4724-bdae-c8008f09e020/width=525/dd4e9f72-e591-4724-bdae-c8008f09e020.jpeg\" /\u003e[mountain:lake:0.5], {stormclouds | sunny}\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 79500811399, Size: 960x640, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.7, Clip skip: 2, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 40, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/47e5d178-0917-4337-80b2-a6f39234b3ff/width=525/47e5d178-0917-4337-80b2-a6f39234b3ff.jpeg\" /\u003e{female:: tall:: athletic; cheerful \u0026amp; kind_eyes; wearing tshirt \u0026amp; shorts_; | animal:: furry, small, playful; } \u0026amp; {red_hat, green_hair \u0026amp; blue_eyes};, photorealistic, a photo,\u003c/p\u003e\u003cp\u003eNegative prompt: {magazine, watermark}, nude\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758915, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/829046ad-e53e-4dc4-bba3-b6cac87bfb74/width=525/829046ad-e53e-4dc4-bba3-b6cac87bfb74.jpeg\" /\u003e2_{female:: tall:: athletic, blonde; cheerful \u0026amp; kind_eyes_; | animal:: furry, small, playful; } \u0026amp; {red_hat | green_hair \u0026amp; blue_eyes};\u003c/p\u003e\u003cp\u003eNegative prompt: {magazine, watermark}, nude\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758915, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/e01707b2-2dc3-4c5e-b4a3-18487a249ae7/width=525/e01707b2-2dc3-4c5e-b4a3-18487a249ae7.jpeg\" /\u003e2_{person:: tall:: athletic, muscular_; cheerful \u0026amp; kind_eyes_; | animal:: furry, small, playful_; } | 3_{red_hat | green_hair \u0026amp; blue_eyes};\u003c/p\u003e\u003cp\u003eNegative prompt: {magazine, watermark},\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758917, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/b9f6f0db-f363-41d7-83b1-7c35927ecd64/width=525/b9f6f0db-f363-41d7-83b1-7c35927ecd64.jpeg\" /\u003e{2 females:: brunette|blonde hair:: long:: slightly wavy; , {blue|green_eyes}; , adult::age-18;, wearing::(red_panties) \u0026amp; (white_bra);, eyes::beautiful_eyes, (same_color);, height::same_size_;}, background::studio, deep black,solid black;, lighting: filtered, synthetic;,\u003c/p\u003e\u003cp\u003eNegative prompt: {magazine, watermark}, arms::3_arms, intersecting;, legs:3_legs;, {child::childlike features;, teen}, breasts::large;, hand::6_fingers, 3_fingers, no_thumb_;, fingers::trailing, unattached;, eyes:: plastic, bad, ugly;\u003c/p\u003e\u003cp\u003eSteps: 60, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 32477758914, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Clip skip: 2, Hypertile U-Net: True, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003e==============================================\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eAlso on github \u003ca target=\"_blank\" rel=\"ugc\" href=\"https://github.com/Kittensx/Prompt-Architect-for-A1111\"\u003ehere \u003c/a\u003e\u003cstrong\u003eLink updated on 12/6/2024\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eFor updated pictures \u0026amp; Tests please view the post (click the view button) to see the entire post, which includes detailed comments and comparisons.\u003c/p\u003e\u003cp\u003e\u003ca target=\"_blank\" rel=\"ugc\" href=\"https://civitai.com/posts/9615037\"\u003eThe mountain test | Civitai\u003c/a\u003e\u003c/p\u003e\u003cp\u003e\u003ca target=\"_blank\" rel=\"ugc\" href=\"https://civitai.com/posts/9616590\"\u003eAnother Test \u0026amp; Comparisons | Civitai\u003c/a\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eIt shows how varying between grouping {}, transitions : , or scheduling, object1:object2:object3:weight example: mountain:lake:trees:0.5 can transform your image. It is a simple test meant to illustrate how you can use them in your pictures.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eUpdate: added 'grouped' to the prompt section on line 17. Now it's properly parsing the grouped parse rules.\u003c/p\u003e\u003cp\u003eUpdate: commented out the sorted list return on res (~ line 142). Now it is returning res without sorting or removing duplicates.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch1 id=\"new-features-donxqcv9u\"\u003e\u003cstrong\u003e\u003cspan style=\"color:rgb(34, 139, 230)\"\u003eN\u003c/span\u003e\u003cspan style=\"color:rgb(64, 192, 87)\"\u003ee\u003c/span\u003e\u003cspan style=\"color:rgb(250, 176, 5)\"\u003ew\u003c/span\u003e \u003cspan style=\"color:rgb(250, 82, 82)\"\u003eF\u003c/span\u003e\u003cspan style=\"color:rgb(230, 73, 128)\"\u003ee\u003c/span\u003e\u003cspan style=\"color:rgb(190, 75, 219)\"\u003ea\u003c/span\u003e\u003cspan style=\"color:rgb(121, 80, 242)\"\u003et\u003c/span\u003e\u003cspan style=\"color:rgb(64, 192, 87)\"\u003eu\u003c/span\u003e\u003cspan style=\"color:rgb(21, 170, 191)\"\u003er\u003c/span\u003e\u003cspan style=\"color:rgb(230, 73, 128)\"\u003ee\u003c/span\u003e\u003cspan style=\"color:rgb(253, 126, 20)\"\u003es\u003c/span\u003e\u003c/strong\u003e\u003c/h1\u003e\u003cp\u003eSo, I've added the following functionality:\u003c/p\u003e\u003cp\u003e1) Grouping using brackets {}.\u003c/p\u003e\u003cp\u003e2) Multiple scheduling using colons :.\u003c/p\u003e\u003cp\u003e3) Optional debugging (uncomment the print statements)\u003c/p\u003e\u003cp\u003e4) Apply weights to entire groups or individual transitions\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"grouping-a6bwntk6e\"\u003e\u003cstrong\u003e\u003cspan style=\"color:rgb(34, 139, 230)\"\u003eGrouping\u003c/span\u003e\u003c/strong\u003e\u003c/h2\u003e\u003cp\u003eWith phrases you can group with brackets to treat the phrase as one prompt. Gives more precision control over your image.\u003c/p\u003e\u003cp\u003e--Original Parser = No explicit support for grouping. Prompts are parsed individually or as scheduled transitions using :.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eBenefit\u003c/strong\u003e: Grouping improves control over scene composition by maintaining relationships between prompt elements.\u003c/p\u003e\u003cp\u003eAll items are treated as a cohesive group. It can be simple or a complex prompt involving multiple phrases, groups, transitions, etc.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"weighted-prompts-and-transitions-gu5uv3j5q\"\u003e\u003cstrong\u003e\u003cspan style=\"color:rgb(34, 139, 230)\"\u003eWeighted Prompts and Transitions\u003c/span\u003e\u003c/strong\u003e\u003c/h2\u003e\u003cp\u003eBrackets (\u003ccode\u003e[]\u003c/code\u003e) can include multiple colon-separated elements, followed by an optional weight. For example:\u003c/p\u003e\u003cp\u003e\u003ccode\u003e[mountain:lake:river:0.25]\u003c/code\u003e applies a \u003ccode\u003e0.25\u003c/code\u003e de-emphasis to the whole sequence.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eOriginal Parser\u003c/strong\u003e: Limited handling of weights and no clear support for multiple elements within brackets (beyond 2 elements).\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eBenefit\u003c/strong\u003e: The improved parser provides fine-grained control over transitions and emphasis within a prompt.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cu\u003eExample use combining weighted prompts and grouping:\u003c/u\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d1af9e47-eca5-4485-83f0-a2b187648f7a/width=525/d1af9e47-eca5-4485-83f0-a2b187648f7a.jpeg\" /\u003ecity:storm:lightning:tree:street:puddle:0.7, ({{closeup}, {green eyes}, {blonde hair}, {1 adult, woman, {peach orange dress}}}),\u003c/p\u003e\u003cp\u003eNegative prompt: watermark, {child, teen}, selfie, muscular, glow,\u003c/p\u003e\u003cp\u003eSteps: 45, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 6265453010, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.55, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cem\u003e\u003cu\u003e\u003cspan style=\"color:rgb(230, 73, 128)\"\u003eIf you can logically group items together, you can discover more efficient ways to craft what you want with possibly fewer images.\u003c/span\u003e\u003c/u\u003e\u003c/em\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/fa3d8ce6-47f9-4c9d-b10a-e61af4fa5320/width=525/fa3d8ce6-47f9-4c9d-b10a-e61af4fa5320.jpeg\" /\u003e{puddle,lightning,storm clouds}:{sunset,city}:0.5, {woman, (brown)-eyes, white dress}:{man, (blond)-hair, green eyes}:0.9\u003c/p\u003e\u003cp\u003eNegative prompt: powerlines, watermark, {crowds of people}:1.1\u003c/p\u003e\u003cp\u003eSteps: 20, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 121826728852, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires upscaler: Latent, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d21fa2e6-d630-47c0-8e29-ccb64520ad31/width=525/d21fa2e6-d630-47c0-8e29-ccb64520ad31.jpeg\" /\u003e{puddle,lightning,storm clouds}:{sunset,city}:0.7, {woman, {blue eyes}, {white dress}}:1.1, {{portrait}, {looking at camera}}:candid:1.1\u003c/p\u003e\u003cp\u003eNegative prompt: watermark, {child, teen}, selfie, muscular, separated, powerlines, {crowds of people}, cars, flooding,\u003c/p\u003e\u003cp\u003eSteps: 45, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 53043189590, Size: 640x960, Model hash: 31ca5c2b37, Model: ACR_fusion_v2_float16, Denoising strength: 0.55, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"31ca5c2b37\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"-21id051gj\"\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"conclusion-8pojrrwjq\"\u003e\u003cstrong\u003e\u003cspan style=\"color:rgb(34, 139, 230)\"\u003eConclusion\u003c/span\u003e\u003c/strong\u003e\u003c/h2\u003e\u003cp\u003eI've only scratched the surface what this can do, but my takeaways for what I like the most are:\u003c/p\u003e\u003cp\u003e\u003cem\u003e(i.e. the two main features)\u003c/em\u003e\u003c/p\u003e\u003cul\u003e\u003cli\u003e\u003cp\u003eGroupings\u003c/p\u003e\u003cp\u003eWhy? Obvious reasons - grouping descriptions together for objects and having the model do what I want it to do.\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eMultiple prompts scheduling\u003c/p\u003e\u003cp\u003eWhy? While I have not really used this in the past, I find that being able to group a bunch of things together, and then assign it a group emphasis/deemphasis is a great way to create a new scene from scratch that involves less time crafting the background, the model, and any other special things like colors, material, etc. Can spend less time in development and more time creating images.\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"how-to-install-ss85vr1bc\"\u003e\u003cspan style=\"color:rgb(34, 139, 230)\"\u003eHow to Install\u003c/span\u003e\u003c/h2\u003e\u003cp\u003e(See Attachments)\u003c/p\u003e\u003col\u003e\u003cli\u003e\u003cp\u003eBackup your current file in your modules folder for the same name, \"prompt_parser.py\"\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eReplace or move the prompt_parser.py file into your modules folder, which is located in your root (where you installed Stable Diffusion) folder. root\\modules\\prompt_parser.py.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"cover-art-qxlv5wvin\"\u003e\u003cspan style=\"color:rgb(34, 139, 230)\"\u003eCover art\u003c/span\u003e\u003c/h2\u003e\u003cp\u003ea majestic ((deer)):{standing on a moss-covered [rock] near the stream, looking over its shoulder}:0.95, a {lush rainforest, serene waterfall:0.6} with [misty clouds:clear skies:0.3] above and a [winding river:0.5]:rocky stream:0.4 flowing through, surrounded by {wildlife, vibrant flowers} and occasional [wildlife:birds:0.2] grazing near a [clearing:shaded grove:0.7]. At a distance, a majestic {mountain range, volcano:0.4} looms, casting a shadow over a {golden meadow:rolling hills:0.5}. Closer to the viewer, a foreground of {dense foliage, tall trees:0.7} with [sunlight streaming through:soft shade:0.4] adds contrast,\u003c/p\u003e\u003cp\u003eNegative prompt: cluttered background, harsh lighting, unnatural pose, blurry details\u003c/p\u003e\u003cp\u003eSteps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 102601704314, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"7be8cfbcd2\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"codeblock-445nngojr\"\u003eCodeblock\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e'''\nfrom __future__ import annotations\n\nimport re\nfrom collections import namedtuple\nimport lark\n\n# a prompt like this: \"fantasy landscape with a [mountain:lake:0.25] and [an oak:a christmas tree:0.75][ in foreground::0.6][: in background:0.25] [shoddy:masterful:0.5]\"\n# will be represented with prompt_schedule like this (assuming steps=100):\n# [25, 'fantasy landscape with a mountain and an oak in foreground shoddy']\n# [50, 'fantasy landscape with a lake and an oak in foreground in background shoddy']\n# [60, 'fantasy landscape with a lake and an oak in foreground in background masterful']\n# [75, 'fantasy landscape with a lake and an oak in background masterful']\n# [100, 'fantasy landscape with a lake and a christmas tree in background masterful']\n\nschedule_parser = lark.Lark(r\"\"\"\n!start: (prompt | /[][():]/+)*\nprompt: (emphasized | scheduled | grouped | alternate | plain | WHITESPACE)*\n!emphasized: \"(\" prompt \")\"\n | \"(\" prompt \":\" prompt \")\"\n | \"[\" prompt \"]\"\nscheduled: \"[\" [prompt (\":\" prompt)+] \"]\" \":\" [WHITESPACE] NUMBER [WHITESPACE] //allows use of optional brackets to apply weights to phrases\nalternate: \"[\" prompt (\"|\" [prompt])+ \"]\"\ngrouped: \"{\" (prompt \",\")+ [prompt] \"}\" // Group descriptions with commas\nWHITESPACE: /\\s+/\nplain: /([^\\\\\\[\\]():|]|\\\\.)+/\n%import common.SIGNED_NUMBER -\u0026gt; NUMBER\n\"\"\")\n\n\ndef get_learned_conditioning_prompt_schedules(prompts, base_steps, hires_steps=None, use_old_scheduling=False):\n \"\"\"\n \u0026gt;\u0026gt;\u0026gt; g = lambda p: get_learned_conditioning_prompt_schedules([p], 10)[0]\n \u0026gt;\u0026gt;\u0026gt; g(\"test\")\n [[10, 'test']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [b:3]\")\n [[3, 'a '], [10, 'a b']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [b: 3]\")\n [[3, 'a '], [10, 'a b']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [[[b]]:2]\")\n [[2, 'a '], [10, 'a [[b]]']]\n \u0026gt;\u0026gt;\u0026gt; g(\"[(a:2):3]\")\n [[3, ''], [10, '(a:2)']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [b : c : 1] d\")\n [[1, 'a b d'], [10, 'a c d']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a[b:[c:d:2]:1]e\")\n [[1, 'abe'], [2, 'ace'], [10, 'ade']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [unbalanced\")\n [[10, 'a [unbalanced']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [b:.5] c\")\n [[5, 'a c'], [10, 'a b c']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [{b|d{:.5] c\") # not handling this right now\n [[5, 'a c'], [10, 'a {b|d{ c']]\n \u0026gt;\u0026gt;\u0026gt; g(\"((a][:b:c [d:3]\")\n [[3, '((a][:b:c '], [10, '((a][:b:c d']]\n \u0026gt;\u0026gt;\u0026gt; g(\"[a|(b:1.1)]\")\n [[1, 'a'], [2, '(b:1.1)'], [3, 'a'], [4, '(b:1.1)'], [5, 'a'], [6, '(b:1.1)'], [7, 'a'], [8, '(b:1.1)'], [9, 'a'], [10, '(b:1.1)']]\n \u0026gt;\u0026gt;\u0026gt; g(\"[fe|]male\")\n [[1, 'female'], [2, 'male'], [3, 'female'], [4, 'male'], [5, 'female'], [6, 'male'], [7, 'female'], [8, 'male'], [9, 'female'], [10, 'male']]\n \u0026gt;\u0026gt;\u0026gt; g(\"[fe|||]male\")\n [[1, 'female'], [2, 'male'], [3, 'male'], [4, 'male'], [5, 'female'], [6, 'male'], [7, 'male'], [8, 'male'], [9, 'female'], [10, 'male']]\n \u0026gt;\u0026gt;\u0026gt; g = lambda p: get_learned_conditioning_prompt_schedules([p], 10, 10)[0]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [b:.5] c\")\n [[10, 'a b c']]\n \u0026gt;\u0026gt;\u0026gt; g(\"a [b:1.5] c\")\n [[5, 'a c'], [10, 'a b c']]\n \"\"\"\n\n if hires_steps is None or use_old_scheduling:\n int_offset = 0\n flt_offset = 0\n steps = base_steps\n else:\n int_offset = base_steps\n flt_offset = 1.0\n steps = hires_steps\n\n def collect_steps(steps, tree):\n #if not tree or not hasattr(tree, 'children') or not tree.children: #debugs\n #print(\"Invalid tree structure:\", tree)\n #return []\n res = [steps] # Always include the final step\n\n class CollectSteps(lark.Visitor):\n def grouped(self,tree):\n # Collect all descriptions within the group \n group_descriptions = [\n self._resolve_tree(child) if isinstance(child, lark.Tree) else str(child) \n for child in tree.children]\n \n #print(f\"Group: {group_descriptions}\") #debug\n \n # Handle the group as a cohesive unit (e.g., append to results) \n res.append(\", \".join(group_descriptions))\n \n def scheduled(self, tree):\n #Validate tree.children #debug\n if not hasattr(tree, \"children\") or not tree.children:\n #print(\"Invalid tree or missing children:\", tree) #debug\n return\n \n # Collect all prompts and the scheduling number\n prompts = tree.children[:-2] # All but the last two children are options\n number_node = tree.children[-2] # Second-to-last child is the scheduling number\n\n # Debugging: Inspect tree structure\n #print(\"Scheduled Node:\", tree.pretty())\n #print(\"Prompts:\", prompts)\n #print(\"Number Node:\", number_node)\n\n # Safeguard for missing or invalid children\n if not prompts or not number_node:\n #print(\"Invalid scheduled node structure:\", tree) #debug\n return\n\n try:\n # Convert number_node to a float\n v = float(number_node) #keep as a float!\n except ValueError:\n #print(f\"Invalid scheduling number: {number_node}\") #debug\n return\n\n #Apply Weight (de-emphasis) to each prompt\n weighted_prompts = [(prompt, v) for prompt in prompts]\n \n # Divide steps equally for each transition between prompts \n num_prompts = len(weighted_prompts)\n #use when needed: If v can represent either a fraction or a raw number of steps (v \u0026lt; 1 or v \u0026gt;= 1\n step_intervals = [\n (i + 1) * (v / num_prompts) if v \u0026lt; 1 else (i + 1) * steps / num_prompts\n for i in range(num_prompts - 1)\n ]\n '''\n #simpler calculation when you always use a fraction\n step_intervals = [\n int((i + 1) * (v * steps) / num_prompts) for i in range(num_prompts - 1)\n ]\n '''\n tree.children[-2] = step_intervals # Replace number_node with numeric step intervals\n res.extend(step_intervals)\n\n # Visit the tree and collect step intervals\n CollectSteps().visit(tree)\n #return sorted(set(res)) # Remove duplicates and sort\n return res #does not remove duplicates or sort\n\n\n def at_step(step, tree):\n class AtStep(lark.Transformer):\n def scheduled(self, args): \n #print(\"Scheduled args:\", args) #debug\n\n # Ensure args is valid\n if not args or len(args) \u0026lt; 2:\n #print(\"Invalid scheduled args:\", args) #debug\n return\n\n *prompts, when, _ , weight = args # Extract prompts and step boundaries\n\n if not isinstance(when, list):\n #print(f\"Invalid step boundaries: {when}\") #debug\n return\n\n # Select the appropriate prompt based on the step\n for i, boundary in enumerate(when):\n if step \u0026lt;= boundary:\n yield f\"({prompts[i]}:{weight})\" # Apply weight (de-emphasis)\n return\n\n # Default to the last prompt with the weight if step exceeds boundaries\n yield f\"({prompts[-1]}:{weight})\" \n def alternate(self, args):\n # Handle alternates with a cycle\n args = [\"\" if not arg else arg for arg in args]\n yield args[(step - 1) % len(args)]\n def start(self, args):\n #flatten nested structures into a single string\n def flatten(x):\n if isinstance(x, str):\n yield x\n else:\n for gen in x:\n yield from flatten(gen)\n return ''.join(flatten(args))\n def plain(self, args):\n #handle plain text nodes\n yield args[0].value\n def grouped(self, args):\n # Return the group as a cohesive string\n return \", \".join(args)\n def __default__(self, data, children, meta):\n #handle all other nodes\n for child in children:\n yield child\n return AtStep().transform(tree)\n\n def get_schedule(prompt):\n try:\n tree = schedule_parser.parse(prompt)\n #print(tree.pretty()) # Debugging: visualize the tree structure\n \n except lark.exceptions.LarkError as e:\n #print(f\"Parsing error for prompt: {prompt}\")\n #if 0:\n # import traceback\n # traceback.print_exc()\n return [[steps, prompt]] \n \n return [[t, at_step(t, tree)] for t in collect_steps(steps, tree)]\n\n promptdict = {prompt: get_schedule(prompt) for prompt in set(prompts)}\n return [promptdict[prompt] for prompt in prompts]\n\n\nScheduledPromptConditioning = namedtuple(\"ScheduledPromptConditioning\", [\"end_at_step\", \"cond\"])\n\n\nclass SdConditioning(list):\n \"\"\"\n A list with prompts for stable diffusion's conditioner model.\n Can also specify width and height of created image - SDXL needs it.\n \"\"\"\n def __init__(self, prompts, is_negative_prompt=False, width=None, height=None, copy_from=None):\n super().__init__()\n self.extend(prompts)\n\n if copy_from is None:\n copy_from = prompts\n\n self.is_negative_prompt = is_negative_prompt or getattr(copy_from, 'is_negative_prompt', False)\n self.width = width or getattr(copy_from, 'width', None)\n self.height = height or getattr(copy_from, 'height', None)\n\n\n\ndef get_learned_conditioning(model, prompts: SdConditioning | list[str], steps, hires_steps=None, use_old_scheduling=False):\n \"\"\"converts a list of prompts into a list of prompt schedules - each schedule is a list of ScheduledPromptConditioning, specifying the comdition (cond),\n and the sampling step at which this condition is to be replaced by the next one.\n\n Input:\n (model, ['a red crown', 'a [blue:green:5] jeweled crown'], 20)\n\n Output:\n [\n [\n ScheduledPromptConditioning(end_at_step=20, cond=tensor([[-0.3886, 0.0229, -0.0523, ..., -0.4901, -0.3066, 0.0674], ..., [ 0.3317, -0.5102, -0.4066, ..., 0.4119, -0.7647, -1.0160]], device='cuda:0'))\n ],\n [\n ScheduledPromptConditioning(end_at_step=5, cond=tensor([[-0.3886, 0.0229, -0.0522, ..., -0.4901, -0.3067, 0.0673], ..., [-0.0192, 0.3867, -0.4644, ..., 0.1135, -0.3696, -0.4625]], device='cuda:0')),\n ScheduledPromptConditioning(end_at_step=20, cond=tensor([[-0.3886, 0.0229, -0.0522, ..., -0.4901, -0.3067, 0.0673], ..., [-0.7352, -0.4356, -0.7888, ..., 0.6994, -0.4312, -1.2593]], device='cuda:0'))\n ]\n ]\n \"\"\"\n res = []\n\n prompt_schedules = get_learned_conditioning_prompt_schedules(prompts, steps, hires_steps, use_old_scheduling)\n cache = {}\n\n for prompt, prompt_schedule in zip(prompts, prompt_schedules):\n\n cached = cache.get(prompt, None)\n if cached is not None:\n res.append(cached)\n continue\n\n texts = SdConditioning([x[1] for x in prompt_schedule], copy_from=prompts)\n conds = model.get_learned_conditioning(texts)\n\n cond_schedule = []\n for i, (end_at_step, _) in enumerate(prompt_schedule):\n if isinstance(conds, dict):\n cond = {k: v[i] for k, v in conds.items()}\n else:\n cond = conds[i]\n\n cond_schedule.append(ScheduledPromptConditioning(end_at_step, cond))\n\n cache[prompt] = cond_schedule\n res.append(cond_schedule)\n\n return res\n\n\nre_AND = re.compile(r\"\\bAND\\b\")\nre_weight = re.compile(r\"^((?:\\s|.)*?)(?:\\s*:\\s*([-+]?(?:\\d+\\.?|\\d*\\.\\d+)))?\\s*$\")\n\n\ndef get_multicond_prompt_list(prompts: SdConditioning | list[str]):\n res_indexes = []\n\n prompt_indexes = {}\n prompt_flat_list = SdConditioning(prompts)\n prompt_flat_list.clear()\n\n for prompt in prompts:\n subprompts = re_AND.split(prompt)\n\n indexes = []\n for subprompt in subprompts:\n match = re_weight.search(subprompt)\n\n text, weight = match.groups() if match is not None else (subprompt, 1.0)\n\n weight = float(weight) if weight is not None else 1.0\n\n index = prompt_indexes.get(text, None)\n if index is None:\n index = len(prompt_flat_list)\n prompt_flat_list.append(text)\n prompt_indexes[text] = index\n\n indexes.append((index, weight))\n\n res_indexes.append(indexes)\n\n return res_indexes, prompt_flat_list, prompt_indexes\n\n\nclass ComposableScheduledPromptConditioning:\n def __init__(self, schedules, weight=1.0):\n self.schedules: list[ScheduledPromptConditioning] = schedules\n self.weight: float = weight\n\n\nclass MulticondLearnedConditioning:\n def __init__(self, shape, batch):\n self.shape: tuple = shape # the shape field is needed to send this object to DDIM/PLMS\n self.batch: list[list[ComposableScheduledPromptConditioning]] = batch\n\n\ndef get_multicond_learned_conditioning(model, prompts, steps, hires_steps=None, use_old_scheduling=False) -\u0026gt; MulticondLearnedConditioning:\n \"\"\"same as get_learned_conditioning, but returns a list of ScheduledPromptConditioning along with the weight objects for each prompt.\n For each prompt, the list is obtained by splitting the prompt using the AND separator.\n\n https://energy-based-model.github.io/Compositional-Visual-Generation-with-Composable-Diffusion-Models/\n \"\"\"\n\n res_indexes, prompt_flat_list, prompt_indexes = get_multicond_prompt_list(prompts)\n\n learned_conditioning = get_learned_conditioning(model, prompt_flat_list, steps, hires_steps, use_old_scheduling)\n\n res = []\n for indexes in res_indexes:\n res.append([ComposableScheduledPromptConditioning(learned_conditioning[i], weight) for i, weight in indexes])\n\n return MulticondLearnedConditioning(shape=(len(prompts),), batch=res)\n\n\nclass DictWithShape(dict):\n def __init__(self, x, shape=None):\n super().__init__()\n self.update(x)\n\n @property\n def shape(self):\n return self[\"crossattn\"].shape\n\n\ndef reconstruct_cond_batch(c: list[list[ScheduledPromptConditioning]], current_step):\n param = c[0][0].cond\n is_dict = isinstance(param, dict)\n\n if is_dict:\n dict_cond = param\n res = {k: torch.zeros((len(c),) + param.shape, device=param.device, dtype=param.dtype) for k, param in dict_cond.items()}\n res = DictWithShape(res, (len(c),) + dict_cond['crossattn'].shape)\n else:\n res = torch.zeros((len(c),) + param.shape, device=param.device, dtype=param.dtype)\n\n for i, cond_schedule in enumerate(c):\n target_index = 0\n for current, entry in enumerate(cond_schedule):\n if current_step \u0026lt;= entry.end_at_step:\n target_index = current\n break\n\n if is_dict:\n for k, param in cond_schedule[target_index].cond.items():\n res[k][i] = param\n else:\n res[i] = cond_schedule[target_index].cond\n\n return res\n\n\ndef stack_conds(tensors):\n # if prompts have wildly different lengths above the limit we'll get tensors of different shapes\n # and won't be able to torch.stack them. So this fixes that.\n token_count = max([x.shape[0] for x in tensors])\n for i in range(len(tensors)):\n if tensors[i].shape[0] != token_count:\n last_vector = tensors[i][-1:]\n last_vector_repeated = last_vector.repeat([token_count - tensors[i].shape[0], 1])\n tensors[i] = torch.vstack([tensors[i], last_vector_repeated])\n\n return torch.stack(tensors)\n\n\n\ndef reconstruct_multicond_batch(c: MulticondLearnedConditioning, current_step):\n param = c.batch[0][0].schedules[0].cond\n\n tensors = []\n conds_list = []\n\n for composable_prompts in c.batch:\n conds_for_batch = []\n\n for composable_prompt in composable_prompts:\n target_index = 0\n for current, entry in enumerate(composable_prompt.schedules):\n if current_step \u0026lt;= entry.end_at_step:\n target_index = current\n break\n\n conds_for_batch.append((len(tensors), composable_prompt.weight))\n tensors.append(composable_prompt.schedules[target_index].cond)\n\n conds_list.append(conds_for_batch)\n\n if isinstance(tensors[0], dict):\n keys = list(tensors[0].keys())\n stacked = {k: stack_conds([x[k] for x in tensors]) for k in keys}\n stacked = DictWithShape(stacked, stacked['crossattn'].shape)\n else:\n stacked = stack_conds(tensors).to(device=param.device, dtype=param.dtype)\n\n return conds_list, stacked\n\n\nre_attention = re.compile(r\"\"\"\n\\\\\\(|\n\\\\\\)|\n\\\\\\[|\n\\\\]|\n\\\\\\\\|\n\\\\|\n\\(|\n\\[|\n:\\s*([+-]?[.\\d]+)\\s*\\)|\n\\)|\n]|\n[^\\\\()\\[\\]:]+|\n:\n\"\"\", re.X)\n\nre_break = re.compile(r\"\\s*\\bBREAK\\b\\s*\", re.S)\n\ndef parse_prompt_attention(text):\n \"\"\"\n Parses a string with attention tokens and returns a list of pairs: text and its associated weight.\n Accepted tokens are:\n (abc) - increases attention to abc by a multiplier of 1.1\n (abc:3.12) - increases attention to abc by a multiplier of 3.12\n [abc] - decreases attention to abc by a multiplier of 1.1\n \\( - literal character '('\n \\[ - literal character '['\n \\) - literal character ')'\n \\] - literal character ']'\n \\\\ - literal character '\\'\n anything else - just text\n\n \u0026gt;\u0026gt;\u0026gt; parse_prompt_attention('normal text')\n [['normal text', 1.0]]\n \u0026gt;\u0026gt;\u0026gt; parse_prompt_attention('an (important) word')\n [['an ', 1.0], ['important', 1.1], [' word', 1.0]]\n \u0026gt;\u0026gt;\u0026gt; parse_prompt_attention('(unbalanced')\n [['unbalanced', 1.1]]\n \u0026gt;\u0026gt;\u0026gt; parse_prompt_attention('\\(literal\\]')\n [['(literal]', 1.0]]\n \u0026gt;\u0026gt;\u0026gt; parse_prompt_attention('(unnecessary)(parens)')\n [['unnecessaryparens', 1.1]]\n \u0026gt;\u0026gt;\u0026gt; parse_prompt_attention('a (((house:1.3)) [on] a (hill:0.5), sun, (((sky))).')\n [['a ', 1.0],\n ['house', 1.5730000000000004],\n [' ', 1.1],\n ['on', 1.0],\n [' a ', 1.1],\n ['hill', 0.55],\n [', sun, ', 1.1],\n ['sky', 1.4641000000000006],\n ['.', 1.1]]\n \"\"\"\n\n res = []\n round_brackets = []\n square_brackets = []\n\n round_bracket_multiplier = 1.1\n square_bracket_multiplier = 1 / 1.1\n\n def multiply_range(start_position, multiplier):\n for p in range(start_position, len(res)):\n res[p][1] *= multiplier\n\n for m in re_attention.finditer(text):\n text = m.group(0)\n weight = m.group(1)\n\n if text.startswith('\\\\'):\n res.append([text[1:], 1.0])\n elif text == '(':\n round_brackets.append(len(res))\n elif text == '[':\n square_brackets.append(len(res))\n elif weight is not None and round_brackets:\n multiply_range(round_brackets.pop(), float(weight))\n elif text == ')' and round_brackets:\n multiply_range(round_brackets.pop(), round_bracket_multiplier)\n elif text == ']' and square_brackets:\n multiply_range(square_brackets.pop(), square_bracket_multiplier)\n else:\n parts = re.split(re_break, text)\n for i, part in enumerate(parts):\n if i \u0026gt; 0:\n res.append([\"BREAK\", -1])\n res.append([part, 1.0])\n\n for pos in round_brackets:\n multiply_range(pos, round_bracket_multiplier)\n\n for pos in square_brackets:\n multiply_range(pos, square_bracket_multiplier)\n\n if len(res) == 0:\n res = [[\"\", 1.0]]\n\n # merge runs of identical weights\n i = 0\n while i + 1 \u0026lt; len(res):\n if res[i][1] == res[i + 1][1]:\n res[i][0] += res[i + 1][0]\n res.pop(i + 1)\n else:\n i += 1\n\n return res\n\nif __name__ == \"__main__\":\n import doctest\n doctest.testmod(optionflags=doctest.NORMALIZE_WHITESPACE)\nelse:\n import torch # doctest faster\n'''\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003c/p\u003e\u003ch2 id=\"some-more-experimentation-pictures-wmqytlzuf\"\u003eSome more experimentation Pictures\u003c/h2\u003e\u003cp\u003eExperimenting a little...Definitely needs some tweaking!\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/61f9e7f0-c470-4a9b-a6d3-331db0fca190/width=525/61f9e7f0-c470-4a9b-a6d3-331db0fca190.jpeg\" /\u003e{tree:1.5, sky}:ocean:island:a serene ocean:0.4, cloudy lighting conditions,\u003c/p\u003e\u003cp\u003eNegative prompt: {low-hanging clouds}:{crazy tree roots, crazy branches}:0.6\u003c/p\u003e\u003cp\u003eSteps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 126387303976, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"7be8cfbcd2\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eStarted here:\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/9a0142af-33a3-47bd-bd21-770f634426fb/width=525/9a0142af-33a3-47bd-bd21-770f634426fb.jpeg\" /\u003e{tree, sky}:ocean:island:0.4, cloudy lighting conditions,\u003c/p\u003e\u003cp\u003eSteps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 119007798841, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"7be8cfbcd2\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003ethen in the next iteration...a crazy tree with crazy roots. Howebeit, when I tried to remove said craziness, it reverted to a view without a crazy tree\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/d8cef39c-4166-44b6-8f52-68088412fe4d/width=525/d8cef39c-4166-44b6-8f52-68088412fe4d.jpeg\" /\u003e{tree, sky}:ocean:island:0.4, cloudy lighting conditions,\u003c/p\u003e\u003cp\u003eNegative prompt: low-hanging clouds,\u003c/p\u003e\u003cp\u003eSteps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 9240202417, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"7be8cfbcd2\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e....hence the need to refine this prompt.\u003c/p\u003e\u003cp\u003e\u003cimg src=\"https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/117690a3-32ea-42d9-b92b-e0983d13a9b8/width=525/117690a3-32ea-42d9-b92b-e0983d13a9b8.jpeg\" /\u003e{tree, sky}:ocean:island:a serene ocean:0.4, cloudy lighting conditions,\u003c/p\u003e\u003cp\u003eNegative prompt: {low-hanging clouds}:{crazy tree roots, crazy branches}:0.6\u003c/p\u003e\u003cp\u003eSteps: 65, Sampler: DPM++ 2M, Schedule type: Karras Exponential, CFG scale: 7, Seed: 92633545050, Size: 960x540, Model hash: 7be8cfbcd2, Model: FusionX-Realistic_v3_float16, Denoising strength: 0.7, Hypertile U-Net: True, Hires upscale: 2, Hires steps: 45, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: v1.10.1, Hashes: {\"model\": \"7be8cfbcd2\"}\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e","cover":null,"updatedAt":"2025-01-10T15:47:49.558Z","title":"Update 1/10/2025: Prompt Architect for Stable Diffusion A1111 \u0026 Forge","publishedAt":"2025-01-10T15:47:47.588Z","status":"Published","tags":[{"id":128646,"name":"generation guide","isCategory":true},{"id":136614,"name":"generation","isCategory":false},{"id":133125,"name":"prompting","isCategory":false}],"user":{"id":1388647,"username":"KittensX","deletedAt":null,"image":null,"profilePicture":{"id":45423244,"name":"00109-116959476852.png","url":"e53b29ae-d58a-4996-afd3-f4c3f496bea4","nsfwLevel":1,"hash":"UgLEE9t7?bs:t7of%2ae~pWVE1WBtRfkIUWB","userId":1388647,"ingestion":"Scanned","type":"image","width":1280,"height":1280,"metadata":{"hash":"UgLEE9t7?bs:t7of%2ae~pWVE1WBtRfkIUWB","size":1463653,"width":1280,"height":1280,"userId":1388647,"profilePicture":true}},"cosmetics":[],"isModerator":false},"reactions":[],"stats":{"viewCountAllTime":222,"commentCountAllTime":10,"likeCountAllTime":0,"dislikeCountAllTime":0,"heartCountAllTime":0,"laughCountAllTime":0,"cryCountAllTime":0,"favoriteCountAllTime":0,"tippedAmountCountAllTime":54,"collectedCountAllTime":8},"availability":"Public","userId":1388647,"coverImage":{"id":42061456,"name":"00190-102601704314.png","url":"d3155763-b2a9-407d-9491-27d4abd655ff","nsfwLevel":1,"width":1920,"height":1080,"hash":"U6CGlM?b00ND.T-;RPMx9EIUxY%MrVf9D,M_","meta":{"Size":"960x540","seed":102601704314,"Model":"FusionX-Realistic_v3_float16","steps":65,"hashes":{"model":"7be8cfbcd2"},"prompt":"a majestic ((deer)):{standing on a moss-covered [rock] near the stream, looking over its shoulder}:0.95, a {lush rainforest, serene waterfall:0.6} with [misty clouds:clear skies:0.3] above and a [winding river:0.5]:rocky stream:0.4 flowing through, surrounded by {wildlife, vibrant flowers} and occasional [wildlife:birds:0.2] grazing near a [clearing:shaded grove:0.7]. At a distance, a majestic {mountain range, volcano:0.4} looms, casting a shadow over a {golden meadow:rolling hills:0.5}. Closer to the viewer, a foreground of {dense foliage, tall trees:0.7} with [sunlight streaming through:soft shade:0.4] adds contrast,","Version":"v1.10.1","sampler":"DPM++ 2M","cfgScale":7,"resources":[{"hash":"7be8cfbcd2","name":"FusionX-Realistic_v3_float16","type":"model"}],"Model hash":"7be8cfbcd2","Hires steps":"45","Hires upscale":"2","Schedule type":"Karras Exponential","Hires upscaler":"R-ESRGAN 4x+ Anime6B","negativePrompt":"cluttered background, harsh lighting, unnatural pose, blurry details","Hypertile U-Net":"True","Denoising strength":"0.7"},"userId":1388647,"generationProcess":"txt2imgHiRes","needsReview":null,"scannedAt":"2024-11-25T19:36:47.306Z","ingestion":"Scanned","postId":null,"type":"image","metadata":{"hash":"U6CGlM?b00ND.T-;RPMx9EIUxY%MrVf9D,M_","size":3410349,"width":1920,"height":1080},"createdAt":"2024-11-25T19:36:47.306Z","hideMeta":false,"tags":[112040,112522,5181,112004,112749,112750,794,111839,111893,5207,111931,8447,8363,4855,47680,143215,390,111768,111864,111763,321,666,112351,3952,9143,2309]},"lockedProperties":[],"attachments":[{"id":167155,"name":"prompt_parser.py","url":"https://civitai-delivery-worker-prod.5ac0637cfd0766c97916cefa3764fbdf.r2.cloudflarestorage.com/default/1388647/promptParser.L1tX.py","sizeKB":32.8974609375,"entityId":9140,"metadata":{}},{"id":188454,"name":"prompt_parser - forge.py","url":"https://civitai-delivery-worker-prod.5ac0637cfd0766c97916cefa3764fbdf.r2.cloudflarestorage.com/default/1388647/promptParser20.iBC7.py","sizeKB":33.0322265625,"entityId":9140,"metadata":{}}]},"dataUpdateCount":1,"dataUpdatedAt":1736840748347,"error":null,"errorUpdateCount":0,"errorUpdatedAt":0,"fetchFailureCount":0,"fetchFailureReason":null,"fetchMeta":null,"isInvalidated":false,"status":"success","fetchStatus":"idle"},"queryKey":[["article","getById"],{"input":{"id":9140},"type":"query"}],"queryHash":"[[\"article\",\"getById\"],{\"input\":{\"id\":9140},\"type\":\"query\"}]"},{"state":{"data":{"hiddenImages":[],"hiddenModels":[{"id":403496,"hidden":true},{"id":403504,"hidden":true},{"id":406942,"hidden":true}],"hiddenUsers":[],"hiddenTags":[{"id":112944,"name":"sexual situations","nsfwLevel":4},{"id":113675,"name":"physical violence","nsfwLevel":2},{"id":126846,"name":"disturbing","nsfwLevel":4},{"id":127175,"name":"male nudity","nsfwLevel":4},{"id":113976,"name":"extremist","nsfwLevel":32},{"id":113474,"name":"hanging","nsfwLevel":32},{"id":113645,"name":"hate symbols","nsfwLevel":32},{"id":113644,"name":"nazi party","nsfwLevel":32},{"id":6924,"name":"revealing clothes","nsfwLevel":2},{"id":112675,"name":"weapon violence","nsfwLevel":2},{"id":112070,"name":"female swimwear or underwear","nsfwLevel":4},{"id":111969,"name":"male swimwear or underwear","nsfwLevel":4},{"id":111942,"name":"partial nudity","nsfwLevel":4},{"id":113975,"name":"white supremacy","nsfwLevel":32},{"id":113360,"name":"adult toys","nsfwLevel":8},{"id":112481,"name":"graphic male nudity","nsfwLevel":8},{"id":111851,"name":"illustrated explicit nudity","nsfwLevel":8},{"id":2013,"name":"nudity","nsfwLevel":8},{"id":113660,"name":"self injury","nsfwLevel":32},{"id":111901,"name":"graphic violence or gore","nsfwLevel":4},{"id":112683,"name":"graphic female nudity","nsfwLevel":8},{"id":2635,"name":"wide hips","nsfwLevel":2},{"id":163890,"name":"convenient censoring","nsfwLevel":2},{"id":496,"name":"peeing","nsfwLevel":16},{"id":111991,"name":"sexual activity","nsfwLevel":16},{"id":306426,"name":"sexual intent","nsfwLevel":8},{"id":168660,"name":"undressed","nsfwLevel":4},{"id":162145,"name":"male underwear","nsfwLevel":4},{"id":167855,"name":"female swimwear","nsfwLevel":4},{"id":156190,"name":"genitals","nsfwLevel":8},{"id":125026,"name":"female underwear","nsfwLevel":4},{"id":2634,"name":"thick thighs","nsfwLevel":2},{"id":162156,"name":"breasts out","nsfwLevel":4},{"id":162751,"name":"strapless leotard","nsfwLevel":4},{"id":2561,"name":"vore","nsfwLevel":16},{"id":119736,"name":"bestiality","nsfwLevel":32},{"id":143969,"name":"breast out","nsfwLevel":4},{"id":5686,"name":"one breast out","nsfwLevel":4},{"id":5219,"name":"huge breasts","nsfwLevel":2},{"id":5510,"name":"gigantic breasts","nsfwLevel":4},{"id":173393,"name":"huge butt","nsfwLevel":4},{"id":7088,"name":"covered nipples","nsfwLevel":4},{"id":163133,"name":"hair over breasts","nsfwLevel":4},{"id":116858,"name":"no panties","nsfwLevel":4},{"id":164076,"name":"sitting on face","nsfwLevel":4},{"id":2086,"name":"anal","nsfwLevel":16},{"id":5146,"name":"sex","nsfwLevel":16},{"id":137673,"name":"dildo riding","nsfwLevel":16},{"id":117333,"name":"downblouse","nsfwLevel":2},{"id":231,"name":"oral","nsfwLevel":16},{"id":5195,"name":"cum","nsfwLevel":16},{"id":243,"name":"porn","nsfwLevel":8},{"id":279,"name":"futanari","nsfwLevel":8},{"id":5218,"name":"hentai","nsfwLevel":8},{"id":304,"name":"nude","nsfwLevel":4},{"id":1718,"name":"lingerie","nsfwLevel":4},{"id":190,"name":"sexy","nsfwLevel":2},{"id":113935,"name":"nsfw","nsfwLevel":4},{"id":113487,"name":"corpses","nsfwLevel":2},{"id":145241,"name":"oral invitation","nsfwLevel":2},{"id":112783,"name":"emaciated bodies","nsfwLevel":4},{"id":224754,"name":"exposed female nipple","nsfwLevel":4},{"id":5183,"name":"blowjob","nsfwLevel":16},{"id":124097,"name":"female nudity","nsfwLevel":4},{"id":111755,"name":"suggestive","nsfwLevel":2},{"id":5218,"name":"hentai","nsfwLevel":8,"parentId":111851},{"id":243,"name":"porn","nsfwLevel":16,"parentId":111991},{"id":5218,"name":"hentai","nsfwLevel":16,"parentId":111991},{"id":243,"name":"porn","nsfwLevel":8,"parentId":112683},{"id":5218,"name":"hentai","nsfwLevel":8,"parentId":112683},{"id":243,"name":"porn","nsfwLevel":8,"parentId":112481},{"id":5218,"name":"hentai","nsfwLevel":8,"parentId":112481},{"id":1600,"name":"bukkake","nsfwLevel":16,"parentId":111991},{"id":3258,"name":"cumshot","nsfwLevel":16,"parentId":111991},{"id":5195,"name":"cum","nsfwLevel":16,"parentId":111991},{"id":6572,"name":"cumdrip","nsfwLevel":16,"parentId":111991},{"id":6573,"name":"cum in pussy","nsfwLevel":16,"parentId":111991},{"id":6626,"name":"cum on face","nsfwLevel":16,"parentId":111991},{"id":58491,"name":"cum on hair","nsfwLevel":16,"parentId":111991},{"id":58492,"name":"cum on body","nsfwLevel":16,"parentId":111991},{"id":58493,"name":"cum on tongue","nsfwLevel":16,"parentId":111991},{"id":78431,"name":"cum on hands","nsfwLevel":16,"parentId":111991},{"id":109814,"name":"cum in mouth","nsfwLevel":16,"parentId":111991},{"id":115043,"name":"cum on pussy","nsfwLevel":16,"parentId":111991},{"id":4818,"name":"eat_cum","nsfwLevel":16,"parentId":111991},{"id":2084,"name":"fellatio","nsfwLevel":16,"parentId":111991},{"id":3576,"name":"implied fellatio","nsfwLevel":16,"parentId":111991},{"id":58490,"name":"after fellatio","nsfwLevel":16,"parentId":111991},{"id":114629,"name":"triple fellatio","nsfwLevel":16,"parentId":111991},{"id":114824,"name":"autofellatio","nsfwLevel":16,"parentId":111991},{"id":115142,"name":"pov fellatio","nsfwLevel":16,"parentId":111991},{"id":115031,"name":"fucked silly","nsfwLevel":16,"parentId":111991},{"id":111592,"name":"presenting ass","nsfwLevel":4,"parentId":112944},{"id":111593,"name":"presenting pussy","nsfwLevel":4,"parentId":112944},{"id":111596,"name":"spreading legs","nsfwLevel":4,"parentId":112944},{"id":114420,"name":"spread legs","nsfwLevel":4,"parentId":112944},{"id":111943,"name":"swimwear","nsfwLevel":4,"parentId":112070},{"id":111943,"name":"swimwear","nsfwLevel":4,"parentId":111969},{"id":1718,"name":"lingerie","nsfwLevel":4,"parentId":112070},{"id":1718,"name":"lingerie","nsfwLevel":4,"parentId":111969},{"id":2392,"name":"bikini","nsfwLevel":4,"parentId":112070},{"id":111935,"name":"latex clothing","nsfwLevel":2,"parentId":6924},{"id":111935,"name":"latex clothing","nsfwLevel":4,"parentId":112944}],"blockedUsers":[],"blockedByUsers":[]},"dataUpdateCount":1,"dataUpdatedAt":1736840748348,"error":null,"errorUpdateCount":0,"errorUpdatedAt":0,"fetchFailureCount":0,"fetchFailureReason":null,"fetchMeta":null,"isInvalidated":false,"status":"success","fetchStatus":"idle"},"queryKey":[["hiddenPreferences","getHidden"],{"type":"query"}],"queryHash":"[[\"hiddenPreferences\",\"getHidden\"],{\"type\":\"query\"}]"}]},"meta":{"values":{"queries.0.state.data.createdAt":["Date"],"queries.0.state.data.updatedAt":["Date"],"queries.0.state.data.publishedAt":["Date"],"queries.0.state.data.coverImage.scannedAt":["Date"],"queries.0.state.data.coverImage.createdAt":["Date"]}}},"session":{"user":{"id":2060424,"name":"[] Anime","username":"daskmaster","email":"krekgasvt@gmail.com","emailVerified":"2024-02-03T08:12:57.010Z","image":"https://lh3.googleusercontent.com/a/AAcHTtcSkgJ4mAM4HUZYSYTVzhMUdFnLtRaPKaGiJkB2sQR_lWU=s96-c","showNsfw":true,"blurNsfw":false,"browsingLevel":31,"onboarding":15,"isModerator":false,"createdAt":"2023-07-05T20:01:36.671Z","muted":false,"muteConfirmedAt":null,"autoplayGifs":true,"filePreferences":{"fp":"fp32","size":"full","format":"SafeTensor"},"meta":{"scores":{"total":37219,"users":4200,"images":33019,"models":56,"reportsAgainst":-19000},"firstImage":"2023-12-20T16:47:57.633"},"excludeFromLeaderboards":false,"rewardsEligibility":"Eligible","eligibilityChangedAt":null,"customerId":"cus_PRa27Q5iH0v6t0","paddleCustomerId":"ctm_01j8a5qcsj6de45grngyz28y0y","permissions":[],"allowAds":true},"expires":"2025-02-13T07:45:48.305Z"}},"__N_SSP":true},"page":"/articles/[id]/[[...slug]]","query":{"id":"9140","slug":["update-1102025-prompt-architect-for-stable-diffusion-a1111-and-forge"]},"buildId":"CzXsS7E_i2AiJS2ppQ4-I","isFallback":false,"isExperimentalCompile":false,"gssp":true,"appGip":true,"locale":"en","locales":["en"],"defaultLocale":"en","scriptLoader":[]}</script><script defer="" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"rayId":"901c02341878e4c2","serverTiming":{"name":{"cfExtPri":true,"cfL4":true,"cfSpeedBrain":true,"cfCacheStatus":true}},"version":"2025.1.0","token":"fd2bef382d4b4ef489d446b5aa3008e2"}" crossorigin="anonymous"></script> |
| <div><div dir="ltr"><div class="mantine-Progress-root mantine-piec59"><div role="progressbar" aria-valuemax="100" aria-valuemin="0" aria-valuenow="0" class="mantine-1n0hp0e mantine-Progress-bar" style="width: 0%;"></div></div></div></div><script id="_next-ga-init" data-nscript="afterInteractive"> |
| window['dataLayer'] = window['dataLayer'] || []; |
| function gtag(){window['dataLayer'].push(arguments);} |
| gtag('js', new Date()); |
| |
| gtag('config', 'G-N6W8XF7DXE' );</script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/js" id="_next-ga" data-nscript="afterInteractive"></script><script id="snigel-config" data-cfasync="false" type="text/javascript" data-nscript="afterInteractive"> |
| |
| window.snigelPubConf = { |
| "adengine": { |
| "activeAdUnits": ["incontent_1", "outstream", "side_1", "side_2", "side_3", "top", "adhesive"] |
| } |
| } |
| </script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/loader.js.Без названия" async="true" data-nscript="afterInteractive"></script><script id="ad-cleanup" type="text/javascript" data-nscript="afterInteractive"> |
| |
| window.googletag = window.googletag || {cmd: []}; |
| googletag.cmd.push(function() { |
| googletag.pubads().disableInitialLoad(); |
| googletag.pubads().enableSingleRequest(); |
| googletag.enableServices(); |
| }); |
| |
| |
| (window.adsbygoogle = window.adsbygoogle || []).pauseAdRequests = 1 |
| </script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;"></p></next-route-announcer><div><div dir="ltr"><div class="notifications-container mantine-uhamyt"><div></div></div></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><iframe name="__tcfapiLocator" style="display: none;" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/saved_resource.html"></iframe><iframe name="__uspapiLocator" style="display: none;" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/saved_resource(1).html"></iframe><iframe name="__adconsentLocator" style="display: none;" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/saved_resource(2).html"></iframe><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div id="veepn-breach-alert"><template shadowrootmode="open"><style>.breach-popup{font-family:FigtreeVF,sans-serif;position:fixed;z-index:2147483638;text-rendering:optimizelegibility;top:0;left:0;right:0;pointer-events:none;padding-inline:16px;height:0;overflow:visible;color:#222e3a}.breach-popup *{box-sizing:border-box}.breach-popup__inner{background-color:#de4558;width:100%;border-radius:16px;margin-inline:auto;pointer-events:all;position:relative;transition:transform .25s ease-in-out,max-width .25s ease-in-out;transform:translateY(16px);max-height:calc(100svh - 80px);display:flex;flex-direction:column}.breach-popup__header{min-height:32px;display:flex;align-items:center;justify-content:space-between;column-gap:16px;padding:4px;cursor:pointer}.breach-popup__close{cursor:pointer;background-color:transparent;border-style:none;outline:none;display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;opacity:.5}.breach-popup__wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease-in-out;overflow:hidden}.breach-popup__content{overflow:hidden;opacity:0;transform:translateY(-10px)}.breach-popup--minimize .breach-popup__inner{max-width:485px;transform:translateY(-100%)}.breach-popup--collapse .breach-popup__inner{max-width:485px}.breach-popup--expand .breach-popup__inner{max-width:1120px}.breach-popup--expand .breach-popup__wrap{grid-template-rows:1fr}.breach-popup--expand .breach-popup__content{opacity:1;transform:translateY(0);transition:transform .25s ease-in-out,opacity .25s ease-in-out;transition-delay:.15s}.breach-popup--expand .breach-popup__header{cursor:default}.breach-info{padding:2px;height:100%}.breach-info__inner{padding:22px 22px 0;background-color:#fff;border-bottom-left-radius:15px;border-bottom-right-radius:15px;height:100%;overflow:auto}.breach-info__alert{font-size:24px;line-height:32px;font-weight:700;margin:0}.breach-info__list{margin-top:24px;display:flex;flex-wrap:wrap;gap:24px}@media only screen and (width >= 992px){.breach-info__list{flex-wrap:nowrap}}.breach-info__item{width:100%}.breach-info__item:nth-child(2){max-width:320px}.breach-info__item:nth-child(3){max-width:200px}.breach-info__title{font-size:18px;font-weight:700;line-height:32px;letter-spacing:-.1px;color:#de4558;margin-top:0;margin-bottom:4px}.breach-info__description{font-size:16px;line-height:28px;letter-spacing:-.1px}.breach-info__description ul{margin:0}.breach-info__actions{display:flex;justify-content:center;padding-top:32px;padding-bottom:22px;background-color:#fff;position:sticky;bottom:0}.breach-info__btn{cursor:pointer;border-style:none;outline:none;display:inline-flex;align-items:center;height:48px;padding-inline:20px;border-radius:12px;text-align:center;font-size:16px;font-weight:700;line-height:28px;letter-spacing:-.1px;color:#fff;background-color:#ff6400}.button-expand{position:absolute;bottom:0;left:50%;transform:translate(-50%,100%);z-index:1}.button-expand__pointer{cursor:pointer}.button-expand__alert{pointer-events:none;transition:opacity .25s ease-in-out}.button-expand__arrow{pointer-events:none;transition:transform .25s ease-in-out,opacity .25s ease-in-out;transform-origin:center}.button-expand--minimize .button-expand__arrow,.button-expand--collapse .button-expand__alert,.button-expand--expand .button-expand__alert{opacity:0}.button-expand--expand .button-expand__arrow{transform:rotate(180deg)}.header-collapse{display:flex;align-items:center;flex-wrap:wrap;column-gap:4px;padding-left:8px;font-size:14px;line-height:20px;letter-spacing:-.1px;color:#fff}.header-expand{display:flex;align-items:center;flex-wrap:wrap;column-gap:4px;padding-left:20px;font-size:14px;font-weight:500;line-height:20px;letter-spacing:-.1px;color:#fff}</style></template></div><style>@font-face{font-family:FigtreeVF;src:url(chrome-extension://majdfhpaihoncoakbjgbdhglocklcgno/fonts/FigtreeVF.woff2) format("woff2 supports variations"),url(chrome-extension://majdfhpaihoncoakbjgbdhglocklcgno/fonts/FigtreeVF.woff2) format("woff2-variations");font-weight:100 1000;font-display:swap}</style><div id="veepn-guard-alert"><template shadowrootmode="open"><style>html{box-sizing:border-box;text-size-adjust:100%;word-break:normal;-moz-tab-size:4;tab-size:4}*,:before,:after{background-repeat:no-repeat;box-sizing:border-box}:before,:after{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}hr{overflow:visible;height:0;color:inherit;border:0;border-top:1px solid}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}iframe{border-style:none}input{border-radius:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit;color:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit],[role=button]{cursor:pointer}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}button:-moz-focusring,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{outline:1px dotted ButtonText}select{-webkit-appearance:none;-moz-appearance:none;appearance:none}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline-width:0}select::-ms-expand{display:none}select::-ms-value{color:currentcolor}legend{border:0;color:inherit;display:table;white-space:normal;max-width:100%}::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;appearance:button;color:inherit;font:inherit}[disabled]{cursor:default}img{border-style:none}progress{vertical-align:baseline}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}ul,ol{list-style-type:none}figure{margin:0}.guard-popup{font-family:FigtreeVF,sans-serif;position:fixed;z-index:2147483638;top:8px;left:24px;overflow:visible;color:#222e3a;background-color:#fff;max-width:416px;width:calc(100% - 48px);border-radius:16px;box-shadow:0 4px 20px #00000040;padding:24px}.guard-popup__header{display:flex;justify-content:space-between;align-items:center;column-gap:16px;margin-bottom:24px}.guard-popup__close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;opacity:.7}.guard-popup__img{line-height:0;margin-bottom:24px}.guard-popup__img img{width:100%;aspect-ratio:368/142;object-fit:cover;border-radius:12px;overflow:hidden}.guard-popup__title{font-size:24px;line-height:32px;margin-bottom:8px}.guard-popup__description{font-size:20px;line-height:28px;font-weight:500;color:#4a5764;margin-bottom:28px}.guard-popup__actions{display:flex;justify-content:flex-end;column-gap:16px}.guard-popup__btn{display:flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:5px;font-size:16px;line-height:24px;font-weight:700;cursor:pointer;color:#fff;background:linear-gradient(180deg,#5695fd,#1554ff)}</style></template></div><style>@font-face{font-family:FigtreeVF;src:url(chrome-extension://majdfhpaihoncoakbjgbdhglocklcgno/fonts/FigtreeVF.woff2) format("woff2 supports variations"),url(chrome-extension://majdfhpaihoncoakbjgbdhglocklcgno/fonts/FigtreeVF.woff2) format("woff2-variations");font-weight:100 1000;font-display:swap}</style><iframe name="cnftComm" style="display: none; position: fixed; left: -999px; top: -999px; width: 0px; height: 0px;" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/saved_resource(3).html"></iframe><iframe name="googlefcPresent" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/saved_resource(4).html"></iframe><iframe name="googlefcInactive" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/saved_resource(5).html" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><iframe name="googlefcLoaded" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/saved_resource(6).html" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/34-d023a6e750e9351b.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/bounties-6e9c1cc021c4886a.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/articles-3beb51d2d6e5887a.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/tools-066e1555eff02614.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/9003-1b1f732f36215d37.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/3745-6060d44f8e23704c.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/shop-4c302080a7b92f61.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/4713-1f9a4981b37caec4.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/7730-98f5b6da416a7387.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/4302-3c248afd1c497258.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/2457-c65a78d443cde3bb.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/[username]-118d681bc33a3264.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/5156-cf522c6091ef735c.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/952-f78b6cf9082c0fc6.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/9449-b2b485715ce9b71a.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/index-294432063b9755de.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/8271-a171609a168d1e5a.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/pricing-54777ec17ee835ca.js.Без названия"></script><script src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/models-ecd02060250b8e96.js.Без названия"></script><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div><div><div dir="ltr"></div></div></body><iframe name="goog_topics_frame" src="./Update 1_10_2025_ Prompt Architect for Stable Diffusion A1111 & Forge _ Civitai_files/topics_frame.html" style="display: none;"></iframe></html> |