@font-face { font-family: 'primeicons'; font-display: block; src: url('/assets/primeicons-DMOk5skT.eot'); src: url('/assets/primeicons-DMOk5skT.eot?#iefix') format('embedded-opentype'), url('/assets/primeicons-C6QP2o4f.woff2') format('woff2'), url('/assets/primeicons-WjwUDZjB.woff') format('woff'), url('/assets/primeicons-MpK4pl85.ttf') format('truetype'), url('/assets/primeicons-Dr5RGzOO.svg?#primeicons') format('svg'); font-weight: normal; font-style: normal; } .pi { font-family: 'primeicons'; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; display: inline-block; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .pi:before { --webkit-backface-visibility:hidden; backface-visibility: hidden; } .pi-fw { width: 1.28571429em; text-align: center; } .pi-spin { animation: fa-spin 2s infinite linear; } @media (prefers-reduced-motion: reduce) { .pi-spin { animation-delay: -1ms; animation-duration: 1ms; animation-iteration-count: 1; transition-delay: 0s; transition-duration: 0s; } } @keyframes fa-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(359deg); } } .pi-folder-plus:before { content: "\ea05"; } .pi-receipt:before { content: "\ea06"; } .pi-asterisk:before { content: "\ea07"; } .pi-face-smile:before { content: "\ea08"; } .pi-pinterest:before { content: "\ea09"; } .pi-expand:before { content: "\ea0a"; } .pi-pen-to-square:before { content: "\ea0b"; } .pi-wave-pulse:before { content: "\ea0c"; } .pi-turkish-lira:before { content: "\ea0d"; } .pi-spinner-dotted:before { content: "\ea0e"; } .pi-crown:before { content: "\ea0f"; } .pi-pause-circle:before { content: "\ea10"; } .pi-warehouse:before { content: "\ea11"; } .pi-objects-column:before { content: "\ea12"; } .pi-clipboard:before { content: "\ea13"; } .pi-play-circle:before { content: "\ea14"; } .pi-venus:before { content: "\ea15"; } .pi-cart-minus:before { content: "\ea16"; } .pi-file-plus:before { content: "\ea17"; } .pi-microchip:before { content: "\ea18"; } .pi-twitch:before { content: "\ea19"; } .pi-building-columns:before { content: "\ea1a"; } .pi-file-check:before { content: "\ea1b"; } .pi-microchip-ai:before { content: "\ea1c"; } .pi-trophy:before { content: "\ea1d"; } .pi-barcode:before { content: "\ea1e"; } .pi-file-arrow-up:before { content: "\ea1f"; } .pi-mars:before { content: "\ea20"; } .pi-tiktok:before { content: "\ea21"; } .pi-arrow-up-right-and-arrow-down-left-from-center:before { content: "\ea22"; } .pi-ethereum:before { content: "\ea23"; } .pi-list-check:before { content: "\ea24"; } .pi-thumbtack:before { content: "\ea25"; } .pi-arrow-down-left-and-arrow-up-right-to-center:before { content: "\ea26"; } .pi-equals:before { content: "\ea27"; } .pi-lightbulb:before { content: "\ea28"; } .pi-star-half:before { content: "\ea29"; } .pi-address-book:before { content: "\ea2a"; } .pi-chart-scatter:before { content: "\ea2b"; } .pi-indian-rupee:before { content: "\ea2c"; } .pi-star-half-fill:before { content: "\ea2d"; } .pi-cart-arrow-down:before { content: "\ea2e"; } .pi-calendar-clock:before { content: "\ea2f"; } .pi-sort-up-fill:before { content: "\ea30"; } .pi-sparkles:before { content: "\ea31"; } .pi-bullseye:before { content: "\ea32"; } .pi-sort-down-fill:before { content: "\ea33"; } .pi-graduation-cap:before { content: "\ea34"; } .pi-hammer:before { content: "\ea35"; } .pi-bell-slash:before { content: "\ea36"; } .pi-gauge:before { content: "\ea37"; } .pi-shop:before { content: "\ea38"; } .pi-headphones:before { content: "\ea39"; } .pi-eraser:before { content: "\ea04"; } .pi-stopwatch:before { content: "\ea01"; } .pi-verified:before { content: "\ea02"; } .pi-delete-left:before { content: "\ea03"; } .pi-hourglass:before { content: "\e9fe"; } .pi-truck:before { content: "\ea00"; } .pi-wrench:before { content: "\e9ff"; } .pi-microphone:before { content: "\e9fa"; } .pi-megaphone:before { content: "\e9fb"; } .pi-arrow-right-arrow-left:before { content: "\e9fc"; } .pi-bitcoin:before { content: "\e9fd"; } .pi-file-edit:before { content: "\e9f6"; } .pi-language:before { content: "\e9f7"; } .pi-file-export:before { content: "\e9f8"; } .pi-file-import:before { content: "\e9f9"; } .pi-file-word:before { content: "\e9f1"; } .pi-gift:before { content: "\e9f2"; } .pi-cart-plus:before { content: "\e9f3"; } .pi-thumbs-down-fill:before { content: "\e9f4"; } .pi-thumbs-up-fill:before { content: "\e9f5"; } .pi-arrows-alt:before { content: "\e9f0"; } .pi-calculator:before { content: "\e9ef"; } .pi-sort-alt-slash:before { content: "\e9ee"; } .pi-arrows-h:before { content: "\e9ec"; } .pi-arrows-v:before { content: "\e9ed"; } .pi-pound:before { content: "\e9eb"; } .pi-prime:before { content: "\e9ea"; } .pi-chart-pie:before { content: "\e9e9"; } .pi-reddit:before { content: "\e9e8"; } .pi-code:before { content: "\e9e7"; } .pi-sync:before { content: "\e9e6"; } .pi-shopping-bag:before { content: "\e9e5"; } .pi-server:before { content: "\e9e4"; } .pi-database:before { content: "\e9e3"; } .pi-hashtag:before { content: "\e9e2"; } .pi-bookmark-fill:before { content: "\e9df"; } .pi-filter-fill:before { content: "\e9e0"; } .pi-heart-fill:before { content: "\e9e1"; } .pi-flag-fill:before { content: "\e9de"; } .pi-circle:before { content: "\e9dc"; } .pi-circle-fill:before { content: "\e9dd"; } .pi-bolt:before { content: "\e9db"; } .pi-history:before { content: "\e9da"; } .pi-box:before { content: "\e9d9"; } .pi-at:before { content: "\e9d8"; } .pi-arrow-up-right:before { content: "\e9d4"; } .pi-arrow-up-left:before { content: "\e9d5"; } .pi-arrow-down-left:before { content: "\e9d6"; } .pi-arrow-down-right:before { content: "\e9d7"; } .pi-telegram:before { content: "\e9d3"; } .pi-stop-circle:before { content: "\e9d2"; } .pi-stop:before { content: "\e9d1"; } .pi-whatsapp:before { content: "\e9d0"; } .pi-building:before { content: "\e9cf"; } .pi-qrcode:before { content: "\e9ce"; } .pi-car:before { content: "\e9cd"; } .pi-instagram:before { content: "\e9cc"; } .pi-linkedin:before { content: "\e9cb"; } .pi-send:before { content: "\e9ca"; } .pi-slack:before { content: "\e9c9"; } .pi-sun:before { content: "\e9c8"; } .pi-moon:before { content: "\e9c7"; } .pi-vimeo:before { content: "\e9c6"; } .pi-youtube:before { content: "\e9c5"; } .pi-flag:before { content: "\e9c4"; } .pi-wallet:before { content: "\e9c3"; } .pi-map:before { content: "\e9c2"; } .pi-link:before { content: "\e9c1"; } .pi-credit-card:before { content: "\e9bf"; } .pi-discord:before { content: "\e9c0"; } .pi-percentage:before { content: "\e9be"; } .pi-euro:before { content: "\e9bd"; } .pi-book:before { content: "\e9ba"; } .pi-shield:before { content: "\e9b9"; } .pi-paypal:before { content: "\e9bb"; } .pi-amazon:before { content: "\e9bc"; } .pi-phone:before { content: "\e9b8"; } .pi-filter-slash:before { content: "\e9b7"; } .pi-facebook:before { content: "\e9b4"; } .pi-github:before { content: "\e9b5"; } .pi-twitter:before { content: "\e9b6"; } .pi-step-backward-alt:before { content: "\e9ac"; } .pi-step-forward-alt:before { content: "\e9ad"; } .pi-forward:before { content: "\e9ae"; } .pi-backward:before { content: "\e9af"; } .pi-fast-backward:before { content: "\e9b0"; } .pi-fast-forward:before { content: "\e9b1"; } .pi-pause:before { content: "\e9b2"; } .pi-play:before { content: "\e9b3"; } .pi-compass:before { content: "\e9ab"; } .pi-id-card:before { content: "\e9aa"; } .pi-ticket:before { content: "\e9a9"; } .pi-file-o:before { content: "\e9a8"; } .pi-reply:before { content: "\e9a7"; } .pi-directions-alt:before { content: "\e9a5"; } .pi-directions:before { content: "\e9a6"; } .pi-thumbs-up:before { content: "\e9a3"; } .pi-thumbs-down:before { content: "\e9a4"; } .pi-sort-numeric-down-alt:before { content: "\e996"; } .pi-sort-numeric-up-alt:before { content: "\e997"; } .pi-sort-alpha-down-alt:before { content: "\e998"; } .pi-sort-alpha-up-alt:before { content: "\e999"; } .pi-sort-numeric-down:before { content: "\e99a"; } .pi-sort-numeric-up:before { content: "\e99b"; } .pi-sort-alpha-down:before { content: "\e99c"; } .pi-sort-alpha-up:before { content: "\e99d"; } .pi-sort-alt:before { content: "\e99e"; } .pi-sort-amount-up:before { content: "\e99f"; } .pi-sort-amount-down:before { content: "\e9a0"; } .pi-sort-amount-down-alt:before { content: "\e9a1"; } .pi-sort-amount-up-alt:before { content: "\e9a2"; } .pi-palette:before { content: "\e995"; } .pi-undo:before { content: "\e994"; } .pi-desktop:before { content: "\e993"; } .pi-sliders-v:before { content: "\e991"; } .pi-sliders-h:before { content: "\e992"; } .pi-search-plus:before { content: "\e98f"; } .pi-search-minus:before { content: "\e990"; } .pi-file-excel:before { content: "\e98e"; } .pi-file-pdf:before { content: "\e98d"; } .pi-check-square:before { content: "\e98c"; } .pi-chart-line:before { content: "\e98b"; } .pi-user-edit:before { content: "\e98a"; } .pi-exclamation-circle:before { content: "\e989"; } .pi-android:before { content: "\e985"; } .pi-google:before { content: "\e986"; } .pi-apple:before { content: "\e987"; } .pi-microsoft:before { content: "\e988"; } .pi-heart:before { content: "\e984"; } .pi-mobile:before { content: "\e982"; } .pi-tablet:before { content: "\e983"; } .pi-key:before { content: "\e981"; } .pi-shopping-cart:before { content: "\e980"; } .pi-comments:before { content: "\e97e"; } .pi-comment:before { content: "\e97f"; } .pi-briefcase:before { content: "\e97d"; } .pi-bell:before { content: "\e97c"; } .pi-paperclip:before { content: "\e97b"; } .pi-share-alt:before { content: "\e97a"; } .pi-envelope:before { content: "\e979"; } .pi-volume-down:before { content: "\e976"; } .pi-volume-up:before { content: "\e977"; } .pi-volume-off:before { content: "\e978"; } .pi-eject:before { content: "\e975"; } .pi-money-bill:before { content: "\e974"; } .pi-images:before { content: "\e973"; } .pi-image:before { content: "\e972"; } .pi-sign-in:before { content: "\e970"; } .pi-sign-out:before { content: "\e971"; } .pi-wifi:before { content: "\e96f"; } .pi-sitemap:before { content: "\e96e"; } .pi-chart-bar:before { content: "\e96d"; } .pi-camera:before { content: "\e96c"; } .pi-dollar:before { content: "\e96b"; } .pi-lock-open:before { content: "\e96a"; } .pi-table:before { content: "\e969"; } .pi-map-marker:before { content: "\e968"; } .pi-list:before { content: "\e967"; } .pi-eye-slash:before { content: "\e965"; } .pi-eye:before { content: "\e966"; } .pi-folder-open:before { content: "\e964"; } .pi-folder:before { content: "\e963"; } .pi-video:before { content: "\e962"; } .pi-inbox:before { content: "\e961"; } .pi-lock:before { content: "\e95f"; } .pi-unlock:before { content: "\e960"; } .pi-tags:before { content: "\e95d"; } .pi-tag:before { content: "\e95e"; } .pi-power-off:before { content: "\e95c"; } .pi-save:before { content: "\e95b"; } .pi-question-circle:before { content: "\e959"; } .pi-question:before { content: "\e95a"; } .pi-copy:before { content: "\e957"; } .pi-file:before { content: "\e958"; } .pi-clone:before { content: "\e955"; } .pi-calendar-times:before { content: "\e952"; } .pi-calendar-minus:before { content: "\e953"; } .pi-calendar-plus:before { content: "\e954"; } .pi-ellipsis-v:before { content: "\e950"; } .pi-ellipsis-h:before { content: "\e951"; } .pi-bookmark:before { content: "\e94e"; } .pi-globe:before { content: "\e94f"; } .pi-replay:before { content: "\e94d"; } .pi-filter:before { content: "\e94c"; } .pi-print:before { content: "\e94b"; } .pi-align-right:before { content: "\e946"; } .pi-align-left:before { content: "\e947"; } .pi-align-center:before { content: "\e948"; } .pi-align-justify:before { content: "\e949"; } .pi-cog:before { content: "\e94a"; } .pi-cloud-download:before { content: "\e943"; } .pi-cloud-upload:before { content: "\e944"; } .pi-cloud:before { content: "\e945"; } .pi-pencil:before { content: "\e942"; } .pi-users:before { content: "\e941"; } .pi-clock:before { content: "\e940"; } .pi-user-minus:before { content: "\e93e"; } .pi-user-plus:before { content: "\e93f"; } .pi-trash:before { content: "\e93d"; } .pi-external-link:before { content: "\e93c"; } .pi-window-maximize:before { content: "\e93b"; } .pi-window-minimize:before { content: "\e93a"; } .pi-refresh:before { content: "\e938"; } .pi-user:before { content: "\e939"; } .pi-exclamation-triangle:before { content: "\e922"; } .pi-calendar:before { content: "\e927"; } .pi-chevron-circle-left:before { content: "\e928"; } .pi-chevron-circle-down:before { content: "\e929"; } .pi-chevron-circle-right:before { content: "\e92a"; } .pi-chevron-circle-up:before { content: "\e92b"; } .pi-angle-double-down:before { content: "\e92c"; } .pi-angle-double-left:before { content: "\e92d"; } .pi-angle-double-right:before { content: "\e92e"; } .pi-angle-double-up:before { content: "\e92f"; } .pi-angle-down:before { content: "\e930"; } .pi-angle-left:before { content: "\e931"; } .pi-angle-right:before { content: "\e932"; } .pi-angle-up:before { content: "\e933"; } .pi-upload:before { content: "\e934"; } .pi-download:before { content: "\e956"; } .pi-ban:before { content: "\e935"; } .pi-star-fill:before { content: "\e936"; } .pi-star:before { content: "\e937"; } .pi-chevron-left:before { content: "\e900"; } .pi-chevron-right:before { content: "\e901"; } .pi-chevron-down:before { content: "\e902"; } .pi-chevron-up:before { content: "\e903"; } .pi-caret-left:before { content: "\e904"; } .pi-caret-right:before { content: "\e905"; } .pi-caret-down:before { content: "\e906"; } .pi-caret-up:before { content: "\e907"; } .pi-search:before { content: "\e908"; } .pi-check:before { content: "\e909"; } .pi-check-circle:before { content: "\e90a"; } .pi-times:before { content: "\e90b"; } .pi-times-circle:before { content: "\e90c"; } .pi-plus:before { content: "\e90d"; } .pi-plus-circle:before { content: "\e90e"; } .pi-minus:before { content: "\e90f"; } .pi-minus-circle:before { content: "\e910"; } .pi-circle-on:before { content: "\e911"; } .pi-circle-off:before { content: "\e912"; } .pi-sort-down:before { content: "\e913"; } .pi-sort-up:before { content: "\e914"; } .pi-sort:before { content: "\e915"; } .pi-step-backward:before { content: "\e916"; } .pi-step-forward:before { content: "\e917"; } .pi-th-large:before { content: "\e918"; } .pi-arrow-down:before { content: "\e919"; } .pi-arrow-left:before { content: "\e91a"; } .pi-arrow-right:before { content: "\e91b"; } .pi-arrow-up:before { content: "\e91c"; } .pi-bars:before { content: "\e91d"; } .pi-arrow-circle-down:before { content: "\e91e"; } .pi-arrow-circle-left:before { content: "\e91f"; } .pi-arrow-circle-right:before { content: "\e920"; } .pi-arrow-circle-up:before { content: "\e921"; } .pi-info:before { content: "\e923"; } .pi-info-circle:before { content: "\e924"; } .pi-home:before { content: "\e925"; } .pi-spinner:before { content: "\e926"; } .side-bar-button-icon { font-size: var(--sidebar-icon-size) !important; } .side-bar-button-selected .side-bar-button-icon { font-size: var(--sidebar-icon-size) !important; font-weight: bold; } .side-bar-button[data-v-7a0b94a3] { width: var(--sidebar-width); height: var(--sidebar-width); border-radius: 0; } .comfyui-body-left .side-bar-button.side-bar-button-selected[data-v-7a0b94a3], .comfyui-body-left .side-bar-button.side-bar-button-selected[data-v-7a0b94a3]:hover { border-left: 4px solid var(--p-button-text-primary-color); } .comfyui-body-right .side-bar-button.side-bar-button-selected[data-v-7a0b94a3], .comfyui-body-right .side-bar-button.side-bar-button-selected[data-v-7a0b94a3]:hover { border-right: 4px solid var(--p-button-text-primary-color); } .lds-ring { display: inline-block; position: relative; width: 1em; height: 1em; } .lds-ring div { box-sizing: border-box; display: block; position: absolute; width: 100%; height: 100%; border: 0.15em solid #fff; border-radius: 50%; animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; border-color: #fff transparent transparent transparent; } .lds-ring div:nth-child(1) { animation-delay: -0.45s; } .lds-ring div:nth-child(2) { animation-delay: -0.3s; } .lds-ring div:nth-child(3) { animation-delay: -0.15s; } @keyframes lds-ring { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .relative { position: relative; } .hidden { display: none !important; } .mdi.rotate270::before { transform: rotate(270deg); } /* Generic */ .comfyui-button { display: flex; align-items: center; gap: 0.5em; cursor: pointer; border: none; border-radius: 4px; padding: 4px 8px; box-sizing: border-box; margin: 0; transition: box-shadow 0.1s; } .comfyui-button:active { box-shadow: inset 1px 1px 10px rgba(0, 0, 0, 0.5); } .comfyui-button:disabled { opacity: 0.5; cursor: not-allowed; } .primary .comfyui-button, .primary.comfyui-button { background-color: var(--primary-bg) !important; color: var(--primary-fg) !important; } .primary .comfyui-button:not(:disabled):hover, .primary.comfyui-button:not(:disabled):hover { background-color: var(--primary-hover-bg) !important; color: var(--primary-hover-fg) !important; } /* Popup */ .comfyui-popup { position: absolute; left: var(--left); right: var(--right); top: var(--top); bottom: var(--bottom); z-index: 2000; max-height: calc(100vh - var(--limit) - 10px); box-shadow: 3px 3px 5px 0px rgba(0, 0, 0, 0.3); } .comfyui-popup:not(.open) { display: none; } .comfyui-popup.right.open { border-top-left-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; overflow: hidden; } /* Split button */ .comfyui-split-button { position: relative; display: flex; } .comfyui-split-primary { flex: auto; } .comfyui-split-primary .comfyui-button { border-top-right-radius: 0; border-bottom-right-radius: 0; border-right: 1px solid var(--comfy-menu-bg); width: 100%; } .comfyui-split-arrow .comfyui-button { border-top-left-radius: 0; border-bottom-left-radius: 0; padding-left: 2px; padding-right: 2px; } .comfyui-split-button-popup { white-space: nowrap; background-color: var(--content-bg); color: var(--content-fg); display: flex; flex-direction: column; overflow: auto; } .comfyui-split-button-popup.hover { z-index: 2001; } .comfyui-split-button-popup > .comfyui-button { border: none; background-color: transparent; color: var(--fg-color); padding: 8px 12px 8px 8px; } .comfyui-split-button-popup > .comfyui-button:not(:disabled):hover { background-color: var(--comfy-input-bg); } /* Button group */ .comfyui-button-group { display: flex; border-radius: 4px; overflow: hidden; } .comfyui-button-group > .comfyui-button, .comfyui-button-group > .comfyui-button-wrapper > .comfyui-button { padding: 4px 10px; border-radius: 0; } /* Menu */ .comfyui-menu { width: 100vw; background: var(--comfy-menu-bg); color: var(--fg-color); font-family: Arial, Helvetica, sans-serif; font-size: 0.8em; display: flex; padding: 4px 8px; align-items: center; gap: 8px; box-sizing: border-box; z-index: 1000; order: 0; grid-column: 1/-1; overflow: auto; max-height: 90vh; } .comfyui-menu>* { flex-shrink: 0; } .comfyui-menu .mdi::before { font-size: 18px; } .comfyui-menu .comfyui-button { background: var(--comfy-input-bg); color: var(--fg-color); white-space: nowrap; } .comfyui-menu .comfyui-button:not(:disabled):hover { background: var(--border-color); color: var(--content-fg); } .comfyui-menu .comfyui-split-button-popup > .comfyui-button { border-radius: 0; background-color: transparent; } .comfyui-menu .comfyui-split-button-popup > .comfyui-button:not(:disabled):hover { background-color: var(--comfy-input-bg); } .comfyui-menu .comfyui-split-button-popup.left { border-top-right-radius: 4px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; } .comfyui-menu .comfyui-button.popup-open { background-color: var(--content-bg); color: var(--content-fg); } .comfyui-menu-push { margin-left: -0.8em; flex: auto; } .comfyui-logo { font-size: 1.2em; margin: 0; -webkit-user-select: none; -moz-user-select: none; user-select: none; cursor: default; } /* Workflows */ .comfyui-workflows-button { flex-direction: row-reverse; max-width: 200px; position: relative; z-index: 0; } .comfyui-workflows-button.popup-open { border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .comfyui-workflows-button.unsaved { font-style: italic; } .comfyui-workflows-button-progress { position: absolute; top: 0; left: 0; background-color: green; height: 100%; border-radius: 4px; z-index: -1; } .comfyui-workflows-button > span { flex: auto; text-align: left; overflow: hidden; } .comfyui-workflows-button-inner { display: flex; align-items: center; gap: 7px; width: 150px; } .comfyui-workflows-label { overflow: hidden; text-overflow: ellipsis; direction: rtl; flex: auto; position: relative; } .comfyui-workflows-button.unsaved .comfyui-workflows-label { padding-left: 8px; } .comfyui-workflows-button.unsaved .comfyui-workflows-label:after { content: "*"; position: absolute; top: 0; left: 0; } .comfyui-workflows-button-inner .mdi-graph::before { transform: rotate(-90deg); } .comfyui-workflows-popup { font-family: Arial, Helvetica, sans-serif; font-size: 0.8em; padding: 10px; overflow: auto; background-color: var(--content-bg); color: var(--content-fg); border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; z-index: 1001; } .comfyui-workflows-panel { min-height: 150px; } .comfyui-workflows-panel .lds-ring { transform: translate(-50%); position: absolute; left: 50%; top: 75px; } .comfyui-workflows-panel h3 { margin: 10px 0 10px 0; font-size: 11px; opacity: 0.8; } .comfyui-workflows-panel section header { display: flex; justify-content: space-between; align-items: center; } .comfy-ui-workflows-search .mdi { position: relative; top: 2px; pointer-events: none; } .comfy-ui-workflows-search input { background-color: var(--comfy-input-bg); color: var(--input-text); border: none; border-radius: 4px; padding: 4px 10px; margin-left: -24px; text-indent: 18px; } .comfy-ui-workflows-search input:-moz-placeholder-shown { width: 10px; } .comfy-ui-workflows-search input:placeholder-shown { width: 10px; } .comfy-ui-workflows-search input:-moz-placeholder-shown:focus { width: auto; } .comfy-ui-workflows-search input:placeholder-shown:focus { width: auto; } .comfyui-workflows-actions { display: flex; gap: 10px; margin-bottom: 10px; } .comfyui-workflows-actions .comfyui-button { background: var(--comfy-input-bg); color: var(--input-text); } .comfyui-workflows-actions .comfyui-button:not(:disabled):hover { background: var(--primary-bg); color: var(--primary-fg); } .comfyui-workflows-favorites, .comfyui-workflows-open { border-bottom: 1px solid var(--comfy-input-bg); padding-bottom: 5px; margin-bottom: 5px; } .comfyui-workflows-open .active { font-weight: bold; color: var(--primary-fg); } .comfyui-workflows-favorites:empty { display: none; } .comfyui-workflows-tree { padding: 0; margin: 0; } .comfyui-workflows-tree:empty::after { content: "No saved workflows"; display: block; text-align: center; } .comfyui-workflows-tree > ul { padding: 0; } .comfyui-workflows-tree > ul ul { margin: 0; padding: 0 0 0 25px; } .comfyui-workflows-tree:not(.filtered) .closed > ul { display: none; } .comfyui-workflows-tree li, .comfyui-workflows-tree-file { --item-height: 32px; list-style-type: none; height: var(--item-height); display: flex; align-items: center; gap: 5px; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; user-select: none; } .comfyui-workflows-tree-file.active::before, .comfyui-workflows-tree li:hover::before, .comfyui-workflows-tree-file:hover::before { content: ""; position: absolute; width: 100%; left: 0; height: var(--item-height); background-color: var(--content-hover-bg); color: var(--content-hover-fg); z-index: -1; } .comfyui-workflows-tree-file.active::before { background-color: var(--primary-bg); color: var(--primary-fg); } .comfyui-workflows-tree-file.running:not(:hover)::before { content: ""; position: absolute; width: var(--progress, 0); left: 0; height: var(--item-height); background-color: green; z-index: -1; } .comfyui-workflows-tree-file.unsaved span { font-style: italic; } .comfyui-workflows-tree-file span { flex: auto; } .comfyui-workflows-tree-file span + .comfyui-workflows-file-action { margin-left: 10px; } .comfyui-workflows-tree-file .comfyui-workflows-file-action { background-color: transparent; color: var(--fg-color); padding: 2px 4px; } .comfyui-workflows-tree-file.active .comfyui-workflows-file-action { color: var(--primary-fg); } .lg ~ .comfyui-workflows-popup .comfyui-workflows-tree-file:not(:hover) .comfyui-workflows-file-action { opacity: 0; } .comfyui-workflows-tree-file .comfyui-workflows-file-action:hover { background-color: var(--primary-bg); color: var(--primary-fg); } .comfyui-workflows-tree-file .comfyui-workflows-file-action-primary { background-color: transparent; color: var(--fg-color); padding: 2px 4px; margin: 0 -4px; } .comfyui-workflows-file-action-favorite .mdi-star { color: orange; } /* View List */ .comfyui-view-list-popup { padding: 10px; background-color: var(--content-bg); color: var(--content-fg); min-width: 170px; min-height: 435px; display: flex; flex-direction: column; align-items: center; box-sizing: border-box; } .comfyui-view-list-popup h3 { margin: 0 0 5px 0; } .comfyui-view-list-items { width: 100%; background: var(--comfy-menu-bg); border-radius: 5px; display: flex; justify-content: center; flex: auto; align-items: center; flex-direction: column; } .comfyui-view-list-items section { max-height: 400px; overflow: auto; width: 100%; display: grid; grid-template-columns: auto auto auto; align-items: center; justify-content: center; gap: 5px; padding: 5px 0; } .comfyui-view-list-items section + section { border-top: 1px solid var(--border-color); margin-top: 10px; padding-top: 5px; } .comfyui-view-list-items section h5 { grid-column: 1 / 4; text-align: center; margin: 5px; } .comfyui-view-list-items span { text-align: center; padding: 0 2px; } .comfyui-view-list-popup header { margin-bottom: 10px; display: flex; gap: 5px; } .comfyui-view-list-popup header .comfyui-button { border: 1px solid transparent; } .comfyui-view-list-popup header .comfyui-button:not(:disabled):hover { border: 1px solid var(--comfy-menu-bg); } /* Queue button */ .comfyui-queue-button .comfyui-split-primary .comfyui-button { padding-right: 12px; } .comfyui-queue-count { margin-left: 5px; border-radius: 10px; background-color: rgb(8, 80, 153); padding: 2px 4px; font-size: 10px; min-width: 1em; display: inline-block; } /* Queue options*/ .comfyui-queue-options { padding: 10px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; display: flex; gap: 10px; } .comfyui-queue-batch { display: flex; flex-direction: column; border-right: 1px solid var(--comfy-menu-bg); padding-right: 10px; gap: 5px; } .comfyui-queue-batch input { width: 145px; } .comfyui-queue-batch .comfyui-queue-batch-value { width: 70px; } .comfyui-queue-mode { display: flex; flex-direction: column; } .comfyui-queue-mode span { font-weight: bold; margin-bottom: 2px; } .comfyui-queue-mode label { display: flex; flex-direction: row-reverse; justify-content: start; gap: 5px; padding: 2px 0; } .comfyui-queue-mode label input { padding: 0; margin: 0; } /** Send to workflow widget selection dialog */ .comfy-widget-selection-dialog { border: none; } .comfy-widget-selection-dialog div { color: var(--fg-color); font-family: Arial, Helvetica, sans-serif; } .comfy-widget-selection-dialog h2 { margin-top: 0; } .comfy-widget-selection-dialog section { width: -moz-fit-content; width: fit-content; display: flex; flex-direction: column; } .comfy-widget-selection-item { display: flex; gap: 10px; align-items: center; } .comfy-widget-selection-item span { margin-right: auto; } .comfy-widget-selection-item span::before { content: '#' attr(data-id); opacity: 0.5; margin-right: 5px; } .comfy-modal .comfy-widget-selection-item button { font-size: 1em; } /***** Responsive *****/ .lg.comfyui-menu .lt-lg-show { display: none !important; } .comfyui-menu:not(.lg) .nlg-hide { display: none !important; } /** Large screen */ .lg.comfyui-menu>.comfyui-menu-mobile-collapse .comfyui-button span, .lg.comfyui-menu>.comfyui-menu-mobile-collapse.comfyui-button span { display: none; } .lg.comfyui-menu>.comfyui-menu-mobile-collapse .comfyui-popup .comfyui-button span { display: unset; } /** Non large screen */ .lt-lg.comfyui-menu { flex-wrap: wrap; } .lt-lg.comfyui-menu > *:not(.comfyui-menu-mobile-collapse) { order: 1; } .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse { order: 9999; width: 100%; } .comfyui-body-bottom .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse { order: -1; } .comfyui-body-bottom .lt-lg.comfyui-menu > .comfyui-menu-button { top: unset; bottom: 4px; } .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse.comfyui-button-group { flex-wrap: wrap; } .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse .comfyui-button, .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse.comfyui-button { padding: 10px; } .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse .comfyui-button, .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse .comfyui-button-wrapper { width: 100%; } .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse .comfyui-popup { position: static; background-color: var(--comfy-input-bg); max-width: unset; max-height: 50vh; overflow: auto; } .lt-lg.comfyui-menu:not(.expanded) > .comfyui-menu-mobile-collapse { display: none; } .lt-lg .comfyui-queue-button { margin-right: 44px; } .lt-lg .comfyui-menu-button { position: absolute; top: 4px; right: 8px; } .lt-lg.comfyui-menu > .comfyui-menu-mobile-collapse .comfyui-view-list-popup { border-radius: 0; } .lt-lg.comfyui-menu .comfyui-workflows-popup { width: 100vw; } /** Small */ .lt-md .comfyui-workflows-button-inner { width: unset !important; } .lt-md .comfyui-workflows-label { display: none; } /** Extra small */ .lt-sm .comfyui-queue-button { margin-right: 0; width: 100%; } .lt-sm .comfyui-queue-button .comfyui-button { justify-content: center; } .lt-sm .comfyui-interrupt-button { margin-right: 45px; } .comfyui-body-bottom .lt-sm.comfyui-menu > .comfyui-menu-button{ bottom: 41px; }/* this CSS contains only the basic CSS needed to run the app and use it */ .lgraphcanvas { /*cursor: crosshair;*/ user-select: none; -moz-user-select: none; -webkit-user-select: none; outline: none; font-family: Tahoma, sans-serif; } .lgraphcanvas * { box-sizing: border-box; } .litegraph.litecontextmenu { font-family: Tahoma, sans-serif; position: fixed; top: 100px; left: 100px; min-width: 100px; color: #aaf; padding: 0; box-shadow: 0 0 10px black !important; background-color: #2e2e2e !important; z-index: 10; } .litegraph.litecontextmenu.dark { background-color: #000 !important; } .litegraph.litecontextmenu .litemenu-title img { margin-top: 2px; margin-left: 2px; margin-right: 4px; } .litegraph.litecontextmenu .litemenu-entry { margin: 2px; padding: 2px; } .litegraph.litecontextmenu .litemenu-entry.submenu { background-color: #2e2e2e !important; } .litegraph.litecontextmenu.dark .litemenu-entry.submenu { background-color: #000 !important; } .litegraph .litemenubar ul { font-family: Tahoma, sans-serif; margin: 0; padding: 0; } .litegraph .litemenubar li { font-size: 14px; color: #999; display: inline-block; min-width: 50px; padding-left: 10px; padding-right: 10px; user-select: none; -moz-user-select: none; -webkit-user-select: none; cursor: pointer; } .litegraph .litemenubar li:hover { background-color: #777; color: #eee; } .litegraph .litegraph .litemenubar-panel { position: absolute; top: 5px; left: 5px; min-width: 100px; background-color: #444; box-shadow: 0 0 3px black; padding: 4px; border-bottom: 2px solid #aaf; z-index: 10; } .litegraph .litemenu-entry, .litemenu-title { font-size: 12px; color: #aaa; padding: 0 0 0 4px; margin: 2px; padding-left: 2px; -moz-user-select: none; -webkit-user-select: none; user-select: none; cursor: pointer; } .litegraph .litemenu-entry .icon { display: inline-block; width: 12px; height: 12px; margin: 2px; vertical-align: top; } .litegraph .litemenu-entry.checked .icon { background-color: #aaf; } .litegraph .litemenu-entry .more { float: right; padding-right: 5px; } .litegraph .litemenu-entry.disabled { opacity: 0.5; cursor: default; } .litegraph .litemenu-entry.separator { display: block; border-top: 1px solid #333; border-bottom: 1px solid #666; width: 100%; height: 0px; margin: 3px 0 2px 0; background-color: transparent; padding: 0 !important; cursor: default !important; } .litegraph .litemenu-entry.has_submenu { border-right: 2px solid cyan; } .litegraph .litemenu-title { color: #dde; background-color: #111; margin: 0; padding: 2px; cursor: default; } .litegraph .litemenu-entry:hover:not(.disabled):not(.separator) { background-color: #444 !important; color: #eee; transition: all 0.2s; } .litegraph .litemenu-entry .property_name { display: inline-block; text-align: left; min-width: 80px; min-height: 1.2em; } .litegraph .litemenu-entry .property_value { display: inline-block; background-color: rgba(0, 0, 0, 0.5); text-align: right; min-width: 80px; min-height: 1.2em; vertical-align: middle; padding-right: 10px; } .litegraph.litesearchbox { font-family: Tahoma, sans-serif; position: absolute; background-color: rgba(0, 0, 0, 0.5); padding-top: 4px; } .litegraph.litesearchbox input, .litegraph.litesearchbox select { margin-top: 3px; min-width: 60px; min-height: 1.5em; background-color: black; border: 0; color: white; padding-left: 10px; margin-right: 5px; max-width: 300px; } .litegraph.litesearchbox .name { display: inline-block; min-width: 60px; min-height: 1.5em; padding-left: 10px; } .litegraph.litesearchbox .helper { overflow: auto; max-height: 200px; margin-top: 2px; } .litegraph.lite-search-item { font-family: Tahoma, sans-serif; background-color: rgba(0, 0, 0, 0.5); color: white; padding-top: 2px; } .litegraph.lite-search-item.not_in_filter{ /*background-color: rgba(50, 50, 50, 0.5);*/ /*color: #999;*/ color: #B99; font-style: italic; } .litegraph.lite-search-item.generic_type{ /*background-color: rgba(50, 50, 50, 0.5);*/ /*color: #DD9;*/ color: #999; font-style: italic; } .litegraph.lite-search-item:hover, .litegraph.lite-search-item.selected { cursor: pointer; background-color: white; color: black; } .litegraph.lite-search-item-type { display: inline-block; background: rgba(0,0,0,0.2); margin-left: 5px; font-size: 14px; padding: 2px 5px; position: relative; top: -2px; opacity: 0.8; border-radius: 4px; } /* DIALOGs ******/ .litegraph .dialog { position: absolute; top: 50%; left: 50%; margin-top: -150px; margin-left: -200px; background-color: #2A2A2A; min-width: 400px; min-height: 200px; box-shadow: 0 0 4px #111; border-radius: 6px; } .litegraph .dialog.settings { left: 10px; top: 10px; height: calc( 100% - 20px ); margin: auto; max-width: 50%; } .litegraph .dialog.centered { top: 50px; left: 50%; position: absolute; transform: translateX(-50%); min-width: 600px; min-height: 300px; height: calc( 100% - 100px ); margin: auto; } .litegraph .dialog .close { float: right; margin: 4px; margin-right: 10px; cursor: pointer; font-size: 1.4em; } .litegraph .dialog .close:hover { color: white; } .litegraph .dialog .dialog-header { color: #AAA; border-bottom: 1px solid #161616; height: 40px; } .litegraph .dialog .dialog-footer { height: 50px; padding: 10px; border-top: 1px solid #1a1a1a;} .litegraph .dialog .dialog-header .dialog-title { font: 20px "Arial"; margin: 4px; padding: 4px 10px; display: inline-block; } .litegraph .dialog .dialog-content, .litegraph .dialog .dialog-alt-content { height: calc(100% - 90px); width: 100%; min-height: 100px; display: inline-block; color: #AAA; /*background-color: black;*/ overflow: auto; } .litegraph .dialog .dialog-content h3 { margin: 10px; } .litegraph .dialog .dialog-content .connections { flex-direction: row; } .litegraph .dialog .dialog-content .connections .connections_side { width: calc(50% - 5px); min-height: 100px; background-color: black; display: flex; } .litegraph .dialog .node_type { font-size: 1.2em; display: block; margin: 10px; } .litegraph .dialog .node_desc { opacity: 0.5; display: block; margin: 10px; } .litegraph .dialog .separator { display: block; width: calc( 100% - 4px ); height: 1px; border-top: 1px solid #000; border-bottom: 1px solid #333; margin: 10px 2px; padding: 0; } .litegraph .dialog .property { margin-bottom: 2px; padding: 4px; } .litegraph .dialog .property:hover { background: #545454; } .litegraph .dialog .property_name { color: #737373; display: inline-block; text-align: left; vertical-align: top; width: 160px; padding-left: 4px; overflow: hidden; margin-right: 6px; } .litegraph .dialog .property:hover .property_name { color: white; } .litegraph .dialog .property_value { display: inline-block; text-align: right; color: #AAA; background-color: #1A1A1A; /*width: calc( 100% - 122px );*/ max-width: calc( 100% - 162px ); min-width: 200px; max-height: 300px; min-height: 20px; padding: 4px; padding-right: 12px; overflow: hidden; cursor: pointer; border-radius: 3px; } .litegraph .dialog .property_value:hover { color: white; } .litegraph .dialog .property.boolean .property_value { padding-right: 30px; color: #A88; /*width: auto; float: right;*/ } .litegraph .dialog .property.boolean.bool-on .property_name{ color: #8A8; } .litegraph .dialog .property.boolean.bool-on .property_value{ color: #8A8; } .litegraph .dialog .btn { border: 0; border-radius: 4px; padding: 4px 20px; margin-left: 0px; background-color: #060606; color: #8e8e8e; } .litegraph .dialog .btn:hover { background-color: #111; color: #FFF; } .litegraph .dialog .btn.delete:hover { background-color: #F33; color: black; } .litegraph .subgraph_property { padding: 4px; } .litegraph .subgraph_property:hover { background-color: #333; } .litegraph .subgraph_property.extra { margin-top: 8px; } .litegraph .subgraph_property span.name { font-size: 1.3em; padding-left: 4px; } .litegraph .subgraph_property span.type { opacity: 0.5; margin-right: 20px; padding-left: 4px; } .litegraph .subgraph_property span.label { display: inline-block; width: 60px; padding: 0px 10px; } .litegraph .subgraph_property input { width: 140px; color: #999; background-color: #1A1A1A; border-radius: 4px; border: 0; margin-right: 10px; padding: 4px; padding-left: 10px; } .litegraph .subgraph_property button { background-color: #1c1c1c; color: #aaa; border: 0; border-radius: 2px; padding: 4px 10px; cursor: pointer; } .litegraph .subgraph_property.extra { color: #ccc; } .litegraph .subgraph_property.extra input { background-color: #111; } .litegraph .bullet_icon { margin-left: 10px; border-radius: 10px; width: 12px; height: 12px; background-color: #666; display: inline-block; margin-top: 2px; margin-right: 4px; transition: background-color 0.1s ease 0s; -moz-transition: background-color 0.1s ease 0s; } .litegraph .bullet_icon:hover { background-color: #698; cursor: pointer; } /* OLD */ .graphcontextmenu { padding: 4px; min-width: 100px; } .graphcontextmenu-title { color: #dde; background-color: #222; margin: 0; padding: 2px; cursor: default; } .graphmenu-entry { box-sizing: border-box; margin: 2px; padding-left: 20px; user-select: none; -moz-user-select: none; -webkit-user-select: none; transition: all linear 0.3s; } .graphmenu-entry.event, .litemenu-entry.event { border-left: 8px solid orange; padding-left: 12px; } .graphmenu-entry.disabled { opacity: 0.3; } .graphmenu-entry.submenu { border-right: 2px solid #eee; } .graphmenu-entry:hover { background-color: #555; } .graphmenu-entry.separator { background-color: #111; border-bottom: 1px solid #666; height: 1px; width: calc(100% - 20px); -moz-width: calc(100% - 20px); -webkit-width: calc(100% - 20px); } .graphmenu-entry .property_name { display: inline-block; text-align: left; min-width: 80px; min-height: 1.2em; } .graphmenu-entry .property_value, .litemenu-entry .property_value { display: inline-block; background-color: rgba(0, 0, 0, 0.5); text-align: right; min-width: 80px; min-height: 1.2em; vertical-align: middle; padding-right: 10px; } .graphdialog { position: absolute; top: 10px; left: 10px; min-height: 2em; background-color: #333; font-size: 1.2em; box-shadow: 0 0 10px black !important; z-index: 10; } .graphdialog.rounded { border-radius: 12px; padding-right: 2px; } .graphdialog .name { display: inline-block; min-width: 60px; min-height: 1.5em; padding-left: 10px; } .graphdialog input, .graphdialog textarea, .graphdialog select { margin: 3px; min-width: 60px; min-height: 1.5em; background-color: black; border: 0; color: white; padding-left: 10px; outline: none; } .graphdialog textarea { min-height: 150px; } .graphdialog button { margin-top: 3px; vertical-align: top; background-color: #999; border: 0; } .graphdialog button.rounded, .graphdialog input.rounded { border-radius: 0 12px 12px 0; } .graphdialog .helper { overflow: auto; max-height: 200px; } .graphdialog .help-item { padding-left: 10px; } .graphdialog .help-item:hover, .graphdialog .help-item.selected { cursor: pointer; background-color: white; color: black; } .litegraph .dialog { min-height: 0; } .litegraph .dialog .dialog-content { display: block; } .litegraph .dialog .dialog-content .subgraph_property { padding: 5px; } .litegraph .dialog .dialog-footer { margin: 0; } .litegraph .dialog .dialog-footer .subgraph_property { margin-top: 0; display: flex; align-items: center; padding: 5px; } .litegraph .dialog .dialog-footer .subgraph_property .name { flex: 1; } .litegraph .graphdialog { display: flex; align-items: center; border-radius: 20px; padding: 4px 10px; position: fixed; } .litegraph .graphdialog .name { padding: 0; min-height: 0; font-size: 16px; vertical-align: middle; } .litegraph .graphdialog .value { font-size: 16px; min-height: 0; margin: 0 10px; padding: 2px 5px; } .litegraph .graphdialog input[type="checkbox"] { width: 16px; height: 16px; } .litegraph .graphdialog button { padding: 4px 18px; border-radius: 20px; cursor: pointer; } :root { --fg-color: #000; --bg-color: #fff; --comfy-menu-bg: #353535; --comfy-input-bg: #222; --input-text: #ddd; --descrip-text: #999; --drag-text: #ccc; --error-text: #ff4444; --border-color: #4e4e4e; --tr-even-bg-color: #222; --tr-odd-bg-color: #353535; --primary-bg: #236692; --primary-fg: #ffffff; --primary-hover-bg: #3485bb; --primary-hover-fg: #ffffff; --content-bg: #e0e0e0; --content-fg: #000; --content-hover-bg: #adadad; --content-hover-fg: #000; } @media (prefers-color-scheme: dark) { :root { --fg-color: #fff; --bg-color: #202020; --content-bg: #4e4e4e; --content-fg: #fff; --content-hover-bg: #222; --content-hover-fg: #fff; } } body { width: 100vw; height: 100vh; margin: 0; overflow: hidden; grid-template-columns: auto 1fr auto; grid-template-rows: auto 1fr auto; background-color: var(--bg-color); color: var(--fg-color); min-height: -webkit-fill-available; max-height: -webkit-fill-available; min-width: -webkit-fill-available; max-width: -webkit-fill-available; font-family: Arial, sans-serif; } /** +------------------+------------------+------------------+ | | | .comfyui-body- | | top | | (spans all cols) | | | +------------------+------------------+------------------+ | | | | | .comfyui-body- | #graph-canvas | .comfyui-body- | | left | | right | | | | | | | | | +------------------+------------------+------------------+ | | | .comfyui-body- | | bottom | | (spans all cols) | | | +------------------+------------------+------------------+ */ .comfyui-body-top { order: -5; /* Span across all columns */ grid-column: 1/-1; /* Position at the first row */ grid-row: 1; z-index: 10; display: flex; flex-direction: column; } .comfyui-body-left { order: -4; /* Position in the first column */ grid-column: 1; /* Position below the top element */ grid-row: 2; z-index: 10; display: flex; } .graph-canvas-container { width: 100%; height: 100%; order: -3; grid-column: 2; grid-row: 2; position: relative; overflow: hidden; } #graph-canvas { width: 100%; height: 100%; } .comfyui-body-right { order: -2; z-index: 10; grid-column: 3; grid-row: 2; } .comfyui-body-bottom { order: 4; /* Span across all columns */ grid-column: 1/-1; grid-row: 3; z-index: 10; display: flex; flex-direction: column; } .comfy-multiline-input { background-color: var(--comfy-input-bg); color: var(--input-text); overflow: hidden; overflow-y: auto; padding: 2px; resize: none; border: none; box-sizing: border-box; font-size: var(--comfy-textarea-font-size); } .comfy-modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 100; /* Sit on top */ padding: 30px 30px 10px 30px; background-color: var(--comfy-menu-bg); /* Modal background */ color: var(--error-text); box-shadow: 0 0 20px #888888; border-radius: 10px; top: 50%; left: 50%; max-width: 80vw; max-height: 80vh; transform: translate(-50%, -50%); overflow: hidden; justify-content: center; font-family: monospace; font-size: 15px; } .comfy-modal-content { display: flex; flex-direction: column; } .comfy-modal p { overflow: auto; white-space: pre-line; /* This will respect line breaks */ margin-bottom: 20px; /* Add some margin between the text and the close button*/ } .comfy-modal select, .comfy-modal input[type=button], .comfy-modal input[type=checkbox] { margin: 3px 3px 3px 4px; } .comfy-menu-hamburger { position: fixed; top: 10px; z-index: 9999; right: 10px; width: 30px; display: none; gap: 8px; flex-direction: column; cursor: pointer; } .comfy-menu-hamburger div { height: 3px; width: 100%; border-radius: 20px; background-color: white; } .comfy-menu { font-size: 15px; position: absolute; top: 50%; right: 0; text-align: center; z-index: 999; width: 190px; display: flex; flex-direction: column; align-items: center; color: var(--descrip-text); background-color: var(--comfy-menu-bg); font-family: sans-serif; padding: 10px; border-radius: 0 8px 8px 8px; box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.4); } .comfy-menu-header { display: flex; } .comfy-menu-actions { display: flex; gap: 3px; align-items: center; height: 20px; position: relative; top: -1px; font-size: 22px; } .comfy-menu .comfy-menu-actions button { background-color: rgba(0, 0, 0, 0); padding: 0; border: none; cursor: pointer; font-size: inherit; } .comfy-menu .comfy-menu-actions .comfy-settings-btn { font-size: 0.6em; } button.comfy-close-menu-btn { font-size: 1em; line-height: 12px; color: #ccc; position: relative; top: -1px; } .comfy-menu-queue-size { flex: auto; } .comfy-menu button, .comfy-modal button { font-size: 20px; } .comfy-menu-btns { margin-bottom: 10px; width: 100%; } .comfy-menu-btns button { font-size: 10px; width: 50%; color: var(--descrip-text) !important; } .comfy-menu > button { width: 100%; } .comfy-btn, .comfy-menu > button, .comfy-menu-btns button, .comfy-menu .comfy-list button, .comfy-modal button { color: var(--input-text); background-color: var(--comfy-input-bg); border-radius: 8px; border-color: var(--border-color); border-style: solid; margin-top: 2px; } .comfy-btn:hover:not(:disabled), .comfy-menu > button:hover, .comfy-menu-btns button:hover, .comfy-menu .comfy-list button:hover, .comfy-modal button:hover, .comfy-menu-actions button:hover { filter: brightness(1.2); will-change: transform; cursor: pointer; } span.drag-handle { width: 10px; height: 20px; display: inline-block; overflow: hidden; line-height: 5px; padding: 3px 4px; cursor: move; vertical-align: middle; margin-top: -.4em; margin-left: -.2em; font-size: 12px; font-family: sans-serif; letter-spacing: 2px; color: var(--drag-text); text-shadow: 1px 0 1px black; } span.drag-handle::after { content: '.. .. ..'; } .comfy-queue-btn { width: 100%; } .comfy-list { color: var(--descrip-text); background-color: var(--comfy-menu-bg); margin-bottom: 10px; border-color: var(--border-color); border-style: solid; } .comfy-list-items { overflow-y: scroll; max-height: 100px; min-height: 25px; background-color: var(--comfy-input-bg); padding: 5px; } .comfy-list h4 { min-width: 160px; margin: 0; padding: 3px; font-weight: normal; } .comfy-list-items button { font-size: 10px; } .comfy-list-actions { margin: 5px; display: flex; gap: 5px; justify-content: center; } .comfy-list-actions button { font-size: 12px; } button.comfy-queue-btn { margin: 6px 0 !important; } .comfy-modal.comfy-settings, .comfy-modal.comfy-manage-templates { text-align: center; font-family: sans-serif; color: var(--descrip-text); z-index: 99; } .comfy-modal.comfy-settings input[type="range"] { vertical-align: middle; } .comfy-modal.comfy-settings input[type="range"] + input[type="number"] { width: 3.5em; } .comfy-modal input, .comfy-modal select { color: var(--input-text); background-color: var(--comfy-input-bg); border-radius: 8px; border-color: var(--border-color); border-style: solid; font-size: inherit; } .comfy-tooltip-indicator { text-decoration: underline; text-decoration-style: dashed; } @media only screen and (max-height: 850px) { .comfy-menu { top: 0 !important; bottom: 0 !important; left: auto !important; right: 0 !important; border-radius: 0; } .comfy-menu span.drag-handle { display: none; } .comfy-menu-queue-size { flex: unset; } .comfy-menu-header { justify-content: space-between; } .comfy-menu-actions { gap: 10px; font-size: 28px; } } /* Input popup */ .graphdialog { min-height: 1em; background-color: var(--comfy-menu-bg); } .graphdialog .name { font-size: 14px; font-family: sans-serif; color: var(--descrip-text); } .graphdialog button { margin-top: unset; vertical-align: unset; height: 1.6em; padding-right: 8px; } .graphdialog input, .graphdialog textarea, .graphdialog select { background-color: var(--comfy-input-bg); border: 2px solid; border-color: var(--border-color); color: var(--input-text); border-radius: 12px 0 0 12px; } /* Dialogs */ dialog { box-shadow: 0 0 20px #888888; } dialog::backdrop { background: rgba(0, 0, 0, 0.5); } .comfy-dialog.comfyui-dialog.comfy-modal { top: 0; left: 0; right: 0; bottom: 0; transform: none; } .comfy-dialog.comfy-modal { font-family: Arial, sans-serif; border-color: var(--bg-color); box-shadow: none; border: 2px solid var(--border-color); } .comfy-dialog .comfy-modal-content { flex-direction: row; flex-wrap: wrap; gap: 10px; color: var(--fg-color); } .comfy-dialog .comfy-modal-content h3 { margin-top: 0; } .comfy-dialog .comfy-modal-content > p { width: 100%; } .comfy-dialog .comfy-modal-content > .comfyui-button { flex: 1; justify-content: center; } #comfy-settings-dialog { padding: 0; width: 41rem; } #comfy-settings-dialog tr > td:first-child { text-align: right; } #comfy-settings-dialog tbody button, #comfy-settings-dialog table > button { background-color: var(--bg-color); border: 1px var(--border-color) solid; border-radius: 0; color: var(--input-text); font-size: 1rem; padding: 0.5rem; } #comfy-settings-dialog button:hover { background-color: var(--tr-odd-bg-color); } /* General CSS for tables */ .comfy-table { border-collapse: collapse; color: var(--input-text); font-family: Arial, sans-serif; width: 100%; } .comfy-table caption { position: sticky; top: 0; background-color: var(--bg-color); color: var(--input-text); font-size: 1rem; font-weight: bold; padding: 8px; text-align: center; border-bottom: 1px solid var(--border-color); } .comfy-table caption .comfy-btn { position: absolute; top: -2px; right: 0; bottom: 0; cursor: pointer; border: none; height: 100%; border-radius: 0; aspect-ratio: 1/1; -webkit-user-select: none; -moz-user-select: none; user-select: none; font-size: 20px; } .comfy-table caption .comfy-btn:focus { outline: none; } .comfy-table tr:nth-child(even) { background-color: var(--tr-even-bg-color); } .comfy-table tr:nth-child(odd) { background-color: var(--tr-odd-bg-color); } .comfy-table td, .comfy-table th { border: 1px solid var(--border-color); padding: 8px; } /* Context menu */ .litegraph .dialog { z-index: 1; font-family: Arial, sans-serif; } .litegraph .litemenu-entry.has_submenu { position: relative; padding-right: 20px; } .litemenu-entry.has_submenu::after { content: ">"; position: absolute; top: 0; right: 2px; } .litegraph.litecontextmenu, .litegraph.litecontextmenu.dark { z-index: 9999 !important; background-color: var(--comfy-menu-bg) !important; filter: brightness(95%); will-change: transform; } .litegraph.litecontextmenu .litemenu-entry:hover:not(.disabled):not(.separator) { background-color: var(--comfy-menu-bg) !important; filter: brightness(155%); will-change: transform; color: var(--input-text); } .litegraph.litecontextmenu .litemenu-entry.submenu, .litegraph.litecontextmenu.dark .litemenu-entry.submenu { background-color: var(--comfy-menu-bg) !important; color: var(--input-text); } .litegraph.litecontextmenu input { background-color: var(--comfy-input-bg) !important; color: var(--input-text) !important; } .comfy-context-menu-filter { box-sizing: border-box; border: 1px solid #999; margin: 0 0 5px 5px; width: calc(100% - 10px); } .comfy-img-preview { pointer-events: none; overflow: hidden; display: flex; flex-wrap: wrap; align-content: flex-start; justify-content: center; } .comfy-img-preview img { -o-object-fit: contain; object-fit: contain; width: var(--comfy-img-preview-width); height: var(--comfy-img-preview-height); } .comfy-missing-nodes li button { font-size: 12px; margin-left: 5px; } /* Search box */ .litegraph.litesearchbox { z-index: 9999 !important; background-color: var(--comfy-menu-bg) !important; overflow: hidden; display: block; } .litegraph.litesearchbox input, .litegraph.litesearchbox select { background-color: var(--comfy-input-bg) !important; color: var(--input-text); } .litegraph.lite-search-item { color: var(--input-text); background-color: var(--comfy-input-bg); filter: brightness(80%); will-change: transform; padding-left: 0.2em; } .litegraph.lite-search-item.generic_type { color: var(--input-text); filter: brightness(50%); will-change: transform; } @media only screen and (max-width: 450px) { #comfy-settings-dialog .comfy-table tbody { display: grid; } #comfy-settings-dialog .comfy-table tr { display: grid; } #comfy-settings-dialog tr > td:first-child { text-align: center; border-bottom: none; padding-bottom: 0; } #comfy-settings-dialog tr > td:not(:first-child) { text-align: center; border-top: none; } } audio.comfy-audio.empty-audio-widget { display: none; } #vue-app { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; } /* Set auto complete panel's width as it is not accessible within vue-root */ .p-autocomplete-overlay { max-width: 25vw; } :root { --red-600: #dc3545; } .comfy-missing-nodes[data-v-286402f2] { font-family: monospace; color: var(--red-600); padding: 1.5rem; background-color: var(--surface-ground); border-radius: var(--border-radius); box-shadow: var(--card-shadow); } .warning-title[data-v-286402f2] { margin-top: 0; margin-bottom: 1rem; } .warning-description[data-v-286402f2] { margin-bottom: 1rem; } .missing-nodes-list[data-v-286402f2] { max-height: 300px; overflow-y: auto; } .missing-nodes-list.maximized[data-v-286402f2] { max-height: unset; } .missing-node-item[data-v-286402f2] { display: flex; align-items: center; padding: 0.5rem; } .node-type[data-v-286402f2] { font-weight: 600; color: var(--text-color); } .node-hint[data-v-286402f2] { margin-left: 0.5rem; font-style: italic; color: var(--text-color-secondary); } [data-v-286402f2] .p-button { margin-left: auto; } .added-nodes-warning[data-v-286402f2] { margin-top: 1rem; font-style: italic; } .input-slider[data-v-fbaf7a8c] { display: flex; align-items: center; gap: 1rem; } .slider-part[data-v-fbaf7a8c] { flex-grow: 1; } .input-part[data-v-fbaf7a8c] { width: 5rem !important; } .info-chip[data-v-4feeb3d2] { background: transparent; } .setting-item[data-v-4feeb3d2] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .setting-label[data-v-4feeb3d2] { display: flex; align-items: center; flex: 1; } .setting-input[data-v-4feeb3d2] { flex: 1; display: flex; justify-content: flex-end; margin-left: 1rem; } /* Ensure PrimeVue components take full width of their container */ .setting-input[data-v-4feeb3d2] .p-inputtext, .setting-input[data-v-4feeb3d2] .input-slider, .setting-input[data-v-4feeb3d2] .p-select, .setting-input[data-v-4feeb3d2] .p-togglebutton { width: 100%; max-width: 200px; } .setting-input[data-v-4feeb3d2] .p-inputtext { max-width: unset; } /* Special case for ToggleSwitch to align it to the right */ .setting-input[data-v-4feeb3d2] .p-toggleswitch { margin-left: auto; } .search-box-input[data-v-3bbe5335] { width: 100%; } .no-results-placeholder[data-v-5a7d148a] { display: flex; justify-content: center; align-items: center; height: 100%; padding: 2rem; } .no-results-placeholder[data-v-5a7d148a] .p-card { background-color: var(--surface-ground); text-align: center; } .no-results-placeholder h3[data-v-5a7d148a] { color: var(--text-color); margin-bottom: 0.5rem; } .no-results-placeholder p[data-v-5a7d148a] { color: var(--text-color-secondary); margin-bottom: 1rem; } /* Remove after we have tailwind setup */ .border-none { border: none !important; } .settings-tab-panels { padding-top: 0px !important; } .settings-container[data-v-833dbfbb] { display: flex; height: 70vh; width: 60vw; max-width: 1000px; overflow: hidden; /* Prevents container from scrolling */ } .settings-sidebar[data-v-833dbfbb] { width: 250px; flex-shrink: 0; /* Prevents sidebar from shrinking */ overflow-y: auto; padding: 10px; } .settings-search-box[data-v-833dbfbb] { width: 100%; margin-bottom: 10px; } .settings-content[data-v-833dbfbb] { flex-grow: 1; overflow-y: auto; /* Allows vertical scrolling */ } /* Ensure the Listbox takes full width of the sidebar */ .settings-sidebar[data-v-833dbfbb] .p-listbox { width: 100%; } /* Optional: Style scrollbars for webkit browsers */ .settings-sidebar[data-v-833dbfbb]::-webkit-scrollbar, .settings-content[data-v-833dbfbb]::-webkit-scrollbar { width: 1px; } .settings-sidebar[data-v-833dbfbb]::-webkit-scrollbar-thumb, .settings-content[data-v-833dbfbb]::-webkit-scrollbar-thumb { background-color: transparent; } .pi-cog[data-v-969a1066] { font-size: 1.25rem; margin-right: 0.5rem; } .version-tag[data-v-969a1066] { margin-left: 0.5rem; } :root { --sidebar-width: 64px; --sidebar-icon-size: 1.5rem; } :root .small-sidebar { --sidebar-width: 40px; --sidebar-icon-size: 1rem; } .side-tool-bar-container[data-v-f54e0ebc] { display: flex; flex-direction: column; align-items: center; pointer-events: auto; width: var(--sidebar-width); height: 100%; background-color: var(--comfy-menu-bg); color: var(--fg-color); } .side-tool-bar-end[data-v-f54e0ebc] { align-self: flex-end; margin-top: auto; } .sidebar-content-container[data-v-f54e0ebc] { height: 100%; overflow-y: auto; } .p-splitter-gutter { pointer-events: auto; } .gutter-hidden { display: none !important; } .side-bar-panel[data-v-1c49e664] { background-color: var(--bg-color); pointer-events: auto; } .splitter-overlay[data-v-1c49e664] { width: 100%; height: 100%; position: absolute; top: 0; left: 0; background-color: transparent; pointer-events: none; /* Set it the same as the ComfyUI menu */ /* Note: Lite-graph DOM widgets have the same z-index as the node id, so 999 should be sufficient to make sure splitter overlays on node's DOM widgets */ z-index: 999; border: none; } ._filter-button[data-v-071f55e3] { z-index: 10; } ._dialog[data-v-071f55e3] { min-width: 24rem; } ._dialog-body[data-v-071f55e3] { display: flex; flex-direction: column; } ._dialog-body[data-v-071f55e3] > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); } .comfy-core[data-v-1d7c94e5], .comfy-custom-nodes[data-v-1d7c94e5], .comfy-unknown[data-v-1d7c94e5] { font-size: small; font-weight: lighter; } .slot_row[data-v-d926c92a] { padding: 2px; } /* Original N-Sidebar styles */ ._sb_dot[data-v-d926c92a] { width: 8px; height: 8px; border-radius: 50%; background-color: grey; } .node_header[data-v-d926c92a] { line-height: 1; padding: 8px 13px 7px; background: var(--comfy-input-bg); margin-bottom: 5px; font-size: 15px; text-wrap: nowrap; overflow: hidden; display: flex; align-items: center; } .headdot[data-v-d926c92a] { width: 10px; height: 10px; float: inline-start; margin-right: 8px; } .IMAGE[data-v-d926c92a] { background-color: #64b5f6; } .VAE[data-v-d926c92a] { background-color: #ff6e6e; } .LATENT[data-v-d926c92a] { background-color: #ff9cf9; } .MASK[data-v-d926c92a] { background-color: #81c784; } .CONDITIONING[data-v-d926c92a] { background-color: #ffa931; } .CLIP[data-v-d926c92a] { background-color: #ffd500; } .MODEL[data-v-d926c92a] { background-color: #b39ddb; } .CONTROL_NET[data-v-d926c92a] { background-color: #a5d6a7; } ._sb_node_preview[data-v-d926c92a] { background-color: var(--comfy-menu-bg); font-family: 'Open Sans', sans-serif; font-size: small; color: var(--descrip-text); border: 1px solid var(--descrip-text); min-width: 300px; width: -moz-min-content; width: min-content; height: -moz-fit-content; height: fit-content; z-index: 9999; border-radius: 12px; overflow: hidden; font-size: 12px; padding-bottom: 10px; } ._sb_node_preview ._sb_description[data-v-d926c92a] { margin: 10px; padding: 6px; background: var(--border-color); border-radius: 5px; font-style: italic; font-weight: 500; font-size: 0.9rem; word-break: break-word; } ._sb_table[data-v-d926c92a] { display: grid; grid-column-gap: 10px; /* Spazio tra le colonne */ width: 100%; /* Imposta la larghezza della tabella al 100% del contenitore */ } ._sb_row[data-v-d926c92a] { display: grid; grid-template-columns: 10px 1fr 1fr 1fr 10px; grid-column-gap: 10px; align-items: center; padding-left: 9px; padding-right: 9px; } ._sb_row_string[data-v-d926c92a] { grid-template-columns: 10px 1fr 1fr 10fr 1fr; } ._sb_col[data-v-d926c92a] { border: 0px solid #000; display: flex; align-items: flex-end; flex-direction: row-reverse; flex-wrap: nowrap; align-content: flex-start; justify-content: flex-end; } ._sb_inherit[data-v-d926c92a] { display: inherit; } ._long_field[data-v-d926c92a] { background: var(--bg-color); border: 2px solid var(--border-color); margin: 5px 5px 0 5px; border-radius: 10px; line-height: 1.7; text-wrap: nowrap; } ._sb_arrow[data-v-d926c92a] { color: var(--fg-color); } ._sb_preview_badge[data-v-d926c92a] { text-align: center; background: var(--comfy-input-bg); font-weight: bold; color: var(--error-text); } .comfy-vue-node-search-container[data-v-b8a4ffdc] { display: flex; width: 100%; min-width: 24rem; align-items: center; justify-content: center; } .comfy-vue-node-search-container[data-v-b8a4ffdc] * { pointer-events: auto; } .comfy-vue-node-preview-container[data-v-b8a4ffdc] { position: absolute; left: -350px; top: 50px; } .comfy-vue-node-search-box[data-v-b8a4ffdc] { z-index: 10; flex-grow: 1; } .option-container[data-v-b8a4ffdc] { display: flex; width: 100%; cursor: pointer; flex-direction: column; overflow: hidden; padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem; } .option-display-name[data-v-b8a4ffdc] { font-weight: 600; } .option-category[data-v-b8a4ffdc] { overflow: hidden; text-overflow: ellipsis; font-size: 0.875rem; line-height: 1.25rem; --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); /* Keeps the text on a single line by default */ white-space: nowrap; } .i-badge[data-v-b8a4ffdc] { --tw-bg-opacity: 1; background-color: rgb(34 197 94 / var(--tw-bg-opacity)); --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); } .o-badge[data-v-b8a4ffdc] { --tw-bg-opacity: 1; background-color: rgb(239 68 68 / var(--tw-bg-opacity)); --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); } .c-badge[data-v-b8a4ffdc] { --tw-bg-opacity: 1; background-color: rgb(59 130 246 / var(--tw-bg-opacity)); --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); } .s-badge[data-v-b8a4ffdc] { --tw-bg-opacity: 1; background-color: rgb(234 179 8 / var(--tw-bg-opacity)); } [data-v-b8a4ffdc] .highlight { background-color: var(--p-primary-color); color: var(--p-primary-contrast-color); font-weight: bold; border-radius: 0.25rem; padding: 0.125rem 0.25rem; margin: -0.125rem 0.125rem; } .invisible-dialog-root { width: 30%; min-width: 24rem; max-width: 48rem; border: 0 !important; background-color: transparent !important; margin-top: 25vh; } .node-search-box-dialog-mask { align-items: flex-start !important; } .node-tooltip[data-v-d5e6001c] { background: var(--comfy-input-bg); border-radius: 5px; box-shadow: 0 0 5px rgba(0, 0, 0, 0.4); color: var(--input-text); font-family: sans-serif; left: 0; max-width: 30vw; padding: 4px 8px; position: absolute; top: 0; transform: translate(5px, calc(-100% - 5px)); white-space: pre-wrap; z-index: 99999; } .result-container[data-v-0fac61d9] { aspect-ratio: 1 / 1; overflow: hidden; } [data-v-0fac61d9] img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; } .p-image-preview[data-v-0fac61d9] { position: static; display: contents; } [data-v-0fac61d9] .image-preview-mask { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: auto; height: auto; display: flex; align-items: center; justify-content: center; opacity: 0; padding: 10px; cursor: pointer; background: rgba(0, 0, 0, 0.5); color: var(--p-image-preview-mask-color); transition: opacity var(--p-image-transition-duration), background var(--p-image-transition-duration); border-radius: 50%; } .task-result-preview[data-v-6cf8179c] { aspect-ratio: 1 / 1; overflow: hidden; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; } .task-result-preview i[data-v-6cf8179c], .task-result-preview span[data-v-6cf8179c] { font-size: 2rem; } .task-item[data-v-6cf8179c] { display: flex; flex-direction: column; border-radius: 4px; overflow: hidden; position: relative; } .task-item-details[data-v-6cf8179c] { position: absolute; bottom: 0; padding: 0.6rem; display: flex; justify-content: space-between; width: 100%; } /* In dark mode, transparent background color for tags is not ideal for tags that are floating on top of images. */ .tag-wrapper[data-v-6cf8179c] { background-color: var(--p-primary-contrast-color); border-radius: 6px; display: inline-flex; } .comfy-vue-side-bar-container[data-v-bde767d2] { display: flex; flex-direction: column; height: 100%; overflow: hidden; } .comfy-vue-side-bar-header[data-v-bde767d2] { flex-shrink: 0; border-left: none; border-right: none; border-top: none; border-radius: 0; padding: 0.25rem 1rem; min-height: 2.5rem; } .comfy-vue-side-bar-header-span[data-v-bde767d2] { font-size: small; } .comfy-vue-side-bar-body[data-v-bde767d2] { flex-grow: 1; overflow: auto; scrollbar-width: thin; scrollbar-color: transparent transparent; } .comfy-vue-side-bar-body[data-v-bde767d2]::-webkit-scrollbar { width: 1px; } .comfy-vue-side-bar-body[data-v-bde767d2]::-webkit-scrollbar-thumb { background-color: transparent; } .queue-grid[data-v-7f831ee9] { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); padding: 0.5rem; gap: 0.5rem; } .spinner[data-v-40c18658] { position: absolute; inset: 0px; display: flex; height: 100vh; align-items: center; justify-content: center }