@dickpy/dsh-imagegen 1.5.5 → 1.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/lib/client.js +1032 -464
- package/lib/client.js.map +1 -1
- package/lib/index.js +260 -54
- package/package.json +81 -81
- package/src/canvas-store.ts +375 -376
- package/src/client/CanvasWorkspace.tsx +273 -30
- package/src/client/ImageGenPanel.tsx +160 -86
- package/src/client/SettingsCard.tsx +1128 -1114
- package/src/client/canvas-workspace.module.css +144 -8
- package/src/client/locales.ts +1515 -1455
- package/src/client/panel.module.css +27 -26
- package/src/engine.ts +998 -828
- package/src/gallery-store.ts +311 -311
- package/src/generation-runtime.ts +2 -2
- package/src/history-store.ts +275 -275
- package/src/image-storage-path.ts +12 -0
- package/src/index.ts +430 -424
- package/src/model-catalog.ts +149 -124
- package/src/presets.ts +95 -86
- package/src/prompt-enhancer.ts +151 -137
- package/src/protocol.ts +580 -574
- package/src/routes.ts +3 -0
- package/src/task-queue.ts +4 -5
|
@@ -142,6 +142,68 @@
|
|
|
142
142
|
|
|
143
143
|
.grid[data-mode="blank"] { background-image: none; }
|
|
144
144
|
|
|
145
|
+
.grid[data-mode="diagonal"] {
|
|
146
|
+
background-image: repeating-linear-gradient(45deg, color-mix(in srgb, var(--dsw-alias-label-primary) 8%, transparent) 0 1px, transparent 1px 16px);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.grid[data-mode="checker"] {
|
|
150
|
+
background-image:
|
|
151
|
+
conic-gradient(color-mix(in srgb, var(--dsw-alias-label-primary) 7%, transparent) 90deg, transparent 90deg 180deg, color-mix(in srgb, var(--dsw-alias-label-primary) 7%, transparent) 180deg 270deg, transparent 270deg);
|
|
152
|
+
background-size: 48px 48px;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.grid[data-mode="image"] { background-image: none; }
|
|
156
|
+
|
|
157
|
+
.gridScrim {
|
|
158
|
+
position: absolute;
|
|
159
|
+
inset: 0;
|
|
160
|
+
background: var(--dsw-alias-bg-layer-1);
|
|
161
|
+
opacity: 0.6;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* ------------------------------------------------ background menu */
|
|
165
|
+
|
|
166
|
+
.backgroundMenu {
|
|
167
|
+
position: absolute;
|
|
168
|
+
transform: translate(-50%, -100%);
|
|
169
|
+
z-index: 45;
|
|
170
|
+
min-width: 168px;
|
|
171
|
+
padding: 5px;
|
|
172
|
+
border-radius: 11px;
|
|
173
|
+
border: 1px solid var(--dsw-alias-border-l1);
|
|
174
|
+
background: color-mix(in srgb, var(--dsw-alias-bg-layer-1) 96%, transparent);
|
|
175
|
+
box-shadow: 0 16px 40px rgb(15 23 42 / 20%);
|
|
176
|
+
display: flex;
|
|
177
|
+
flex-direction: column;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.backgroundMenu button {
|
|
181
|
+
display: flex;
|
|
182
|
+
align-items: center;
|
|
183
|
+
justify-content: space-between;
|
|
184
|
+
border: none;
|
|
185
|
+
border-radius: 7px;
|
|
186
|
+
background: transparent;
|
|
187
|
+
color: var(--dsw-alias-label-primary);
|
|
188
|
+
font-size: 12.5px;
|
|
189
|
+
padding: 7px 10px;
|
|
190
|
+
cursor: pointer;
|
|
191
|
+
text-align: left;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.backgroundMenu button:hover { background: var(--dsw-alias-interactive-bg-hover); }
|
|
195
|
+
|
|
196
|
+
.backgroundMenu button[data-active] {
|
|
197
|
+
color: var(--dsw-alias-brand-primary);
|
|
198
|
+
background: color-mix(in srgb, var(--dsw-alias-brand-primary) 12%, transparent);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.backgroundMenuDivider {
|
|
202
|
+
height: 1px;
|
|
203
|
+
margin: 4px 6px;
|
|
204
|
+
background: var(--dsw-alias-border-l1);
|
|
205
|
+
}
|
|
206
|
+
|
|
145
207
|
.world {
|
|
146
208
|
position: absolute;
|
|
147
209
|
left: 0;
|
|
@@ -256,6 +318,33 @@
|
|
|
256
318
|
display: block;
|
|
257
319
|
}
|
|
258
320
|
|
|
321
|
+
.imageInfo {
|
|
322
|
+
position: absolute;
|
|
323
|
+
top: 6px;
|
|
324
|
+
z-index: 2;
|
|
325
|
+
padding: 3px 8px;
|
|
326
|
+
border-radius: 6px;
|
|
327
|
+
background: color-mix(in srgb, var(--dsw-alias-label-primary) 62%, transparent);
|
|
328
|
+
color: var(--dsw-alias-bg-layer-1);
|
|
329
|
+
font-size: 10.5px;
|
|
330
|
+
line-height: 1.4;
|
|
331
|
+
pointer-events: none;
|
|
332
|
+
backdrop-filter: blur(3px);
|
|
333
|
+
max-width: calc(100% - 90px);
|
|
334
|
+
overflow: hidden;
|
|
335
|
+
text-overflow: ellipsis;
|
|
336
|
+
white-space: nowrap;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.imageInfoLeft { left: 6px; font-weight: 600; }
|
|
340
|
+
|
|
341
|
+
.imageInfoRight {
|
|
342
|
+
right: 6px;
|
|
343
|
+
left: auto;
|
|
344
|
+
font-variant-numeric: tabular-nums;
|
|
345
|
+
opacity: 0.85;
|
|
346
|
+
}
|
|
347
|
+
|
|
259
348
|
.nodeState,
|
|
260
349
|
.nodeStateError {
|
|
261
350
|
display: flex;
|
|
@@ -343,7 +432,53 @@
|
|
|
343
432
|
backdrop-filter: blur(10px);
|
|
344
433
|
}
|
|
345
434
|
|
|
346
|
-
.dock .iconButton {
|
|
435
|
+
.dock .iconButton {
|
|
436
|
+
position: relative;
|
|
437
|
+
overflow: hidden;
|
|
438
|
+
width: 40px;
|
|
439
|
+
height: 40px;
|
|
440
|
+
border-radius: 11px;
|
|
441
|
+
transition: transform 0.18s cubic-bezier(0.34, 1.9, 0.64, 1), background 0.15s ease, color 0.15s ease, box-shadow 0.18s ease;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/* water-wave sheen sweeping across + gentle lift on hover */
|
|
445
|
+
.dock .iconButton::before {
|
|
446
|
+
content: '';
|
|
447
|
+
position: absolute;
|
|
448
|
+
top: -4px;
|
|
449
|
+
bottom: -4px;
|
|
450
|
+
left: -150%;
|
|
451
|
+
width: 65%;
|
|
452
|
+
background: linear-gradient(105deg, transparent, color-mix(in srgb, currentColor 26%, transparent), transparent);
|
|
453
|
+
transform: skewX(-18deg);
|
|
454
|
+
opacity: 0;
|
|
455
|
+
pointer-events: none;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
.dock .iconButton:not(:disabled):hover {
|
|
459
|
+
transform: translateY(calc(-3px - var(--dock-lift, 0px)));
|
|
460
|
+
box-shadow: 0 6px 14px color-mix(in srgb, var(--dsw-alias-label-primary) 20%, transparent);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
.dock .iconButton:not(:disabled):hover::before {
|
|
464
|
+
animation: dockShine 0.55s ease forwards;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.dock .iconButton:not(:disabled):active {
|
|
468
|
+
transform: translateY(-1px) scale(0.96);
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
@keyframes dockShine {
|
|
472
|
+
0% { left: -150%; opacity: 1; }
|
|
473
|
+
100% { left: 170%; opacity: 1; }
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
.dock .iconButton[data-active] {
|
|
477
|
+
background: var(--dsw-alias-label-primary);
|
|
478
|
+
color: var(--dsw-alias-bg-layer-1);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
.dock .iconButton[data-active]:hover { background: var(--dsw-alias-label-primary); color: var(--dsw-alias-bg-layer-1); }
|
|
347
482
|
|
|
348
483
|
.dockDivider {
|
|
349
484
|
width: 1px;
|
|
@@ -439,29 +574,30 @@
|
|
|
439
574
|
/* ------------------------------------------------------ config node */
|
|
440
575
|
|
|
441
576
|
.configNode {
|
|
442
|
-
padding: 0
|
|
577
|
+
padding: 0 14px 14px;
|
|
443
578
|
cursor: grab;
|
|
444
579
|
}
|
|
445
580
|
|
|
446
|
-
.configNode .nodeHeader { padding:
|
|
581
|
+
.configNode .nodeHeader { padding: 10px 2px 6px; font-size: 12px; }
|
|
447
582
|
|
|
448
583
|
.configLinks {
|
|
449
584
|
display: flex;
|
|
450
|
-
|
|
585
|
+
align-items: center;
|
|
586
|
+
margin: 4px 0 10px;
|
|
451
587
|
flex: none;
|
|
452
588
|
}
|
|
453
589
|
|
|
454
590
|
.configLinks .composerChip {
|
|
455
|
-
font-size:
|
|
456
|
-
padding:
|
|
591
|
+
font-size: 11px;
|
|
592
|
+
padding: 3px 10px;
|
|
457
593
|
}
|
|
458
594
|
|
|
459
595
|
.configHint {
|
|
460
596
|
flex: 1;
|
|
461
597
|
min-height: 0;
|
|
462
598
|
margin: 0;
|
|
463
|
-
font-size:
|
|
464
|
-
line-height: 1.
|
|
599
|
+
font-size: 11.5px;
|
|
600
|
+
line-height: 1.7;
|
|
465
601
|
color: var(--dsw-alias-label-tertiary);
|
|
466
602
|
overflow: auto;
|
|
467
603
|
}
|