- web/lib/: the shared rgthree-derived layer (mxd_* utils, dialogs, api, runtime) + its CSS, moved as a unit. - web/nodes/: one extension file per node/feature, _mxd suffix dropped. - web/vendor/zip_loader/: vendored zip import addon. - index.js explicitly imports every module; loraloader_mxd_entry.js folded into it and deleted. Power Lora Loader merge: new web/nodes/power_lora_base.js holds the shared node machinery, header row, and single-strength lora row widget. power_lora_loader.js (dual model/clip strengths) and ltx2_power_lora_loader.js (per-layer strength rows) are now thin subclasses (~450 duplicated lines removed). Serialization formats, widget names, extension names, and node targets unchanged. better_combos.js scoped to MXD latent loaders only: removed the pysssss CheckpointLoader/LoraLoader patching (already disabled behind ENABLE_PYSSSS_NODE_ENHANCEMENTS=false, so provably inert), the dead ' MXD' alias config entries, and the no-op refreshComboInNodes wrapper. scripts/check_web.py clean; node schema unchanged (68 identical). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
339 lines
9.0 KiB
CSS
339 lines
9.0 KiB
CSS
.mxd-info-dialog {
|
|
width: 90vw;
|
|
max-width: 960px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
display: flex;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li {
|
|
display: inline-flex;
|
|
margin: 0;
|
|
vertical-align: top;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li + li {
|
|
margin-left: 6px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li:not(.-link) + li.-link {
|
|
margin-left: auto;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li.mxd-info-tag > * {
|
|
min-height: 24px;
|
|
border-radius: 4px;
|
|
line-height: 1;
|
|
color: rgba(255, 255, 255, 0.85);
|
|
background: color-mix(in srgb, var(--p-primary-color, rgb(69, 92, 85)) 45%, rgb(69, 92, 85));
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
text-decoration: none;
|
|
display: flex;
|
|
height: 1.6em;
|
|
padding-left: 0.5em;
|
|
padding-right: 0.5em;
|
|
padding-bottom: 0.1em;
|
|
align-content: center;
|
|
justify-content: center;
|
|
align-items: center;
|
|
box-shadow: inset 0px 0px 0 1px rgba(0, 0, 0, 0.5);
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li.mxd-info-tag > * > svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li.mxd-info-tag > * > svg:last-child {
|
|
margin-left: 0.5em;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li.mxd-info-tag > *[href] {
|
|
box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.25), inset 0px -1px 0px rgba(0, 0, 0, 0.66);
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li.mxd-info-tag > *:empty {
|
|
display: none;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li.-type > * {
|
|
background: rgb(73, 54, 94);
|
|
color: rgb(228, 209, 248);
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li.mxd-info-menu {
|
|
margin-left: auto;
|
|
}
|
|
:not(#fakeid) .mxd-info-dialog .mxd-info-area > li.mxd-info-menu .mxd-button {
|
|
margin: 0;
|
|
min-height: 24px;
|
|
padding: 0 12px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-area > li.mxd-info-menu svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table {
|
|
border-collapse: collapse;
|
|
margin: 16px 0px;
|
|
width: 100%;
|
|
font-size: 12px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table tr.editable button {
|
|
display: flex;
|
|
width: 28px;
|
|
height: 28px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table tr.editable button svg + svg {
|
|
display: none;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table tr.editable.-mxd-editing button svg {
|
|
display: none;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table tr.editable.-mxd-editing button svg + svg {
|
|
display: inline-block;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td {
|
|
position: relative;
|
|
border: 1px solid var(--border-color, rgba(255, 255, 255, 0.25));
|
|
padding: 0;
|
|
vertical-align: top;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td:first-child {
|
|
background: var(--comfy-input-bg, rgba(255, 255, 255, 0.075));
|
|
width: 10px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td:first-child > *:first-child {
|
|
white-space: nowrap;
|
|
padding-right: 32px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td:first-child small {
|
|
display: block;
|
|
margin-top: 2px;
|
|
opacity: 0.75;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td:first-child small > [data-action] {
|
|
text-decoration: underline;
|
|
cursor: pointer;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td:first-child small > [data-action]:hover {
|
|
text-decoration: none;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td a, .mxd-info-dialog .mxd-info-table td a:hover, .mxd-info-dialog .mxd-info-table td a:visited {
|
|
color: inherit;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td svg {
|
|
width: 1.3333em;
|
|
height: 1.3333em;
|
|
vertical-align: -0.285em;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td svg.logo-civitai {
|
|
margin-right: 0.3333em;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > *:first-child {
|
|
display: block;
|
|
padding: 6px 10px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > input, .mxd-info-dialog .mxd-info-table td > textarea {
|
|
padding: 5px 10px;
|
|
border: 1px solid var(--p-primary-color, rgba(255, 255, 255, 0.25));
|
|
border-radius: 4px;
|
|
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35);
|
|
font: inherit;
|
|
appearance: none;
|
|
background: var(--comfy-input-bg, #2a2a2a);
|
|
color: var(--input-text, #eee);
|
|
resize: vertical;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > input:only-child, .mxd-info-dialog .mxd-info-table td > textarea:only-child {
|
|
width: 100%;
|
|
}
|
|
:not(#fakeid) .mxd-info-dialog .mxd-info-table td .mxd-button[data-action=fetch-civitai] {
|
|
font-size: inherit;
|
|
padding: 6px 16px;
|
|
margin: 2px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table tr[data-field-name=userNote] td > span:first-child {
|
|
white-space: pre;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table tr.mxd-info-table-break-row td {
|
|
border: 0;
|
|
background: transparent;
|
|
padding: 12px 4px 4px;
|
|
font-size: 1.2em;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table tr.mxd-info-table-break-row td > small {
|
|
font-style: italic;
|
|
opacity: 0.66;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table tr.mxd-info-table-break-row td:empty {
|
|
padding: 4px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td .-help {
|
|
border: 1px solid currentColor;
|
|
position: absolute;
|
|
right: 5px;
|
|
top: 6px;
|
|
line-height: 1;
|
|
font-size: 11px;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 8px;
|
|
display: flex;
|
|
align-content: center;
|
|
justify-content: center;
|
|
cursor: help;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td .-help::before {
|
|
content: "?";
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > ul.mxd-info-trained-words-list {
|
|
list-style: none;
|
|
padding: 2px 8px;
|
|
margin: 0;
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
max-height: 15vh;
|
|
overflow: auto;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > ul.mxd-info-trained-words-list > li {
|
|
display: inline-flex;
|
|
margin: 2px;
|
|
vertical-align: top;
|
|
border-radius: 4px;
|
|
line-height: 1;
|
|
color: rgba(255, 255, 255, 0.85);
|
|
background: rgb(73, 91, 106);
|
|
font-size: 1.2em;
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
display: flex;
|
|
height: 1.6em;
|
|
align-content: center;
|
|
justify-content: center;
|
|
align-items: center;
|
|
box-shadow: inset 0px 0px 0 1px rgba(0, 0, 0, 0.5);
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
max-width: 183px;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > ul.mxd-info-trained-words-list > li:hover {
|
|
background: rgb(68, 109, 142);
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > ul.mxd-info-trained-words-list > li > svg {
|
|
width: auto;
|
|
height: 1.2em;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > ul.mxd-info-trained-words-list > li > span {
|
|
padding-left: 0.5em;
|
|
padding-right: 0.5em;
|
|
padding-bottom: 0.1em;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > ul.mxd-info-trained-words-list > li > small {
|
|
align-self: stretch;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 0 0.5em;
|
|
background: rgba(0, 0, 0, 0.2);
|
|
}
|
|
.mxd-info-dialog .mxd-info-table td > ul.mxd-info-trained-words-list > li.-mxd-is-selected {
|
|
background: var(--p-primary-color, rgb(42, 126, 193));
|
|
color: var(--p-primary-contrast-color, rgba(255, 255, 255, 0.95));
|
|
}
|
|
.mxd-info-dialog .mxd-info-images {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
scroll-snap-type: x mandatory;
|
|
display: flex;
|
|
flex-direction: row;
|
|
overflow: auto;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li {
|
|
scroll-snap-align: start;
|
|
max-width: 90%;
|
|
flex: 0 0 auto;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
padding: 0;
|
|
margin: 6px;
|
|
font-size: 0;
|
|
position: relative;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure {
|
|
margin: 0;
|
|
position: static;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure video, .mxd-info-dialog .mxd-info-images > li figure img {
|
|
max-height: 45vh;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure figcaption {
|
|
position: absolute;
|
|
left: 0;
|
|
width: 100%;
|
|
bottom: 0;
|
|
padding: 12px;
|
|
font-size: 12px;
|
|
background: rgba(0, 0, 0, 0.85);
|
|
opacity: 0;
|
|
transform: translateY(50px);
|
|
transition: all 0.25s ease-in-out;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure figcaption > span {
|
|
display: inline-block;
|
|
padding: 2px 4px;
|
|
margin: 2px;
|
|
border-radius: 2px;
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
word-break: break-word;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure figcaption > span label {
|
|
display: inline;
|
|
padding: 0;
|
|
margin: 0;
|
|
opacity: 0.5;
|
|
pointer-events: none;
|
|
user-select: none;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure figcaption > span a {
|
|
color: inherit;
|
|
text-decoration: underline;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure figcaption > span a:hover {
|
|
text-decoration: none;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure figcaption > span a svg {
|
|
height: 10px;
|
|
margin-left: 4px;
|
|
fill: currentColor;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure figcaption:empty {
|
|
text-align: center;
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li figure figcaption:empty::before {
|
|
content: "No data.";
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li:hover figure figcaption {
|
|
opacity: 1;
|
|
transform: translateY(0px);
|
|
}
|
|
.mxd-info-dialog .mxd-info-images > li .mxd-info-table {
|
|
width: calc(100% - 16px);
|
|
}
|
|
.mxd-info-dialog .mxd-info-civitai-link {
|
|
margin: 8px;
|
|
color: var(--input-text, #eee);
|
|
}
|
|
.mxd-info-dialog .mxd-info-civitai-link a, .mxd-info-dialog .mxd-info-civitai-link a:hover, .mxd-info-dialog .mxd-info-civitai-link a:visited {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
.mxd-info-dialog .mxd-info-civitai-link > svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
margin-right: 8px;
|
|
}
|