1627 lines
212 KiB
HTML
1627 lines
212 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>PozzettiAndrea/ComfyUI-GeometryPack - Test Results</title>
|
|
<style>
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
background: #0f1923;
|
|
color: #e6edf3;
|
|
min-height: 100vh;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
header {
|
|
background: #162033;
|
|
padding: 1.25rem 2rem;
|
|
border-bottom: 1px solid #243656;
|
|
}
|
|
|
|
body.in-iframe header {
|
|
display: none;
|
|
}
|
|
|
|
body.in-iframe .container {
|
|
padding-top: 1.25rem;
|
|
}
|
|
|
|
body.in-iframe .summary-meta {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 1.25rem;
|
|
font-weight: 600;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
h1 a {
|
|
color: #e6edf3;
|
|
text-decoration: none;
|
|
}
|
|
|
|
h1 a:hover { color: #58a6ff; }
|
|
|
|
.meta-chips {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
}
|
|
|
|
.meta-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.35rem;
|
|
padding: 0.2rem 0.6rem;
|
|
background: #1c2d44;
|
|
border: 1px solid #243656;
|
|
border-radius: 2rem;
|
|
font-size: 0.75rem;
|
|
color: #8ba3c1;
|
|
}
|
|
|
|
a.meta-chip {
|
|
text-decoration: none;
|
|
transition: background 0.15s, border-color 0.15s, color 0.15s;
|
|
}
|
|
|
|
a.meta-chip:hover {
|
|
background: #25395a;
|
|
border-color: #3a5587;
|
|
color: #cfe1f7;
|
|
}
|
|
|
|
.meta-chip svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
fill: currentColor;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.container {
|
|
max-width: 1400px;
|
|
margin: 0 auto;
|
|
padding: 2rem;
|
|
}
|
|
|
|
/* Summary Section */
|
|
.summary {
|
|
background: #162033;
|
|
border: 1px solid #243656;
|
|
border-radius: 8px;
|
|
padding: 1.5rem;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.progress-wrapper {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.progress-bar {
|
|
background: #1c2d44;
|
|
border-radius: 6px;
|
|
height: 10px;
|
|
overflow: hidden;
|
|
flex: 1;
|
|
}
|
|
|
|
.progress-fill {
|
|
background: #3fb950;
|
|
height: 100%;
|
|
border-radius: 6px;
|
|
transition: width 0.3s ease;
|
|
}
|
|
|
|
.progress-fill.has-failures {
|
|
background: linear-gradient(90deg, #3fb950 0%, #3fb950 33.33333333333333%, #f85149 33.33333333333333%, #f85149 100%);
|
|
width: 100% !important;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.progress-label {
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
color: #8ba3c1;
|
|
white-space: nowrap;
|
|
min-width: 3.5rem;
|
|
text-align: right;
|
|
}
|
|
|
|
.stats {
|
|
display: flex;
|
|
gap: 0.75rem;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
}
|
|
|
|
.stat-badge {
|
|
padding: 0.35rem 0.75rem;
|
|
border-radius: 2rem;
|
|
font-weight: 600;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.stat-pass {
|
|
background: rgba(63, 185, 80, 0.15);
|
|
color: #3fb950;
|
|
}
|
|
|
|
.stat-fail {
|
|
background: rgba(248, 81, 73, 0.15);
|
|
color: #f85149;
|
|
}
|
|
|
|
.stat-total {
|
|
color: #8ba3c1;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
/* Failed Section */
|
|
.failed-section {
|
|
background: rgba(248, 81, 73, 0.08);
|
|
border: 1px solid rgba(248, 81, 73, 0.3);
|
|
border-radius: 8px;
|
|
padding: 1.25rem;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.failed-section h2 {
|
|
color: #f85149;
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.failed-item {
|
|
background: #162033;
|
|
border: 1px solid #243656;
|
|
border-radius: 6px;
|
|
padding: 1rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.failed-item:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.failed-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.failed-name {
|
|
font-weight: 600;
|
|
color: #f85149;
|
|
}
|
|
|
|
.failed-duration {
|
|
color: #8ba3c1;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.failed-error {
|
|
background: #0f1923;
|
|
border: 1px solid #243656;
|
|
padding: 0.75rem;
|
|
border-radius: 6px;
|
|
font-family: 'SFMono-Regular', 'Menlo', 'Monaco', monospace;
|
|
font-size: 0.8rem;
|
|
color: #d29922;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.log-link {
|
|
color: #58a6ff;
|
|
text-decoration: none;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.log-link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* Workflow Grid */
|
|
.section-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 1.25rem;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 0.8rem;
|
|
color: #8ba3c1;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.06em;
|
|
}
|
|
|
|
.view-controls {
|
|
display: flex;
|
|
gap: 0;
|
|
align-items: center;
|
|
border: 1px solid #243656;
|
|
border-radius: 6px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.view-btn {
|
|
background: #1c2d44;
|
|
color: #8ba3c1;
|
|
border: none;
|
|
border-right: 1px solid #243656;
|
|
padding: 0.3rem 0.75rem;
|
|
cursor: pointer;
|
|
font-size: 0.75rem;
|
|
font-weight: 500;
|
|
transition: all 0.15s;
|
|
}
|
|
|
|
.view-btn:last-child {
|
|
border-right: none;
|
|
}
|
|
|
|
.view-btn:hover {
|
|
background: #243656;
|
|
color: #e6edf3;
|
|
}
|
|
|
|
.view-btn.active {
|
|
background: #58a6ff;
|
|
color: #fff;
|
|
}
|
|
|
|
.workflow-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 1rem;
|
|
}
|
|
|
|
.workflow-grid.view-list {
|
|
grid-template-columns: 1fr;
|
|
gap: 0;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-card {
|
|
border-radius: 0;
|
|
border-bottom: 1px solid #243656;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-card:first-child {
|
|
border-radius: 8px 8px 0 0;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-card:last-child {
|
|
border-radius: 0 0 8px 8px;
|
|
border-bottom: none;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-card:only-child {
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-screenshot {
|
|
width: 100%;
|
|
height: auto;
|
|
aspect-ratio: auto;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-info {
|
|
border-top: 1px solid #243656;
|
|
padding: 0.75rem 1rem;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-name {
|
|
max-width: none;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.workflow-card {
|
|
background: #162033;
|
|
border: 1px solid #243656;
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
transition: transform 0.15s, border-color 0.15s;
|
|
}
|
|
|
|
.workflow-card:hover {
|
|
transform: translateY(-1px);
|
|
border-color: #4a6282;
|
|
}
|
|
|
|
.workflow-card.clickable {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.workflow-card.failed {
|
|
border-color: #f85149;
|
|
}
|
|
|
|
.workflow-card.failed:hover {
|
|
border-color: #f85149;
|
|
}
|
|
|
|
.workflow-screenshot {
|
|
width: 100%;
|
|
aspect-ratio: 16/10;
|
|
object-fit: cover;
|
|
background: #0f1923;
|
|
display: block;
|
|
}
|
|
|
|
.workflow-screenshot.placeholder {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: #4a6282;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.workflow-info {
|
|
padding: 0.75rem 1rem;
|
|
border-top: 1px solid #243656;
|
|
}
|
|
|
|
.workflow-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.workflow-name {
|
|
font-weight: 500;
|
|
font-size: 0.85rem;
|
|
color: #e6edf3;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
max-width: 65%;
|
|
}
|
|
|
|
.workflow-badge {
|
|
padding: 0.15rem 0.5rem;
|
|
border-radius: 2rem;
|
|
font-size: 0.7rem;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.03em;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.workflow-badge.pass {
|
|
background: rgba(63, 185, 80, 0.15);
|
|
color: #3fb950;
|
|
}
|
|
|
|
.workflow-badge.fail {
|
|
background: rgba(248, 81, 73, 0.15);
|
|
color: #f85149;
|
|
}
|
|
|
|
.workflow-meta {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
font-size: 0.75rem;
|
|
color: #4a6282;
|
|
}
|
|
|
|
/* Lightbox */
|
|
.lightbox {
|
|
display: none;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: rgba(1, 4, 9, 0.9);
|
|
z-index: 1000;
|
|
justify-content: center;
|
|
align-items: flex-start;
|
|
padding: 2rem;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.lightbox.active {
|
|
display: flex;
|
|
}
|
|
|
|
.lightbox-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
max-width: 1200px;
|
|
width: 100%;
|
|
margin: auto;
|
|
}
|
|
|
|
.lightbox-content img {
|
|
max-width: 100%;
|
|
max-height: 60vh;
|
|
object-fit: contain;
|
|
border-radius: 8px;
|
|
border: 1px solid #243656;
|
|
align-self: center;
|
|
cursor: zoom-in;
|
|
}
|
|
|
|
.img-overlay {
|
|
display: none;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
z-index: 1002;
|
|
background: rgba(1, 4, 9, 0.95);
|
|
overflow: auto;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.img-overlay.active {
|
|
display: flex;
|
|
}
|
|
|
|
.img-overlay.zoomed {
|
|
align-items: flex-start;
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.img-overlay img {
|
|
max-width: 100%;
|
|
max-height: 100%;
|
|
object-fit: contain;
|
|
cursor: zoom-in;
|
|
}
|
|
|
|
.img-overlay.zoomed img {
|
|
max-width: none;
|
|
max-height: none;
|
|
cursor: zoom-out;
|
|
}
|
|
|
|
.lightbox-close {
|
|
position: fixed;
|
|
top: 1rem;
|
|
right: 1.5rem;
|
|
font-size: 2rem;
|
|
color: #e6edf3;
|
|
cursor: pointer;
|
|
opacity: 0.6;
|
|
background: none;
|
|
border: none;
|
|
z-index: 1001;
|
|
}
|
|
|
|
.lightbox-close:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
.lightbox-nav {
|
|
position: fixed;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
background: rgba(22, 32, 51, 0.8);
|
|
border: 1px solid #243656;
|
|
color: #e6edf3;
|
|
font-size: 2.5rem;
|
|
width: 48px;
|
|
height: 64px;
|
|
border-radius: 8px;
|
|
cursor: pointer;
|
|
opacity: 0.6;
|
|
z-index: 1001;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: opacity 0.15s;
|
|
padding: 0;
|
|
line-height: 1;
|
|
}
|
|
|
|
.lightbox-nav:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
.lightbox-nav-left { left: 1rem; }
|
|
.lightbox-nav-right { right: 1rem; }
|
|
|
|
.lightbox-info {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 1rem 1.25rem;
|
|
background: #162033;
|
|
border: 1px solid #243656;
|
|
border-radius: 8px;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.lightbox-title {
|
|
font-size: 1rem;
|
|
font-weight: 600;
|
|
color: #e6edf3;
|
|
}
|
|
|
|
.lightbox-hardware {
|
|
display: block;
|
|
font-size: 0.75rem;
|
|
color: #8ba3c1;
|
|
margin-top: 0.25rem;
|
|
}
|
|
|
|
.lightbox-meta {
|
|
display: flex;
|
|
gap: 1rem;
|
|
align-items: center;
|
|
}
|
|
|
|
.lightbox-badge {
|
|
padding: 0.25rem 0.75rem;
|
|
border-radius: 2rem;
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.lightbox-badge.pass {
|
|
background: rgba(63, 185, 80, 0.15);
|
|
color: #3fb950;
|
|
}
|
|
|
|
.lightbox-badge.fail {
|
|
background: rgba(248, 81, 73, 0.15);
|
|
color: #f85149;
|
|
}
|
|
|
|
.lightbox-duration {
|
|
color: #8ba3c1;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.lightbox-log {
|
|
background: #0f1923;
|
|
border: 1px solid #243656;
|
|
border-radius: 8px;
|
|
padding: 1rem;
|
|
margin-top: 1rem;
|
|
max-height: 300px;
|
|
overflow-y: auto;
|
|
font-family: 'SFMono-Regular', 'Menlo', 'Monaco', monospace;
|
|
font-size: 0.8rem;
|
|
line-height: 1.5;
|
|
white-space: pre-wrap;
|
|
word-break: break-all;
|
|
color: #8ba3c1;
|
|
}
|
|
|
|
.lightbox-log::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
.lightbox-log::-webkit-scrollbar-track {
|
|
background: #162033;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.lightbox-log::-webkit-scrollbar-thumb {
|
|
background: #243656;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.lightbox-log::-webkit-scrollbar-thumb:hover {
|
|
background: #4a6282;
|
|
}
|
|
|
|
/* Resource Graph */
|
|
.resource-graph {
|
|
display: none;
|
|
margin-top: 1rem;
|
|
background: #162033;
|
|
border: 1px solid #243656;
|
|
border-radius: 8px;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.resource-graph.active {
|
|
display: block;
|
|
}
|
|
|
|
.resource-graph-title {
|
|
font-size: 0.8rem;
|
|
color: #8ba3c1;
|
|
font-weight: 500;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.resource-graph canvas {
|
|
width: 100%;
|
|
height: 120px;
|
|
cursor: crosshair;
|
|
}
|
|
|
|
.resource-legend {
|
|
display: flex;
|
|
gap: 1rem;
|
|
margin-top: 0.5rem;
|
|
font-size: 0.75rem;
|
|
color: #8ba3c1;
|
|
}
|
|
|
|
.resource-legend span {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
}
|
|
|
|
.resource-legend .dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.resource-legend .ram { background: #3fb950; }
|
|
.resource-legend .gpu { background: #d29922; }
|
|
|
|
/* Video Player */
|
|
.video-player {
|
|
display: none;
|
|
margin-top: 1rem;
|
|
background: #162033;
|
|
border: 1px solid #243656;
|
|
border-radius: 8px;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.video-player.active {
|
|
display: block;
|
|
}
|
|
|
|
.video-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.video-play-btn {
|
|
background: #58a6ff;
|
|
color: #fff;
|
|
border: none;
|
|
padding: 0.4rem 1rem;
|
|
border-radius: 6px;
|
|
cursor: pointer;
|
|
font-size: 0.8rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.video-play-btn:hover {
|
|
background: #79b8ff;
|
|
}
|
|
|
|
.video-frame-counter {
|
|
color: #8ba3c1;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.video-slider-container {
|
|
padding: 15px 0;
|
|
}
|
|
|
|
/* noUiSlider customization */
|
|
#video-slider {
|
|
height: 6px;
|
|
background: #1c2d44;
|
|
border: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
#video-slider .noUi-connect {
|
|
background: #58a6ff;
|
|
}
|
|
|
|
#video-slider .noUi-handle {
|
|
width: 16px;
|
|
height: 16px;
|
|
background: #58a6ff;
|
|
border: none;
|
|
border-radius: 50%;
|
|
box-shadow: none;
|
|
top: -5px;
|
|
right: -8px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
#video-slider .noUi-handle:before,
|
|
#video-slider .noUi-handle:after {
|
|
display: none;
|
|
}
|
|
|
|
/* Pips (tick marks) */
|
|
.noUi-pips {
|
|
color: #4a6282;
|
|
}
|
|
|
|
.noUi-marker {
|
|
background: #243656;
|
|
width: 2px;
|
|
}
|
|
|
|
.noUi-marker-large {
|
|
height: 12px;
|
|
}
|
|
|
|
.noUi-value {
|
|
display: none;
|
|
}
|
|
|
|
/* Models Section */
|
|
.models-section {
|
|
margin-top: 2rem;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.models-total {
|
|
font-size: 0.8rem;
|
|
color: #8ba3c1;
|
|
}
|
|
|
|
.models-folder {
|
|
background: #162033;
|
|
border: 1px solid #243656;
|
|
border-radius: 8px;
|
|
margin-bottom: 0.5rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.models-folder-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 0.75rem 1rem;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
list-style: none;
|
|
}
|
|
|
|
.models-folder-header::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
|
|
.models-folder-header::before {
|
|
content: '\25B6';
|
|
font-size: 0.6rem;
|
|
color: #4a6282;
|
|
margin-right: 0.5rem;
|
|
transition: transform 0.15s;
|
|
}
|
|
|
|
.models-folder[open] > .models-folder-header::before {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
.models-folder-name {
|
|
font-family: 'SFMono-Regular', 'Menlo', 'Monaco', monospace;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
color: #58a6ff;
|
|
}
|
|
|
|
.models-folder-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.models-folder-size {
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
color: #8ba3c1;
|
|
}
|
|
|
|
.models-source-link {
|
|
font-size: 0.75rem;
|
|
color: #3fb950;
|
|
text-decoration: none;
|
|
padding: 0.15rem 0.5rem;
|
|
background: rgba(63, 185, 80, 0.1);
|
|
border: 1px solid rgba(63, 185, 80, 0.2);
|
|
border-radius: 2rem;
|
|
}
|
|
|
|
.models-source-link:hover {
|
|
background: rgba(63, 185, 80, 0.2);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.models-file-list {
|
|
border-top: 1px solid #243656;
|
|
padding: 0.25rem 0;
|
|
}
|
|
|
|
.models-file {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 0.35rem 1rem 0.35rem 2rem;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.models-file:hover {
|
|
background: rgba(88, 166, 255, 0.05);
|
|
}
|
|
|
|
.models-file-path {
|
|
font-family: 'SFMono-Regular', 'Menlo', 'Monaco', monospace;
|
|
color: #8ba3c1;
|
|
word-break: break-all;
|
|
}
|
|
|
|
.models-file-size {
|
|
color: #4a6282;
|
|
white-space: nowrap;
|
|
margin-left: 1rem;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Footer */
|
|
footer {
|
|
text-align: center;
|
|
padding: 2.5rem;
|
|
color: #4a6282;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
footer a {
|
|
color: #58a6ff;
|
|
text-decoration: none;
|
|
}
|
|
|
|
footer a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* Responsive */
|
|
@media (max-width: 600px) {
|
|
.workflow-grid {
|
|
grid-template-columns: 1fr !important;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-card {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.workflow-grid.view-list .workflow-screenshot {
|
|
width: 100%;
|
|
height: auto;
|
|
aspect-ratio: 16/10;
|
|
}
|
|
|
|
.stats {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.section-header {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.container {
|
|
padding: 1rem;
|
|
}
|
|
}
|
|
</style>
|
|
<link href="https://cdn.jsdelivr.net/npm/nouislider@15/dist/nouislider.min.css" rel="stylesheet">
|
|
<script src="https://cdn.jsdelivr.net/npm/nouislider@15/dist/nouislider.min.js"></script>
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1><a href="https://github.com/PozzettiAndrea/PozzettiAndrea/ComfyUI-GeometryPack">PozzettiAndrea/ComfyUI-GeometryPack</a> Test Results</h1>
|
|
<div class="meta-chips">
|
|
<span class="meta-chip"><svg viewBox="0 0 16 16"><path d="M8 0a8 8 0 110 16A8 8 0 018 0zm.5 4.5a.5.5 0 00-1 0v3.793L5.854 9.854a.5.5 0 10.708.708l1.853-1.854a.5.5 0 00.085-.094V4.5z"/></svg> 2026-05-18 17:46 UTC</span> <a class="meta-chip" href="https://github.com/PozzettiAndrea/comfy-gpu-ci/actions/runs/26049430386" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 16 16"><path d="M8 0a8 8 0 100 16A8 8 0 008 0zM6.5 4.5l5 3.5-5 3.5v-7z"/></svg> Test run</a> <span class="meta-chip"><svg viewBox="0 0 16 16"><path d="M2.5 4a.5.5 0 100 1 .5.5 0 000-1zM4 4.5a.5.5 0 01.5-.5h7a.5.5 0 010 1h-7a.5.5 0 01-.5-.5zM2.5 7a.5.5 0 100 1 .5.5 0 000-1zM4 7.5a.5.5 0 01.5-.5h7a.5.5 0 010 1h-7A.5.5 0 014 7.5zM2.5 10a.5.5 0 100 1 .5.5 0 000-1zM4 10.5a.5.5 0 01.5-.5h7a.5.5 0 010 1h-7a.5.5 0 01-.5-.5z"/></svg> Windows-11-10.0.26100-SP0</span> <span class="meta-chip"><svg viewBox="0 0 16 16"><path d="M5 0a.5.5 0 01.5.5V2h1V.5a.5.5 0 011 0V2h1V.5a.5.5 0 011 0V2h.5A2.5 2.5 0 0112.5 4.5H14v1h-1.5v1H14v1h-1.5v1H14v1h-1.5A2.5 2.5 0 0110 12h-.5v1.5a.5.5 0 01-1 0V12h-1v1.5a.5.5 0 01-1 0V12H6v1.5a.5.5 0 01-1 0V12h-.5A2.5 2.5 0 012 9.5H.5v-1H2v-1H.5v-1H2v-1H.5v-1H2A2.5 2.5 0 014.5 2V.5A.5.5 0 015 0zm-.5 4A1.5 1.5 0 003 5.5v4A1.5 1.5 0 004.5 11h6a1.5 1.5 0 001.5-1.5v-4A1.5 1.5 0 0010.5 4h-6z"/></svg> Intel64 Family 6 Model 79 Stepping 1, GenuineIntel</span>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="container">
|
|
<div class="summary">
|
|
<div class="progress-wrapper">
|
|
<div class="progress-bar">
|
|
<div class="progress-fill has-failures" style="width: 33.33333333333333%"></div>
|
|
</div>
|
|
<span class="progress-label">33.3%</span>
|
|
</div>
|
|
<div class="stats">
|
|
<span class="stat-badge stat-pass">1 passed</span>
|
|
<span class="stat-badge stat-fail">2 failed</span>
|
|
<span class="stat-total">1/3 tests</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="section-header">
|
|
<h2 class="section-title">Workflows</h2>
|
|
<div class="view-controls">
|
|
<button class="view-btn active" onclick="setView('grid')">Grid</button>
|
|
<button class="view-btn" onclick="setView('list')">List</button>
|
|
</div>
|
|
</div>
|
|
<div class="workflow-grid" id="workflow-grid">
|
|
|
|
<div class="workflow-card clickable " onclick="openLightboxByName('fill_holes_all')">
|
|
|
|
<img class="workflow-screenshot" src="screenshots/fill_holes_all_executed.png"
|
|
alt="fill_holes_all" loading="lazy">
|
|
|
|
<div class="workflow-info">
|
|
<div class="workflow-header">
|
|
<span class="workflow-name" title="fill_holes_all">fill_holes_all</span>
|
|
<span class="workflow-badge pass">pass</span>
|
|
</div>
|
|
<div class="workflow-meta">
|
|
<span>23.66s</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="workflow-card clickable failed" onclick="openLightboxByName('remeshing_all')">
|
|
<div class="workflow-screenshot placeholder">No screenshot</div>
|
|
<div class="workflow-info">
|
|
<div class="workflow-header">
|
|
<span class="workflow-name" title="remeshing_all">remeshing_all</span>
|
|
<span class="workflow-badge fail">fail</span>
|
|
</div>
|
|
<div class="workflow-meta">
|
|
<span>576.77s</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="workflow-card clickable failed" onclick="openLightboxByName('uv_unwrap_all')">
|
|
<div class="workflow-screenshot placeholder">No screenshot</div>
|
|
<div class="workflow-info">
|
|
<div class="workflow-header">
|
|
<span class="workflow-name" title="uv_unwrap_all">uv_unwrap_all</span>
|
|
<span class="workflow-badge fail">fail</span>
|
|
</div>
|
|
<div class="workflow-meta">
|
|
<span>14.40s</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<div class="failed-section">
|
|
<h2>Failed Tests</h2>
|
|
|
|
<div class="failed-item">
|
|
<div class="failed-header">
|
|
<span class="failed-name">remeshing_all</span>
|
|
<span class="failed-duration">576.77s</span>
|
|
</div>
|
|
<div class="failed-error">Workflow execution failed: {'prompt_id': '79d0d241-e387-49d6-8803-962185db6c50', 'node_id': '51', 'node_type': 'GeomPackRemesh', 'executed': ['.0.7.1', '1', '50', '42', '.0.12.1', '.0.6.1', '.0.10.1', '43', '27', '.0.5.1', '30', '.0.13.1', '29', '44', '.0.9.1', '37', '.0.8.1', '39', '45', '49', '.0.11.1'], 'exception_message': 'DLL load failed while importing bpy: The specified procedure could not be found.\n\nWorker traceback:\nTraceback (most recent call last):\n File "C:\\Users\\ContainerUser\\AppData\\Local\\Temp\\comfyui_pvenv_zrjotde9\\persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\comfy_api\\latest\\_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\custom_nodes\\ComfyUI-GeometryPack\\nodes\\blender_remeshing\\backends\\sharp.py", line 40, in execute\n import bpy\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\comfy_env\\isolation\\metadata.py", line 556, in proxy\n result = worker.call_method(\n module_name=mod,\n ...<4 lines>...\n timeout=600.0,\n )\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\comfy_env\\isolation\\workers\\subprocess.py", line 674, in call_method\n raise WorkerError(\n ...<2 lines>...\n )\n'], 'current_inputs': {'trimesh': ['<trimesh.Trimesh(vertices.shape=(56203, 3), faces.shape=(112402, 3), name=`Stanford_Bunny.stl`)>'], 'octree_depth': [6], 'scale': [0.9], 'sharpness': [0.4], 'prompt': ['{\'1\': {\'inputs\': {\'file_path\': \'3d/Stanford_Bunny.stl\'}, \'class_type\': \'GeomPackLoadMesh\', \'_meta\': {\'title\': \'Load Mesh\'}}, \'27\': {\'inputs\': {\'backend\': \'pymeshlab_isotropic\', \'backend.target_edge_length\': 1.0, \'backend.iterations\': 3, \'backend.feature_angle\': 30.0, \'backend.adaptive\': \'false\', \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'29\': {\'inputs\': {\'mode\': \'fields\', \'preview_multi\': \'{"show_edges":true,"camera_state":"{\\\\"position\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\"focalPoint\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\"viewUp\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}","selected_field":"","selected_channel":"magnitude","selected_colormap":"erdc_rainbow_bright"}\', \'mesh_1\': [\'1\', 0], \'mesh_2\': [\'27\', 0], \'mesh_3\': [\'39\', 0], \'mesh_4\': [\'37\', 0]}, \'class_type\': \'GeomPackPreviewMeshMulti\', \'_meta\': {\'title\': \'Preview Mesh Multi\'}}, \'30\': {\'inputs\': {\'mode\': \'fields\', \'preview_multi\': \'{"show_edges":true,"camera_state":"{\\\\"position\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\"focalPoint\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\"viewUp\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}","selected_field":"","selected_channel":"magnitude","selected_colormap":"erdc_rainbow_bright"}\', \'mesh_1\': [\'44\', 0], \'mesh_2\': [\'45\', 0], \'mesh_3\': [\'42\', 0], \'mesh_4\': [\'43\', 0]}, \'class_type\': \'GeomPackPreviewMeshMulti\', \'_meta\': {\'title\': \'Preview Mesh Multi\'}}, \'37\': {\'inputs\': {\'backend\': \'quadriflow\', \'backend.target_face_count\': 5000, \'backend.preserve_sharp\': \'false\', \'backend.preserve_boundary\': \'true\', \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'39\': {\'inputs\': {\'backend\': \'instant_meshes\', \'backend.target_vertex_count\': 5000, \'backend.deterministic\': \'true\', \'backend.crease_angle\': 0.0, \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'42\': {\'inputs\': {\'backend\': \'geogram_anisotropic\', \'backend.nb_points_aniso\': 5000, \'backend.anisotropy\': 0.04, \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'43\': {\'inputs\': {\'backend\': \'pmp_uniform\', \'backend.pmp_edge_length\': 1.0, \'backend.pmp_iterations\': 1, \'backend.pmp_use_projection\': \'true\', \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'44\': {\'inputs\': {\'backend\': \'mmg_adaptive\', \'backend.hausd\': 0.1, \'backend.hmin\': 0.0, \'backend.hmax\': 0.0, \'backend.hgrad\': 1.3, \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'45\': {\'inputs\': {\'backend\': \'geogram_smooth\', \'backend.nb_points\': 5000, \'backend.nb_lloyd_iter\': 5, \'backend.nb_newton_iter\': 30, \'backend.newton_m\': 7, \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'46\': {\'inputs\': {\'mode\': \'fields\', \'preview_multi\': \'{"show_edges":true,"camera_state":"{\\\\"position\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\"focalPoint\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\"viewUp\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}","selected_field":"","selected_channel":"magnitude","selected_colormap":"erdc_rainbow_bright"}\', \'mesh_1\': [\'50\', 0], \'mesh_2\': [\'49\', 0], \'mesh_3\': [\'47\', 0], \'mesh_4\': [\'48\', 0]}, \'class_type\': \'GeomPackPreviewMeshMulti\', \'_meta\': {\'title\': \'Preview Mesh Multi\'}}, \'47\': {\'inputs\': {\'backend\': \'cgal_isotropic\', \'backend.cgal_edge_length\': 1.0, \'backend.cgal_iterations\': 3, \'backend.protect_boundaries\': \'true\', \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'48\': {\'inputs\': {\'backend\': \'blender_voxel\', \'backend.voxel_size\': 1.0, \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'49\': {\'inputs\': {\'backend\': \'quadwild\', \'backend.qw_sharp_angle\': 35.0, \'backend.qw_alpha\': 0.02, \'backend.qw_scale_factor\': 1.0, \'backend.qw_remesh\': \'true\', \'backend.qw_smooth\': \'true\', \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'50\': {\'inputs\': {\'backend\': \'pmp_adaptive\', \'backend.pmp_min_edge\': 0.2, \'backend.pmp_max_edge\': 3.0, \'backend.pmp_approx_error\': 1.0, \'backend.pmp_adaptive_iterations\': 1, \'backend.pmp_adaptive_projection\': \'false\', \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'51\': {\'inputs\': {\'backend\': \'blender_sharp\', \'backend.octree_depth\': 6, \'backend.scale\': 0.9, \'backend.sharpness\': 0.4, \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'52\': {\'inputs\': {\'backend\': \'gpu_cumesh\', \'backend.gpu_target_face_count\': 500000, \'backend.remesh_band\': 1.0, \'report_panel\': \'false\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'53\': {\'inputs\': {\'backend\': \'blender_blocks\', \'backend.octree_depth\': 6, \'backend.scale\': 0.9, \'report_panel\': \'true\', \'trimesh\': [\'1\', 0]}, \'class_type\': \'GeomPackRemesh\', \'_meta\': {\'title\': \'Remesh\'}}, \'55\': {\'inputs\': {\'mode\': \'fields\', \'preview_multi\': \'{"show_edges":true,"camera_state":"{\\\\"position\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\"focalPoint\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\"viewUp\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}","selected_field":"","selected_channel":"magnitude","selected_colormap":"erdc_rainbow_bright"}\', \'mesh_1\': [\'51\', 0], \'mesh_2\': [\'53\', 0], \'mesh_3\': [\'52\', 0]}, \'class_type\': \'GeomPackPreviewMeshMulti\', \'_meta\': {\'title\': \'Preview Mesh Multi\'}}}'], 'extra_pnginfo': ['{\'workflow\': {\'id\': \'fc31dc6e-fd82-4f42-9d3a-57283ccfadba\', \'revision\': 0, \'last_node_id\': 55, \'last_link_id\': 72, \'nodes\': [{\'id\': 1, \'type\': \'GeomPackLoadMesh\', \'pos\': [-1014.1521350641405, -579.0137321727649], \'size\': [270, 130.65625], \'flags\': {}, \'order\': 0, \'mode\': 0, \'inputs\': [], \'outputs\': [{\'name\': \'mesh\', \'type\': \'TRIMESH\', \'links\': [37, 38, 41, 42, 44, 45, 46, 47, 56, 57, 58, 59, 66, 67, 68]}, {\'name\': \'texture\', \'type\': \'IMAGE\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackLoadMesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'253a956368261760da54dc96750c2ab0224e2b1f\', \'aux_id\': \'PozzettiAndrea/ComfyUI-GeometryPack\'}, \'widgets_values\': [\'3d/Stanford_Bunny.stl\']}, {\'id\': 27, \'type\': \'GeomPackRemesh\', \'pos\': [-252.4796326065235, -967.5718475471988], \'size\': [366.21875, 287.015625], \'flags\': {}, \'order\': 1, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 37}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [39]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'pymeshlab_isotropic\', 1, 3, 30, \'false\', \'false\']}, {\'id\': 37, \'type\': \'GeomPackRemesh\', \'pos\': [135.90945541795637, -709.2518630000504], \'size\': [366.21875, 257.671875], \'flags\': {}, \'order\': 3, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 42}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [43]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'quadriflow\', 5000, \'false\', \'true\', \'false\']}, {\'id\': 29, \'type\': \'GeomPackPreviewMeshMulti\', \'pos\': [-250.65357747104312, -472.80821058805077], \'size\': [768, 702], \'flags\': {}, \'order\': 15, \'mode\': 0, \'inputs\': [{\'name\': \'mesh_1\', \'type\': \'TRIMESH\', \'link\': 38}, {\'name\': \'mesh_2\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 39}, {\'name\': \'mesh_3\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 40}, {\'name\': \'mesh_4\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 43}], \'outputs\': [], \'properties\': {\'Node name for S&R\': \'GeomPackPreviewMeshMulti\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'8f0378ab0ec8f20aad7b96ab2b1ec39ae6f82b6f\'}, \'widgets_values\': [\'fields\', \'{"show_edges":true,"camera_state":"{\\\\"position\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\"focalPoint\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\"viewUp\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}","selected_field":"","selected_channel":"magnitude","selected_colormap":"erdc_rainbow_bright"}\']}, {\'id\': 45, \'type\': \'GeomPackRemesh\', \'pos\': [945.7681182179566, -963.8635115000499], \'size\': [366.21875, 284.359375], \'flags\': {}, \'order\': 7, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 47}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [49]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'geogram_smooth\', 5000, 5, 30, 7, \'false\']}, {\'id\': 42, \'type\': \'GeomPackRemesh\', \'pos\': [549.6658062424374, -696.6258269529004], \'size\': [366.21875, 220.359375], \'flags\': {}, \'order\': 5, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 45}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [50]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'geogram_anisotropic\', 5000, 0.04, \'false\']}, {\'id\': 39, \'type\': \'GeomPackRemesh\', \'pos\': [-247.41854458204313, -710.5828630000495], \'size\': [366.21875, 255.015625], \'flags\': {}, \'order\': 2, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 41}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [40]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'instant_meshes\', 5000, \'true\', 0, \'false\']}, {\'id\': 51, \'type\': \'GeomPackRemesh\', \'pos\': [-78.43093791956267, 297.79791651807244], \'size\': [366.21875, 252.359375], \'flags\': {}, \'order\': 12, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 66}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [70]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'blender_sharp\', 6, 0.9, 0.4, \'false\']}, {\'id\': 53, \'type\': \'GeomPackRemesh\', \'pos\': [-225.54473505133143, 544.1198616120959], \'size\': [366.21875, 233.359375], \'flags\': {}, \'order\': 13, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 67}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [71]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'blender_blocks\', 6, 0.9, \'true\']}, {\'id\': 52, \'type\': \'GeomPackRemesh\', \'pos\': [158.48666338616763, 539.9816057527202], \'size\': [366.21875, 220.359375], \'flags\': {}, \'order\': 14, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 68}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [72]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'gpu_cumesh\', 500000, 1, \'false\']}, {\'id\': 50, \'type\': \'GeomPackRemesh\', \'pos\': [-1054.5376867889013, -409.41668100861546], \'size\': [366.21875, 319.015625], \'flags\': {}, \'order\': 8, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 56}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [52]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'pmp_adaptive\', 0.2, 3, 1, 1, \'false\', \'false\']}, {\'id\': 47, \'type\': \'GeomPackRemesh\', \'pos\': [-1049.4765987644212, -112.12259646146691], \'size\': [366.21875, 255.015625], \'flags\': {}, \'order\': 10, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 58}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [54]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'cgal_isotropic\', 1, 3, \'true\', \'false\']}, {\'id\': 48, \'type\': \'GeomPackRemesh\', \'pos\': [-666.1485987644222, -126.89669646146771], \'size\': [366.21875, 188.359375], \'flags\': {}, \'order\': 11, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 59}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [55]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'blender_voxel\', 1, \'false\']}, {\'id\': 49, \'type\': \'GeomPackRemesh\', \'pos\': [-661.8442867889027, -405.9802810086156], \'size\': [366.21875, 321.671875], \'flags\': {}, \'order\': 9, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 57}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [53]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'quadwild\', 35, 0.02, 1, \'true\', \'true\', \'false\']}, {\'id\': 46, \'type\': \'GeomPackPreviewMeshMulti\', \'pos\': [-1057.238644432902, 106.33224496938243], \'size\': [768, 702], \'flags\': {}, \'order\': 17, \'mode\': 0, \'inputs\': [{\'name\': \'mesh_1\', \'type\': \'TRIMESH\', \'link\': 52}, {\'name\': \'mesh_2\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 53}, {\'name\': \'mesh_3\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 54}, {\'name\': \'mesh_4\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 55}], \'outputs\': [], \'properties\': {\'Node name for S&R\': \'GeomPackPreviewMeshMulti\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'8f0378ab0ec8f20aad7b96ab2b1ec39ae6f82b6f\'}, \'widgets_values\': [\'fields\', \'{"show_edges":true,"camera_state":"{\\\\"position\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\"focalPoint\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\"viewUp\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}","selected_field":"","selected_channel":"magnitude","selected_colormap":"erdc_rainbow_bright"}\']}, {\'id\': 30, \'type\': \'GeomPackPreviewMeshMulti\', \'pos\': [550.3737605739569, -480.5909855220511], \'size\': [768, 702], \'flags\': {}, \'order\': 16, \'mode\': 0, \'inputs\': [{\'name\': \'mesh_1\', \'type\': \'TRIMESH\', \'link\': 51}, {\'name\': \'mesh_2\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 49}, {\'name\': \'mesh_3\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 50}, {\'name\': \'mesh_4\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 48}], \'outputs\': [], \'properties\': {\'Node name for S&R\': \'GeomPackPreviewMeshMulti\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'8f0378ab0ec8f20aad7b96ab2b1ec39ae6f82b6f\'}, \'widgets_values\': [\'fields\', \'{"show_edges":true,"camera_state":"{\\\\"position\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\"focalPoint\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\"viewUp\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}","selected_field":"","selected_channel":"magnitude","selected_colormap":"erdc_rainbow_bright"}\']}, {\'id\': 55, \'type\': \'GeomPackPreviewMeshMulti\', \'pos\': [549.6668179398112, 323.70854948682233], \'size\': [768, 702], \'flags\': {}, \'order\': 18, \'mode\': 0, \'inputs\': [{\'name\': \'mesh_1\', \'type\': \'TRIMESH\', \'link\': 70}, {\'name\': \'mesh_2\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 71}, {\'name\': \'mesh_3\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': 72}, {\'name\': \'mesh_4\', \'shape\': 7, \'type\': \'TRIMESH\', \'link\': None}], \'outputs\': [], \'properties\': {\'Node name for S&R\': \'GeomPackPreviewMeshMulti\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'8f0378ab0ec8f20aad7b96ab2b1ec39ae6f82b6f\'}, \'widgets_values\': [\'fields\', \'{"show_edges":true,"camera_state":"{\\\\"position\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\"focalPoint\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\"viewUp\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}","selected_field":"","selected_channel":"magnitude","selected_colormap":"erdc_rainbow_bright"}\']}, {\'id\': 43, \'type\': \'GeomPackRemesh\', \'pos\': [932.9938062424369, -711.3999269529013], \'size\': [366.21875, 255.015625], \'flags\': {}, \'order\': 6, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 46}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [48]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'pmp_uniform\', 1, 1, \'true\', \'false\']}, {\'id\': 44, \'type\': \'GeomPackRemesh\', \'pos\': [544.604718217957, -969.7199115000496], \'size\': [366.21875, 284.359375], \'flags\': {}, \'order\': 4, \'mode\': 0, \'inputs\': [{\'name\': \'trimesh\', \'type\': \'TRIMESH\', \'link\': 44}], \'outputs\': [{\'name\': \'remeshed_mesh\', \'type\': \'TRIMESH\', \'links\': [51]}, {\'name\': \'info\', \'type\': \'STRING\', \'links\': None}], \'properties\': {\'Node name for S&R\': \'GeomPackRemesh\', \'cnr_id\': \'comfyui-geometrypack\', \'ver\': \'f4d5713f5feef867c82be5a2d67e532e7a95933b\'}, \'widgets_values\': [\'mmg_adaptive\', 0.1, 0, 0, 1.3, \'false\']}], \'links\': [[37, 1, 0, 27, 0, \'TRIMESH\'], [38, 1, 0, 29, 0, \'TRIMESH\'], [39, 27, 0, 29, 1, \'TRIMESH\'], [40, 39, 0, 29, 2, \'TRIMESH\'], [41, 1, 0, 39, 0, \'TRIMESH\'], [42, 1, 0, 37, 0, \'TRIMESH\'], [43, 37, 0, 29, 3, \'TRIMESH\'], [44, 1, 0, 44, 0, \'TRIMESH\'], [45, 1, 0, 42, 0, \'TRIMESH\'], [46, 1, 0, 43, 0, \'TRIMESH\'], [47, 1, 0, 45, 0, \'TRIMESH\'], [48, 43, 0, 30, 3, \'TRIMESH\'], [49, 45, 0, 30, 1, \'TRIMESH\'], [50, 42, 0, 30, 2, \'TRIMESH\'], [51, 44, 0, 30, 0, \'TRIMESH\'], [52, 50, 0, 46, 0, \'TRIMESH\'], [53, 49, 0, 46, 1, \'TRIMESH\'], [54, 47, 0, 46, 2, \'TRIMESH\'], [55, 48, 0, 46, 3, \'TRIMESH\'], [56, 1, 0, 50, 0, \'TRIMESH\'], [57, 1, 0, 49, 0, \'TRIMESH\'], [58, 1, 0, 47, 0, \'TRIMESH\'], [59, 1, 0, 48, 0, \'TRIMESH\'], [66, 1, 0, 51, 0, \'TRIMESH\'], [67, 1, 0, 53, 0, \'TRIMESH\'], [68, 1, 0, 52, 0, \'TRIMESH\'], [70, 51, 0, 55, 0, \'TRIMESH\'], [71, 53, 0, 55, 1, \'TRIMESH\'], [72, 52, 0, 55, 2, \'TRIMESH\']], \'groups\': [], \'config\': {}, \'extra\': {\'ds\': {\'scale\': 0.6528681764088488, \'offset\': [838.5608850192757, 553.1081306843021]}, \'frontendVersion\': \'1.43.18\', \'workflowRendererVersion\': \'LG\'}, \'version\': 0.4}}']}, 'current_outputs': ['1', '50', '42', '53', '51', '43', '27', '47', '30', '46', '29', '48', '44', '37', '39', '45', '49', '52', '55'], 'timestamp': 1779126364013}
|
|
|
|
Details:
|
|
Workflow: C:\ComfyUI-GeometryPack\workflows\remeshing_all.json
|
|
Node error: GeomPackRemesh</div>
|
|
</div>
|
|
|
|
<div class="failed-item">
|
|
<div class="failed-header">
|
|
<span class="failed-name">uv_unwrap_all</span>
|
|
<span class="failed-duration">14.40s</span>
|
|
</div>
|
|
<div class="failed-error">Workflow execution failed: {'prompt_id': '99b155d3-29eb-467b-a842-a229bc66f2e1', 'node_id': '7', 'node_type': 'GeomPackUVUnwrap', 'executed': ['6', '.0.19.1', '1', '19'], 'exception_message': 'DLL load failed while importing bpy: The specified procedure could not be found.\n\nWorker traceback:\nTraceback (most recent call last):\n File "C:\\Users\\ContainerUser\\AppData\\Local\\Temp\\comfyui_pvenv_zrjotde9\\persistent_worker.py", line 1762, in main\n result = method(**inputs)\n File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\comfy_api\\latest\\_io.py", line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\custom_nodes\\ComfyUI-GeometryPack\\nodes\\blender_uv\\backends\\blender_smart.py", line 44, in execute\n import bpy\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\n\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py", line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py", line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py", line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py", line 297, in process_inputs\n result = f(**inputs)\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\comfy_env\\isolation\\metadata.py", line 556, in proxy\n result = worker.call_method(\n module_name=mod,\n ...<4 lines>...\n timeout=600.0,\n )\n', ' File "C:\\workspaces\\GeometryPack-1928\\portable-comfyui\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\comfy_env\\isolation\\workers\\subprocess.py", line 674, in call_method\n raise WorkerError(\n ...<2 lines>...\n )\n'], 'current_inputs': {'trimesh': ['<trimesh.Trimesh(vertices.shape=(11381, 3), faces.shape=(22704, 3), name=`camelhead.off`)>'], 'angle_limit': [66], 'island_margin': [0.02], 'scale_to_bounds': ['true'], 'prompt': ["{'1': {'inputs': {'file_path': '3d/camelhead.off'}, 'class_type': 'GeomPackLoadMesh', '_meta': {'title': 'Load Mesh'}}, '2': {'inputs': {'backend': 'xatlas', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '3': {'inputs': {'backend': 'cumesh', 'backend.chart_cone_angle': 90.0, 'backend.chart_refine_iterations': 0, 'backend.chart_global_iterations': 1, 'backend.chart_smooth_strength': 1, 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '4': {'inputs': {'backend': 'libigl_lscm', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '5': {'inputs': {'backend': 'libigl_harmonic', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '6': {'inputs': {'backend': 'libigl_arap', 'backend.iterations': 10, 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '7': {'inputs': {'backend': 'blender_smart', 'backend.angle_limit': 66.0, 'backend.island_margin': 0.02, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '8': {'inputs': {'backend': 'blender_cube', 'backend.cube_size': 1.0, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '9': {'inputs': {'backend': 'blender_cylinder', 'backend.cylinder_radius': 0.9, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '10': {'inputs': {'backend': 'blender_sphere', 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '15': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['7', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '16': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['8', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '17': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['10', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '18': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['2', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '19': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['6', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '20': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['3', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '21': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['9', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '22': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['5', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '23': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['4', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}}"], 'extra_pnginfo': ["{'workflow': {'id': 'test-uv-unwrap-all-0001', 'revision': 0, 'last_node_id': 23, 'last_link_id': 30, 'nodes': [{'id': 1, 'type': 'GeomPackLoadMesh', 'pos': [-800, 0], 'size': [270, 130.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'mesh', 'type': 'TRIMESH', 'links': [1, 2, 3, 4, 5, 6, 7, 8, 9]}, {'name': 'texture', 'type': 'IMAGE', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackLoadMesh', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['3d/camelhead.off']}, {'id': 7, 'type': 'GeomPackUVUnwrap', 'pos': [-784.6251772512281, 359.42269916962255], 'size': [370, 255.015625], 'flags': {}, 'order': 6, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 6}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [22]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_smart', 66, 0.02, 'true', 'false']}, {'id': 8, 'type': 'GeomPackUVUnwrap', 'pos': [-784.8731147276324, 132.4400345232251], 'size': [370, 223.015625], 'flags': {}, 'order': 7, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 7}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [23]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_cube', 1, 'true', 'false']}, {'id': 10, 'type': 'GeomPackUVUnwrap', 'pos': [-796.9919492162304, 784.6332800179155], 'size': [370, 191.015625], 'flags': {}, 'order': 9, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 9}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [24]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_sphere', 'true', 'false']}, {'id': 15, 'type': 'GeomPackPreviewMeshUV', 'pos': [-386.53478902951, 356.45979517811406], 'size': [600, 419], 'flags': {}, 'order': 15, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 22}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 16, 'type': 'GeomPackPreviewMeshUV', 'pos': [-380.00030506661045, -92.41560473988542], 'size': [600, 419], 'flags': {}, 'order': 16, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 23}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 17, 'type': 'GeomPackPreviewMeshUV', 'pos': [-383.98949364611246, 796.1526743602467], 'size': [600, 419], 'flags': {}, 'order': 18, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 24}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 6, 'type': 'GeomPackUVUnwrap', 'pos': [283.2013306100092, -103.59297932364527], 'size': [370, 188.359375], 'flags': {}, 'order': 5, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 5}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [25]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_arap', 10, 'false']}, {'id': 2, 'type': 'GeomPackUVUnwrap', 'pos': [284.42464019020474, 361.21098850110144], 'size': [370, 156.359375], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 1}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [26]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['xatlas', 'false']}, {'id': 3, 'type': 'GeomPackUVUnwrap', 'pos': [272.7272727272723, 795.867768595041], 'size': [370, 284.359375], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 2}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [27]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['cumesh', 90, 0, 1, 1, 'false']}, {'id': 20, 'type': 'GeomPackPreviewMeshUV', 'pos': [679.4285292358016, 786.3033996758919], 'size': [600, 419], 'flags': {}, 'order': 11, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 27}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 18, 'type': 'GeomPackPreviewMeshUV', 'pos': [676.8832338524041, 346.61052049375905], 'size': [600, 419], 'flags': {}, 'order': 10, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 26}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 19, 'type': 'GeomPackPreviewMeshUV', 'pos': [683.4177178153037, -102.26487942424012], 'size': [600, 419], 'flags': {}, 'order': 14, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 25}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 21, 'type': 'GeomPackPreviewMeshUV', 'pos': [1771.8835959234673, 800.9237862335377], 'size': [600, 419], 'flags': {}, 'order': 17, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 30}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 22, 'type': 'GeomPackPreviewMeshUV', 'pos': [1769.33830054007, 361.23090705140487], 'size': [600, 419], 'flags': {}, 'order': 13, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 29}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 23, 'type': 'GeomPackPreviewMeshUV', 'pos': [1775.8727845029696, -87.64449286659429], 'size': [600, 419], 'flags': {}, 'order': 12, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 28}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 4, 'type': 'GeomPackUVUnwrap', 'pos': [1358.3199999999986, -97.7225000000002], 'size': [370, 156.359375], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 3}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [28]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_lscm', 'false']}, {'id': 5, 'type': 'GeomPackUVUnwrap', 'pos': [1359.720538214599, 358.3201345536506], 'size': [370, 156.359375], 'flags': {}, 'order': 4, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 4}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [29]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_harmonic', 'false']}, {'id': 9, 'type': 'GeomPackUVUnwrap', 'pos': [1351.0953027457135, 781.174932723175], 'size': [370, 223.015625], 'flags': {}, 'order': 8, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 8}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [30]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_cylinder', 0.9, 'true', 'false']}], 'links': [[1, 1, 0, 2, 0, 'TRIMESH'], [2, 1, 0, 3, 0, 'TRIMESH'], [3, 1, 0, 4, 0, 'TRIMESH'], [4, 1, 0, 5, 0, 'TRIMESH'], [5, 1, 0, 6, 0, 'TRIMESH'], [6, 1, 0, 7, 0, 'TRIMESH'], [7, 1, 0, 8, 0, 'TRIMESH'], [8, 1, 0, 9, 0, 'TRIMESH'], [9, 1, 0, 10, 0, 'TRIMESH'], [22, 7, 0, 15, 0, 'TRIMESH'], [23, 8, 0, 16, 0, 'TRIMESH'], [24, 10, 0, 17, 0, 'TRIMESH'], [25, 6, 0, 19, 0, 'TRIMESH'], [26, 2, 0, 18, 0, 'TRIMESH'], [27, 3, 0, 20, 0, 'TRIMESH'], [28, 4, 0, 23, 0, 'TRIMESH'], [29, 5, 0, 22, 0, 'TRIMESH'], [30, 9, 0, 21, 0, 'TRIMESH']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 0.3005259203606313, 'offset': [1298.407624260146, 1388.2207731753158]}, 'frontendVersion': '1.43.18', 'workflowRendererVersion': 'LG'}, 'version': 0.4}}"]}, 'current_outputs': ['15', '5', '1', '7', '18', '9', '17', '4', '6', '22', '8', '3', '10', '21', '23', '19', '20', '16', '2'], 'timestamp': 1779126381034}
|
|
|
|
Details:
|
|
Workflow: C:\ComfyUI-GeometryPack\workflows\uv_unwrap_all.json
|
|
Node error: GeomPackUVUnwrap</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="models-section">
|
|
<div class="section-header">
|
|
<h2 class="section-title">Downloaded Models</h2>
|
|
<span class="models-total">8 files · 18.7 MB</span>
|
|
</div>
|
|
|
|
<details class="models-folder" open>
|
|
<summary class="models-folder-header">
|
|
<span class="models-folder-name">models/vae_approx/</span>
|
|
<span class="models-folder-meta">
|
|
|
|
<span class="models-folder-size">18.7 MB</span>
|
|
</span>
|
|
</summary>
|
|
<div class="models-file-list">
|
|
<div class="models-file"><span class="models-file-path">taef1_encoder.safetensors</span><span class="models-file-size">2.4 MB</span></div>
|
|
<div class="models-file"><span class="models-file-path">taesd3_encoder.safetensors</span><span class="models-file-size">2.4 MB</span></div>
|
|
<div class="models-file"><span class="models-file-path">taef1_decoder.safetensors</span><span class="models-file-size">2.4 MB</span></div>
|
|
<div class="models-file"><span class="models-file-path">taesd3_decoder.safetensors</span><span class="models-file-size">2.4 MB</span></div>
|
|
<div class="models-file"><span class="models-file-path">taesdxl_decoder.safetensors</span><span class="models-file-size">2.3 MB</span></div>
|
|
<div class="models-file"><span class="models-file-path">taesd_decoder.safetensors</span><span class="models-file-size">2.3 MB</span></div>
|
|
<div class="models-file"><span class="models-file-path">taesdxl_encoder.safetensors</span><span class="models-file-size">2.3 MB</span></div>
|
|
<div class="models-file"><span class="models-file-path">taesd_encoder.safetensors</span><span class="models-file-size">2.3 MB</span></div>
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="lightbox" id="lightbox">
|
|
<button class="lightbox-close" onclick="closeLightbox()">×</button>
|
|
<button class="lightbox-nav lightbox-nav-left" onclick="navigateLightbox(-1)">‹</button>
|
|
<button class="lightbox-nav lightbox-nav-right" onclick="navigateLightbox(1)">›</button>
|
|
<div class="lightbox-content">
|
|
<img id="lightbox-img" src="" alt="">
|
|
<video id="lightbox-video" controls preload="metadata" style="display:none; max-width:90vw; max-height:80vh; background:#000;"></video>
|
|
<div class="video-player" id="video-player">
|
|
<div class="video-slider-container">
|
|
<div id="video-slider"></div>
|
|
</div>
|
|
<div class="video-controls">
|
|
<span class="video-frame-counter" id="video-frame-counter">0.0s / 0.0s</span>
|
|
</div>
|
|
</div>
|
|
<div class="resource-graph" id="resource-graph">
|
|
<div class="resource-graph-title">Resource Usage</div>
|
|
<canvas id="resource-canvas"></canvas>
|
|
<div class="resource-legend">
|
|
<span><span class="dot ram"></span> RAM (GB)</span>
|
|
<span id="gpu-legend" style="display:none"><span class="dot gpu"></span> VRAM (GB)</span>
|
|
</div>
|
|
</div>
|
|
<div class="lightbox-info">
|
|
<div>
|
|
<span class="lightbox-title" id="lightbox-title"></span>
|
|
<span class="lightbox-hardware" id="lightbox-hardware"></span>
|
|
</div>
|
|
<div class="lightbox-meta">
|
|
<span class="lightbox-badge" id="lightbox-badge"></span>
|
|
<span class="lightbox-duration" id="lightbox-duration"></span>
|
|
</div>
|
|
</div>
|
|
<pre class="lightbox-log" id="lightbox-log"></pre>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="img-overlay" id="img-overlay">
|
|
<img id="img-overlay-content" src="" alt="">
|
|
</div>
|
|
|
|
<footer>
|
|
Generated by <a href="https://github.com/PozzettiAndrea/comfy-test">comfy-test</a>
|
|
</footer>
|
|
|
|
<script>
|
|
function setView(mode) {
|
|
const grid = document.getElementById('workflow-grid');
|
|
grid.className = mode === 'list' ? 'workflow-grid view-list' : 'workflow-grid';
|
|
document.querySelectorAll('.view-controls .view-btn').forEach(btn => {
|
|
btn.classList.toggle('active', btn.textContent.trim().toLowerCase() === mode);
|
|
});
|
|
}
|
|
|
|
const workflowData = {"fill_holes_all": {"src": "screenshots/fill_holes_all_executed.png", "title": "fill_holes_all", "status": "pass", "duration": "23.66", "log": "Capturing execution frames: fill_holes_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.4s)\n [capture-periodic] freeze=5ms shot=109ms unfreeze=7ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=113ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=5 ram=10.6/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.69GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.1s)\n [capture-node] freeze=5ms shot=105ms unfreeze=5ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-node] freeze=13ms shot=115ms unfreeze=6ms saved=True\n Node executed (3 total), capturing...\n [capture-node] freeze=5ms shot=108ms unfreeze=5ms saved=False\n Node executed (4 total), capturing...\n Frame 6 saved (frame_005.jpg, t=9.5s)\n [capture-node] freeze=502ms shot=254ms unfreeze=5ms saved=True\n Node executed (5 total), capturing...\n [capture-node] freeze=5ms shot=141ms unfreeze=5ms saved=False\n Node executed (6 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.2s)\n [capture-node] freeze=5ms shot=140ms unfreeze=5ms saved=True\n Node executed (7 total), capturing...\n Frame 8 saved (frame_007.jpg, t=12.6s)\n [capture-node] freeze=14ms shot=709ms unfreeze=0ms saved=True\n Execution complete (t=12.6s)\n Captured 8 unique frames over 13.39s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41888/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17791, canvas=244x393, rafFrozen=True\n [debug] iframe[1]: src=http://127.0.0.1:41888/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17791, canvas=244x393, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: fill_holes_all_executed.png\n [timing] final_screenshot: 0.4s\n Captured 9 video frames", "hardware": {"os": "Windows-11-10.0.26100-SP0", "cpu": "Intel64 Family 6 Model 79 Stepping 1, GenuineIntel"}}, "remeshing_all": {"src": "", "title": "remeshing_all", "status": "fail", "duration": "576.77", "log": "Capturing execution frames: remeshing_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.9s)\n [capture-node] freeze=5ms shot=144ms unfreeze=9ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=2.4s)\n [capture-node] freeze=5ms shot=172ms unfreeze=5ms saved=True\n Node executed (3 total), capturing...\n Frame 4 saved (frame_003.jpg, t=3.4s)\n [capture-node] freeze=5ms shot=127ms unfreeze=10ms saved=True\n Frame 5 saved (frame_004.jpg, t=5.6s)\n [capture-periodic] freeze=4ms shot=149ms unfreeze=16ms saved=True\n [capture-loop] iter=50 t=7.3s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=9% browser_rss=0.77GB\n [capture-loop] iter=100 t=13.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=6% browser_rss=0.76GB\n [capture-loop] iter=150 t=19.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=7% browser_rss=0.76GB\n [capture-loop] iter=200 t=25.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=6% browser_rss=0.76GB\n [capture-loop] iter=250 t=31.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.75GB\n [capture-loop] iter=300 t=37.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=7% browser_rss=0.75GB\n [capture-loop] iter=350 t=42.8s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=7% browser_rss=0.75GB\n [capture-loop] iter=400 t=48.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=6% browser_rss=0.75GB\n [capture-loop] iter=450 t=54.6s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=7% browser_rss=0.75GB\n [capture-loop] iter=500 t=60.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=7% browser_rss=0.75GB\n [capture-loop] iter=550 t=66.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.75GB\n [capture-loop] iter=600 t=72.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=6% browser_rss=0.75GB\n [capture-loop] iter=650 t=78.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=7% browser_rss=0.75GB\n [capture-loop] iter=700 t=84.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=7% browser_rss=0.74GB\n [capture-loop] iter=750 t=90.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=11.0/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=5% browser_rss=0.74GB\n [capture-loop] iter=800 t=95.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=850 t=101.8s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=900 t=107.6s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=950 t=113.6s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1000 t=119.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1050 t=125.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1100 t=131.3s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1150 t=137.3s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1200 t=143.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=5 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1250 t=148.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1300 t=154.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1350 t=160.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1400 t=166.6s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1450 t=172.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=5 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=1500 t=178.3s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=1550 t=184.3s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=1600 t=190.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=1650 t=196.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=1700 t=201.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.9/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1750 t=207.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.8/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1800 t=213.6s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.8/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1850 t=219.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.8/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1900 t=225.3s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.8/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=1950 t=231.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.8/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2000 t=237.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.8/31.9GB (34%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2050 t=243.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=5% browser_rss=0.74GB\n [capture-loop] iter=2100 t=248.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2150 t=254.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=5% browser_rss=0.74GB\n [capture-loop] iter=2200 t=260.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=2250 t=266.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=2300 t=272.6s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=5 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=2350 t=278.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=2400 t=284.3s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=2450 t=290.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=2500 t=296.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=2550 t=301.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2600 t=307.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2650 t=313.6s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2700 t=319.6s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2750 t=325.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.7/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2800 t=331.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=5 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2850 t=337.3s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=2900 t=343.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=2950 t=349.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=3000 t=355.0s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=5 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=3050 t=360.8s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=3100 t=366.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=3150 t=372.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=3200 t=378.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=3250 t=384.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=5% browser_rss=0.75GB\n Node executed (4 total), capturing...\n Frame 6 saved (frame_005.jpg, t=389.7s)\n [capture-node] freeze=6ms shot=162ms unfreeze=6ms saved=True\n [capture-loop] iter=3300 t=390.6s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=4 ram=10.3/31.9GB (32%) swap=0.0/5.0GB (0%) cpu=9% browser_rss=0.74GB\n Node executed (5 total), capturing...\n Frame 7 saved (frame_006.jpg, t=390.9s)\n [capture-node] freeze=5ms shot=180ms unfreeze=6ms saved=True\n Node executed (6 total), capturing...\n Frame 8 saved (frame_007.jpg, t=391.6s)\n [capture-node] freeze=5ms shot=123ms unfreeze=13ms saved=True\n [capture-loop] iter=3350 t=397.2s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.74GB\n [capture-loop] iter=3400 t=403.1s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=5 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3450 t=408.9s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3500 t=414.8s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3550 t=420.8s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3600 t=426.6s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3650 t=432.5s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=4 ram=10.5/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=5% browser_rss=0.75GB\n Node executed (7 total), capturing...\n Frame 9 saved (frame_008.jpg, t=434.8s)\n [capture-node] freeze=5ms shot=132ms unfreeze=8ms saved=True\n Frame 10 saved (frame_009.jpg, t=437.1s)\n [capture-periodic] freeze=4ms shot=119ms unfreeze=9ms saved=True\n [capture-loop] iter=3700 t=438.7s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=5% browser_rss=0.75GB\n [capture-loop] iter=3750 t=444.6s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=3 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3800 t=450.4s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3850 t=456.4s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3900 t=462.3s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=3950 t=468.1s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=4000 t=474.0s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=4050 t=479.9s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=4100 t=485.7s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=4150 t=491.7s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=4200 t=497.6s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=4250 t=503.4s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=4300 t=509.4s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=4350 t=515.3s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=5 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=4400 t=521.1s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=4450 t=527.1s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n [capture-loop] iter=4500 t=532.8s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=4550 t=538.8s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (32%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=4600 t=544.7s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=5% browser_rss=0.74GB\n [capture-loop] iter=4650 t=550.5s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n [capture-loop] iter=4700 t=556.4s state={'complete': False, 'error': None, 'executedCount': 7, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (32%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.74GB\n Node executed (8 total), capturing...\n Frame 11 saved (frame_010.jpg, t=561.6s)\n [capture-node] freeze=5ms shot=129ms unfreeze=4ms saved=True\n [capture-loop] iter=4750 t=562.6s state={'complete': False, 'error': None, 'executedCount': 8, 'wsState': 1} eval_ms=4 ram=10.4/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=4% browser_rss=0.75GB\n Node executed (9 total), capturing...\n Frame 12 saved (frame_011.jpg, t=563.1s)\n [capture-node] freeze=1302ms shot=455ms unfreeze=8ms saved=True\n Node executed (10 total), capturing...\n Frame 13 saved (frame_012.jpg, t=565.5s)\n [capture-node] freeze=5ms shot=152ms unfreeze=13ms saved=True\n Node executed (11 total), capturing...\n Frame 14 saved (frame_013.jpg, t=567.0s)\n [capture-node] freeze=157ms shot=1374ms unfreeze=9ms saved=True\n Execution complete (t=570.0s)\n Execution error: {'prompt_id': '79d0d241-e387-49d6-8803-962185db6c50', 'node_id': '51', 'node_type': 'GeomPackRemesh', 'executed': ['.0.7.1', '1', '50', '42', '.0.12.1', '.0.6.1', '.0.10.1', '43', '27', '.0.5.1', '30', '.0.13.1', '29', '44', '.0.9.1', '37', '.0.8.1', '39', '45', '49', '.0.11.1'], 'exception_message': 'DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"C:\\\\Users\\\\ContainerUser\\\\AppData\\\\Local\\\\Temp\\\\comfyui_pvenv_zrjotde9\\\\persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\comfy_api\\\\latest\\\\_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_remeshing\\\\backends\\\\sharp.py\", line 40, in execute\\n import bpy\\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\metadata.py\", line 556, in proxy\\n result = worker.call_method(\\n module_name=mod,\\n ...<4 lines>...\\n timeout=600.0,\\n )\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\workers\\\\subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n ...<2 lines>...\\n )\\n'], 'current_inputs': {'trimesh': ['<trimesh.Trimesh(vertices.shape=(56203, 3), faces.shape=(112402, 3), name=`Stanford_Bunny.stl`)>'], 'octree_depth': [6], 'scale': [0.9], 'sharpness': [0.4], 'prompt': ['{\\'1\\': {\\'inputs\\': {\\'file_path\\': \\'3d/Stanford_Bunny.stl\\'}, \\'class_type\\': \\'GeomPackLoadMesh\\', \\'_meta\\': {\\'title\\': \\'Load Mesh\\'}}, \\'27\\': {\\'inputs\\': {\\'backend\\': \\'pymeshlab_isotropic\\', \\'backend.target_edge_length\\': 1.0, \\'backend.iterations\\': 3, \\'backend.feature_angle\\': 30.0, \\'backend.adaptive\\': \\'false\\', \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'29\\': {\\'inputs\\': {\\'mode\\': \\'fields\\', \\'preview_multi\\': \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'1\\', 0], \\'mesh_2\\': [\\'27\\', 0], \\'mesh_3\\': [\\'39\\', 0], \\'mesh_4\\': [\\'37\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshMulti\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Multi\\'}}, \\'30\\': {\\'inputs\\': {\\'mode\\': \\'fields\\', \\'preview_multi\\': \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'44\\', 0], \\'mesh_2\\': [\\'45\\', 0], \\'mesh_3\\': [\\'42\\', 0], \\'mesh_4\\': [\\'43\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshMulti\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Multi\\'}}, \\'37\\': {\\'inputs\\': {\\'backend\\': \\'quadriflow\\', \\'backend.target_face_count\\': 5000, \\'backend.preserve_sharp\\': \\'false\\', \\'backend.preserve_boundary\\': \\'true\\', \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'39\\': {\\'inputs\\': {\\'backend\\': \\'instant_meshes\\', \\'backend.target_vertex_count\\': 5000, \\'backend.deterministic\\': \\'true\\', \\'backend.crease_angle\\': 0.0, \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'42\\': {\\'inputs\\': {\\'backend\\': \\'geogram_anisotropic\\', \\'backend.nb_points_aniso\\': 5000, \\'backend.anisotropy\\': 0.04, \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'43\\': {\\'inputs\\': {\\'backend\\': \\'pmp_uniform\\', \\'backend.pmp_edge_length\\': 1.0, \\'backend.pmp_iterations\\': 1, \\'backend.pmp_use_projection\\': \\'true\\', \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'44\\': {\\'inputs\\': {\\'backend\\': \\'mmg_adaptive\\', \\'backend.hausd\\': 0.1, \\'backend.hmin\\': 0.0, \\'backend.hmax\\': 0.0, \\'backend.hgrad\\': 1.3, \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'45\\': {\\'inputs\\': {\\'backend\\': \\'geogram_smooth\\', \\'backend.nb_points\\': 5000, \\'backend.nb_lloyd_iter\\': 5, \\'backend.nb_newton_iter\\': 30, \\'backend.newton_m\\': 7, \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'46\\': {\\'inputs\\': {\\'mode\\': \\'fields\\', \\'preview_multi\\': \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'50\\', 0], \\'mesh_2\\': [\\'49\\', 0], \\'mesh_3\\': [\\'47\\', 0], \\'mesh_4\\': [\\'48\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshMulti\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Multi\\'}}, \\'47\\': {\\'inputs\\': {\\'backend\\': \\'cgal_isotropic\\', \\'backend.cgal_edge_length\\': 1.0, \\'backend.cgal_iterations\\': 3, \\'backend.protect_boundaries\\': \\'true\\', \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'48\\': {\\'inputs\\': {\\'backend\\': \\'blender_voxel\\', \\'backend.voxel_size\\': 1.0, \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'49\\': {\\'inputs\\': {\\'backend\\': \\'quadwild\\', \\'backend.qw_sharp_angle\\': 35.0, \\'backend.qw_alpha\\': 0.02, \\'backend.qw_scale_factor\\': 1.0, \\'backend.qw_remesh\\': \\'true\\', \\'backend.qw_smooth\\': \\'true\\', \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'50\\': {\\'inputs\\': {\\'backend\\': \\'pmp_adaptive\\', \\'backend.pmp_min_edge\\': 0.2, \\'backend.pmp_max_edge\\': 3.0, \\'backend.pmp_approx_error\\': 1.0, \\'backend.pmp_adaptive_iterations\\': 1, \\'backend.pmp_adaptive_projection\\': \\'false\\', \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'51\\': {\\'inputs\\': {\\'backend\\': \\'blender_sharp\\', \\'backend.octree_depth\\': 6, \\'backend.scale\\': 0.9, \\'backend.sharpness\\': 0.4, \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'52\\': {\\'inputs\\': {\\'backend\\': \\'gpu_cumesh\\', \\'backend.gpu_target_face_count\\': 500000, \\'backend.remesh_band\\': 1.0, \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'53\\': {\\'inputs\\': {\\'backend\\': \\'blender_blocks\\', \\'backend.octree_depth\\': 6, \\'backend.scale\\': 0.9, \\'report_panel\\': \\'true\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'55\\': {\\'inputs\\': {\\'mode\\': \\'fields\\', \\'preview_multi\\': \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'51\\', 0], \\'mesh_2\\': [\\'53\\', 0], \\'mesh_3\\': [\\'52\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshMulti\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Multi\\'}}}'], 'extra_pnginfo': ['{\\'workflow\\': {\\'id\\': \\'fc31dc6e-fd82-4f42-9d3a-57283ccfadba\\', \\'revision\\': 0, \\'last_node_id\\': 55, \\'last_link_id\\': 72, \\'nodes\\': [{\\'id\\': 1, \\'type\\': \\'GeomPackLoadMesh\\', \\'pos\\': [-1014.1521350641405, -579.0137321727649], \\'size\\': [270, 130.65625], \\'flags\\': {}, \\'order\\': 0, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [37, 38, 41, 42, 44, 45, 46, 47, 56, 57, 58, 59, 66, 67, 68]}, {\\'name\\': \\'texture\\', \\'type\\': \\'IMAGE\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackLoadMesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'253a956368261760da54dc96750c2ab0224e2b1f\\', \\'aux_id\\': \\'PozzettiAndrea/ComfyUI-GeometryPack\\'}, \\'widgets_values\\': [\\'3d/Stanford_Bunny.stl\\']}, {\\'id\\': 27, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [-252.4796326065235, -967.5718475471988], \\'size\\': [366.21875, 287.015625], \\'flags\\': {}, \\'order\\': 1, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 37}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [39]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'pymeshlab_isotropic\\', 1, 3, 30, \\'false\\', \\'false\\']}, {\\'id\\': 37, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [135.90945541795637, -709.2518630000504], \\'size\\': [366.21875, 257.671875], \\'flags\\': {}, \\'order\\': 3, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 42}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [43]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'quadriflow\\', 5000, \\'false\\', \\'true\\', \\'false\\']}, {\\'id\\': 29, \\'type\\': \\'GeomPackPreviewMeshMulti\\', \\'pos\\': [-250.65357747104312, -472.80821058805077], \\'size\\': [768, 702], \\'flags\\': {}, \\'order\\': 15, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_1\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 38}, {\\'name\\': \\'mesh_2\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 39}, {\\'name\\': \\'mesh_3\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 40}, {\\'name\\': \\'mesh_4\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 43}], \\'outputs\\': [], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackPreviewMeshMulti\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'8f0378ab0ec8f20aad7b96ab2b1ec39ae6f82b6f\\'}, \\'widgets_values\\': [\\'fields\\', \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\']}, {\\'id\\': 45, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [945.7681182179566, -963.8635115000499], \\'size\\': [366.21875, 284.359375], \\'flags\\': {}, \\'order\\': 7, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 47}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [49]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'geogram_smooth\\', 5000, 5, 30, 7, \\'false\\']}, {\\'id\\': 42, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [549.6658062424374, -696.6258269529004], \\'size\\': [366.21875, 220.359375], \\'flags\\': {}, \\'order\\': 5, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 45}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [50]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'geogram_anisotropic\\', 5000, 0.04, \\'false\\']}, {\\'id\\': 39, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [-247.41854458204313, -710.5828630000495], \\'size\\': [366.21875, 255.015625], \\'flags\\': {}, \\'order\\': 2, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 41}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [40]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'instant_meshes\\', 5000, \\'true\\', 0, \\'false\\']}, {\\'id\\': 51, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [-78.43093791956267, 297.79791651807244], \\'size\\': [366.21875, 252.359375], \\'flags\\': {}, \\'order\\': 12, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 66}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [70]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'blender_sharp\\', 6, 0.9, 0.4, \\'false\\']}, {\\'id\\': 53, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [-225.54473505133143, 544.1198616120959], \\'size\\': [366.21875, 233.359375], \\'flags\\': {}, \\'order\\': 13, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 67}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [71]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'blender_blocks\\', 6, 0.9, \\'true\\']}, {\\'id\\': 52, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [158.48666338616763, 539.9816057527202], \\'size\\': [366.21875, 220.359375], \\'flags\\': {}, \\'order\\': 14, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 68}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [72]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'gpu_cumesh\\', 500000, 1, \\'false\\']}, {\\'id\\': 50, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [-1054.5376867889013, -409.41668100861546], \\'size\\': [366.21875, 319.015625], \\'flags\\': {}, \\'order\\': 8, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 56}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [52]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'pmp_adaptive\\', 0.2, 3, 1, 1, \\'false\\', \\'false\\']}, {\\'id\\': 47, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [-1049.4765987644212, -112.12259646146691], \\'size\\': [366.21875, 255.015625], \\'flags\\': {}, \\'order\\': 10, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 58}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [54]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'cgal_isotropic\\', 1, 3, \\'true\\', \\'false\\']}, {\\'id\\': 48, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [-666.1485987644222, -126.89669646146771], \\'size\\': [366.21875, 188.359375], \\'flags\\': {}, \\'order\\': 11, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 59}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [55]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'blender_voxel\\', 1, \\'false\\']}, {\\'id\\': 49, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [-661.8442867889027, -405.9802810086156], \\'size\\': [366.21875, 321.671875], \\'flags\\': {}, \\'order\\': 9, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 57}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [53]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'quadwild\\', 35, 0.02, 1, \\'true\\', \\'true\\', \\'false\\']}, {\\'id\\': 46, \\'type\\': \\'GeomPackPreviewMeshMulti\\', \\'pos\\': [-1057.238644432902, 106.33224496938243], \\'size\\': [768, 702], \\'flags\\': {}, \\'order\\': 17, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_1\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 52}, {\\'name\\': \\'mesh_2\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 53}, {\\'name\\': \\'mesh_3\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 54}, {\\'name\\': \\'mesh_4\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 55}], \\'outputs\\': [], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackPreviewMeshMulti\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'8f0378ab0ec8f20aad7b96ab2b1ec39ae6f82b6f\\'}, \\'widgets_values\\': [\\'fields\\', \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\']}, {\\'id\\': 30, \\'type\\': \\'GeomPackPreviewMeshMulti\\', \\'pos\\': [550.3737605739569, -480.5909855220511], \\'size\\': [768, 702], \\'flags\\': {}, \\'order\\': 16, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_1\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 51}, {\\'name\\': \\'mesh_2\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 49}, {\\'name\\': \\'mesh_3\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 50}, {\\'name\\': \\'mesh_4\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 48}], \\'outputs\\': [], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackPreviewMeshMulti\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'8f0378ab0ec8f20aad7b96ab2b1ec39ae6f82b6f\\'}, \\'widgets_values\\': [\\'fields\\', \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\']}, {\\'id\\': 55, \\'type\\': \\'GeomPackPreviewMeshMulti\\', \\'pos\\': [549.6668179398112, 323.70854948682233], \\'size\\': [768, 702], \\'flags\\': {}, \\'order\\': 18, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_1\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 70}, {\\'name\\': \\'mesh_2\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 71}, {\\'name\\': \\'mesh_3\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 72}, {\\'name\\': \\'mesh_4\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': None}], \\'outputs\\': [], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackPreviewMeshMulti\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'8f0378ab0ec8f20aad7b96ab2b1ec39ae6f82b6f\\'}, \\'widgets_values\\': [\\'fields\\', \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\']}, {\\'id\\': 43, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [932.9938062424369, -711.3999269529013], \\'size\\': [366.21875, 255.015625], \\'flags\\': {}, \\'order\\': 6, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 46}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [48]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'pmp_uniform\\', 1, 1, \\'true\\', \\'false\\']}, {\\'id\\': 44, \\'type\\': \\'GeomPackRemesh\\', \\'pos\\': [544.604718217957, -969.7199115000496], \\'size\\': [366.21875, 284.359375], \\'flags\\': {}, \\'order\\': 4, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'trimesh\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 44}], \\'outputs\\': [{\\'name\\': \\'remeshed_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [51]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackRemesh\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'f4d5713f5feef867c82be5a2d67e532e7a95933b\\'}, \\'widgets_values\\': [\\'mmg_adaptive\\', 0.1, 0, 0, 1.3, \\'false\\']}], \\'links\\': [[37, 1, 0, 27, 0, \\'TRIMESH\\'], [38, 1, 0, 29, 0, \\'TRIMESH\\'], [39, 27, 0, 29, 1, \\'TRIMESH\\'], [40, 39, 0, 29, 2, \\'TRIMESH\\'], [41, 1, 0, 39, 0, \\'TRIMESH\\'], [42, 1, 0, 37, 0, \\'TRIMESH\\'], [43, 37, 0, 29, 3, \\'TRIMESH\\'], [44, 1, 0, 44, 0, \\'TRIMESH\\'], [45, 1, 0, 42, 0, \\'TRIMESH\\'], [46, 1, 0, 43, 0, \\'TRIMESH\\'], [47, 1, 0, 45, 0, \\'TRIMESH\\'], [48, 43, 0, 30, 3, \\'TRIMESH\\'], [49, 45, 0, 30, 1, \\'TRIMESH\\'], [50, 42, 0, 30, 2, \\'TRIMESH\\'], [51, 44, 0, 30, 0, \\'TRIMESH\\'], [52, 50, 0, 46, 0, \\'TRIMESH\\'], [53, 49, 0, 46, 1, \\'TRIMESH\\'], [54, 47, 0, 46, 2, \\'TRIMESH\\'], [55, 48, 0, 46, 3, \\'TRIMESH\\'], [56, 1, 0, 50, 0, \\'TRIMESH\\'], [57, 1, 0, 49, 0, \\'TRIMESH\\'], [58, 1, 0, 47, 0, \\'TRIMESH\\'], [59, 1, 0, 48, 0, \\'TRIMESH\\'], [66, 1, 0, 51, 0, \\'TRIMESH\\'], [67, 1, 0, 53, 0, \\'TRIMESH\\'], [68, 1, 0, 52, 0, \\'TRIMESH\\'], [70, 51, 0, 55, 0, \\'TRIMESH\\'], [71, 53, 0, 55, 1, \\'TRIMESH\\'], [72, 52, 0, 55, 2, \\'TRIMESH\\']], \\'groups\\': [], \\'config\\': {}, \\'extra\\': {\\'ds\\': {\\'scale\\': 0.6528681764088488, \\'offset\\': [838.5608850192757, 553.1081306843021]}, \\'frontendVersion\\': \\'1.43.18\\', \\'workflowRendererVersion\\': \\'LG\\'}, \\'version\\': 0.4}}']}, 'current_outputs': ['1', '50', '42', '53', '51', '43', '27', '47', '30', '46', '29', '48', '44', '37', '39', '45', '49', '52', '55'], 'timestamp': 1779126364013}\n Status: FAILED\n Error: Workflow execution failed: {'prompt_id': '79d0d241-e387-49d6-8803-962185db6c50', 'node_id': '51', 'node_type': 'GeomPackRemesh', 'executed': ['.0.7.1', '1', '50', '42', '.0.12.1', '.0.6.1', '.0.10.1', '43', '27', '.0.5.1', '30', '.0.13.1', '29', '44', '.0.9.1', '37', '.0.8.1', '39', '45', '49', '.0.11.1'], 'exception_message': 'DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"C:\\\\Users\\\\ContainerUser\\\\AppData\\\\Local\\\\Temp\\\\comfyui_pvenv_zrjotde9\\\\persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\comfy_api\\\\latest\\\\_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_remeshing\\\\backends\\\\sharp.py\", line 40, in execute\\n import bpy\\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\metadata.py\", line 556, in proxy\\n result = worker.call_method(\\n module_name=mod,\\n ...<4 lines>...\\n timeout=600.0,\\n )\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\workers\\\\subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n ...<2 lines>...\\n )\\n'], 'current_inputs': {'trimesh': ['<trimesh.Trimesh(vertices.shape=(56203, 3), faces.shape=(112402, 3), name=`Stanford_Bunny.stl`)>'], 'octree_depth': [6], 'scale': [0.9], 'sharpness': [0.4], 'prompt': ['{\\'1\\': {\\'inputs\\': {\\'file_path\\': \\'3d/Stanford_Bunny.stl\\'}, \\'class_type\\': \\'GeomPackLoadMesh\\', \\'_meta\\': {\\'title\\': \\'Load Mesh\\'}}, \\'27\\': {\\'inputs\\': {\\'backend\\': \\'pymeshlab_isotropic\\', \\'backend.target_edge_length\\': 1.0, \\'backend.iterations\\': 3, \\'backend.feature_angle\\': 30.0, \\'backend.adaptive\\': \\'false\\', \\'report_panel\\': \\'false\\', \\'trimesh\\': [\\'1\\', 0]}, \\'class_type\\': \\'GeomPackRemesh\\', \\'_meta\\': {\\'title\\': \\'Remesh\\'}}, \\'29\\': {\\'inputs\\': {\\'mode\\': \\'fields\\', \\'preview_multi\\': \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.9410580910358974]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'1\\', 0], \\'mesh_2\\': [\\'27\\', 0], \\'mesh_3\\': [\\'39\\', 0], \\'mesh_4\\': [\\'37\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshMulti\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Multi\\'}}, \\'30\\': {\\'inputs\\': {\\'mode\\': \\'fields\\', \\'preview_multi\\': \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[-104.63702891921307,87.70613647084431,93.26266831581498],\\\\\\\\\"focalPoint\\\\\\\\\":[30.322647094726562,1.8909549713134766,59.220962047576904],\\\\\\\\\"viewUp\\\\\\\\\":[0.022781468922130507,-0.33747692361052245,0.941\n... (truncated)", "hardware": {"os": "Windows-11-10.0.26100-SP0", "cpu": "Intel64 Family 6 Model 79 Stepping 1, GenuineIntel"}}, "uv_unwrap_all": {"src": "", "title": "uv_unwrap_all", "status": "fail", "duration": "14.40", "log": "Capturing execution frames: uv_unwrap_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.9s)\n [capture-periodic] freeze=31ms shot=148ms unfreeze=6ms saved=True\n Frame 3 saved (frame_002.jpg, t=5.1s)\n [capture-periodic] freeze=30ms shot=168ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.7s)\n [capture-node] freeze=35ms shot=138ms unfreeze=8ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=6.4s)\n [capture-node] freeze=31ms shot=261ms unfreeze=0ms saved=True\n Execution complete (t=6.4s)\n Execution error: {'prompt_id': '99b155d3-29eb-467b-a842-a229bc66f2e1', 'node_id': '7', 'node_type': 'GeomPackUVUnwrap', 'executed': ['6', '.0.19.1', '1', '19'], 'exception_message': 'DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"C:\\\\Users\\\\ContainerUser\\\\AppData\\\\Local\\\\Temp\\\\comfyui_pvenv_zrjotde9\\\\persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\comfy_api\\\\latest\\\\_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_uv\\\\backends\\\\blender_smart.py\", line 44, in execute\\n import bpy\\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\metadata.py\", line 556, in proxy\\n result = worker.call_method(\\n module_name=mod,\\n ...<4 lines>...\\n timeout=600.0,\\n )\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\workers\\\\subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n ...<2 lines>...\\n )\\n'], 'current_inputs': {'trimesh': ['<trimesh.Trimesh(vertices.shape=(11381, 3), faces.shape=(22704, 3), name=`camelhead.off`)>'], 'angle_limit': [66], 'island_margin': [0.02], 'scale_to_bounds': ['true'], 'prompt': [\"{'1': {'inputs': {'file_path': '3d/camelhead.off'}, 'class_type': 'GeomPackLoadMesh', '_meta': {'title': 'Load Mesh'}}, '2': {'inputs': {'backend': 'xatlas', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '3': {'inputs': {'backend': 'cumesh', 'backend.chart_cone_angle': 90.0, 'backend.chart_refine_iterations': 0, 'backend.chart_global_iterations': 1, 'backend.chart_smooth_strength': 1, 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '4': {'inputs': {'backend': 'libigl_lscm', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '5': {'inputs': {'backend': 'libigl_harmonic', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '6': {'inputs': {'backend': 'libigl_arap', 'backend.iterations': 10, 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '7': {'inputs': {'backend': 'blender_smart', 'backend.angle_limit': 66.0, 'backend.island_margin': 0.02, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '8': {'inputs': {'backend': 'blender_cube', 'backend.cube_size': 1.0, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '9': {'inputs': {'backend': 'blender_cylinder', 'backend.cylinder_radius': 0.9, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '10': {'inputs': {'backend': 'blender_sphere', 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '15': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['7', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '16': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['8', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '17': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['10', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '18': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['2', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '19': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['6', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '20': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['3', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '21': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['9', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '22': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['5', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '23': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['4', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}}\"], 'extra_pnginfo': [\"{'workflow': {'id': 'test-uv-unwrap-all-0001', 'revision': 0, 'last_node_id': 23, 'last_link_id': 30, 'nodes': [{'id': 1, 'type': 'GeomPackLoadMesh', 'pos': [-800, 0], 'size': [270, 130.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'mesh', 'type': 'TRIMESH', 'links': [1, 2, 3, 4, 5, 6, 7, 8, 9]}, {'name': 'texture', 'type': 'IMAGE', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackLoadMesh', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['3d/camelhead.off']}, {'id': 7, 'type': 'GeomPackUVUnwrap', 'pos': [-784.6251772512281, 359.42269916962255], 'size': [370, 255.015625], 'flags': {}, 'order': 6, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 6}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [22]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_smart', 66, 0.02, 'true', 'false']}, {'id': 8, 'type': 'GeomPackUVUnwrap', 'pos': [-784.8731147276324, 132.4400345232251], 'size': [370, 223.015625], 'flags': {}, 'order': 7, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 7}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [23]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_cube', 1, 'true', 'false']}, {'id': 10, 'type': 'GeomPackUVUnwrap', 'pos': [-796.9919492162304, 784.6332800179155], 'size': [370, 191.015625], 'flags': {}, 'order': 9, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 9}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [24]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_sphere', 'true', 'false']}, {'id': 15, 'type': 'GeomPackPreviewMeshUV', 'pos': [-386.53478902951, 356.45979517811406], 'size': [600, 419], 'flags': {}, 'order': 15, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 22}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 16, 'type': 'GeomPackPreviewMeshUV', 'pos': [-380.00030506661045, -92.41560473988542], 'size': [600, 419], 'flags': {}, 'order': 16, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 23}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 17, 'type': 'GeomPackPreviewMeshUV', 'pos': [-383.98949364611246, 796.1526743602467], 'size': [600, 419], 'flags': {}, 'order': 18, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 24}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 6, 'type': 'GeomPackUVUnwrap', 'pos': [283.2013306100092, -103.59297932364527], 'size': [370, 188.359375], 'flags': {}, 'order': 5, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 5}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [25]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_arap', 10, 'false']}, {'id': 2, 'type': 'GeomPackUVUnwrap', 'pos': [284.42464019020474, 361.21098850110144], 'size': [370, 156.359375], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 1}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [26]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['xatlas', 'false']}, {'id': 3, 'type': 'GeomPackUVUnwrap', 'pos': [272.7272727272723, 795.867768595041], 'size': [370, 284.359375], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 2}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [27]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['cumesh', 90, 0, 1, 1, 'false']}, {'id': 20, 'type': 'GeomPackPreviewMeshUV', 'pos': [679.4285292358016, 786.3033996758919], 'size': [600, 419], 'flags': {}, 'order': 11, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 27}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 18, 'type': 'GeomPackPreviewMeshUV', 'pos': [676.8832338524041, 346.61052049375905], 'size': [600, 419], 'flags': {}, 'order': 10, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 26}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 19, 'type': 'GeomPackPreviewMeshUV', 'pos': [683.4177178153037, -102.26487942424012], 'size': [600, 419], 'flags': {}, 'order': 14, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 25}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 21, 'type': 'GeomPackPreviewMeshUV', 'pos': [1771.8835959234673, 800.9237862335377], 'size': [600, 419], 'flags': {}, 'order': 17, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 30}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 22, 'type': 'GeomPackPreviewMeshUV', 'pos': [1769.33830054007, 361.23090705140487], 'size': [600, 419], 'flags': {}, 'order': 13, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 29}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 23, 'type': 'GeomPackPreviewMeshUV', 'pos': [1775.8727845029696, -87.64449286659429], 'size': [600, 419], 'flags': {}, 'order': 12, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 28}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 4, 'type': 'GeomPackUVUnwrap', 'pos': [1358.3199999999986, -97.7225000000002], 'size': [370, 156.359375], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 3}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [28]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_lscm', 'false']}, {'id': 5, 'type': 'GeomPackUVUnwrap', 'pos': [1359.720538214599, 358.3201345536506], 'size': [370, 156.359375], 'flags': {}, 'order': 4, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 4}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [29]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_harmonic', 'false']}, {'id': 9, 'type': 'GeomPackUVUnwrap', 'pos': [1351.0953027457135, 781.174932723175], 'size': [370, 223.015625], 'flags': {}, 'order': 8, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 8}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [30]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_cylinder', 0.9, 'true', 'false']}], 'links': [[1, 1, 0, 2, 0, 'TRIMESH'], [2, 1, 0, 3, 0, 'TRIMESH'], [3, 1, 0, 4, 0, 'TRIMESH'], [4, 1, 0, 5, 0, 'TRIMESH'], [5, 1, 0, 6, 0, 'TRIMESH'], [6, 1, 0, 7, 0, 'TRIMESH'], [7, 1, 0, 8, 0, 'TRIMESH'], [8, 1, 0, 9, 0, 'TRIMESH'], [9, 1, 0, 10, 0, 'TRIMESH'], [22, 7, 0, 15, 0, 'TRIMESH'], [23, 8, 0, 16, 0, 'TRIMESH'], [24, 10, 0, 17, 0, 'TRIMESH'], [25, 6, 0, 19, 0, 'TRIMESH'], [26, 2, 0, 18, 0, 'TRIMESH'], [27, 3, 0, 20, 0, 'TRIMESH'], [28, 4, 0, 23, 0, 'TRIMESH'], [29, 5, 0, 22, 0, 'TRIMESH'], [30, 9, 0, 21, 0, 'TRIMESH']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 0.3005259203606313, 'offset': [1298.407624260146, 1388.2207731753158]}, 'frontendVersion': '1.43.18', 'workflowRendererVersion': 'LG'}, 'version': 0.4}}\"]}, 'current_outputs': ['15', '5', '1', '7', '18', '9', '17', '4', '6', '22', '8', '3', '10', '21', '23', '19', '20', '16', '2'], 'timestamp': 1779126381034}\n Status: FAILED\n Error: Workflow execution failed: {'prompt_id': '99b155d3-29eb-467b-a842-a229bc66f2e1', 'node_id': '7', 'node_type': 'GeomPackUVUnwrap', 'executed': ['6', '.0.19.1', '1', '19'], 'exception_message': 'DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"C:\\\\Users\\\\ContainerUser\\\\AppData\\\\Local\\\\Temp\\\\comfyui_pvenv_zrjotde9\\\\persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\comfy_api\\\\latest\\\\_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_uv\\\\backends\\\\blender_smart.py\", line 44, in execute\\n import bpy\\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\metadata.py\", line 556, in proxy\\n result = worker.call_method(\\n module_name=mod,\\n ...<4 lines>...\\n timeout=600.0,\\n )\\n', ' File \"C:\\\\workspaces\\\\GeometryPack-1928\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\workers\\\\subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n ...<2 lines>...\\n )\\n'], 'current_inputs': {'trimesh': ['<trimesh.Trimesh(vertices.shape=(11381, 3), faces.shape=(22704, 3), name=`camelhead.off`)>'], 'angle_limit': [66], 'island_margin': [0.02], 'scale_to_bounds': ['true'], 'prompt': [\"{'1': {'inputs': {'file_path': '3d/camelhead.off'}, 'class_type': 'GeomPackLoadMesh', '_meta': {'title': 'Load Mesh'}}, '2': {'inputs': {'backend': 'xatlas', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '3': {'inputs': {'backend': 'cumesh', 'backend.chart_cone_angle': 90.0, 'backend.chart_refine_iterations': 0, 'backend.chart_global_iterations': 1, 'backend.chart_smooth_strength': 1, 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '4': {'inputs': {'backend': 'libigl_lscm', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '5': {'inputs': {'backend': 'libigl_harmonic', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '6': {'inputs': {'backend': 'libigl_arap', 'backend.iterations': 10, 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '7': {'inputs': {'backend': 'blender_smart', 'backend.angle_limit': 66.0, 'backend.island_margin': 0.02, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '8': {'inputs': {'backend': 'blender_cube', 'backend.cube_size': 1.0, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '9': {'inputs': {'backend': 'blender_cylinder', 'backend.cylinder_radius': 0.9, 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '10': {'inputs': {'backend': 'blender_sphere', 'backend.scale_to_bounds': 'true', 'report_panel': 'false', 'trimesh': ['1', 0]}, 'class_type': 'GeomPackUVUnwrap', '_meta': {'title': 'UV Unwrap'}}, '15': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['7', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '16': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['8', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '17': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['10', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '18': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['2', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '19': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['6', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '20': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['3', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '21': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['9', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '22': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['5', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}, '23': {'inputs': {'show_checker': False, 'show_wireframe': True, 'uv_preview': '', 'trimesh': ['4', 0]}, 'class_type': 'GeomPackPreviewMeshUV', '_meta': {'title': 'Preview Mesh UV'}}}\"], 'extra_pnginfo': [\"{'workflow': {'id': 'test-uv-unwrap-all-0001', 'revision': 0, 'last_node_id': 23, 'last_link_id': 30, 'nodes': [{'id': 1, 'type': 'GeomPackLoadMesh', 'pos': [-800, 0], 'size': [270, 130.65625], 'flags': {}, 'order': 0, 'mode': 0, 'inputs': [], 'outputs': [{'name': 'mesh', 'type': 'TRIMESH', 'links': [1, 2, 3, 4, 5, 6, 7, 8, 9]}, {'name': 'texture', 'type': 'IMAGE', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackLoadMesh', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['3d/camelhead.off']}, {'id': 7, 'type': 'GeomPackUVUnwrap', 'pos': [-784.6251772512281, 359.42269916962255], 'size': [370, 255.015625], 'flags': {}, 'order': 6, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 6}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [22]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_smart', 66, 0.02, 'true', 'false']}, {'id': 8, 'type': 'GeomPackUVUnwrap', 'pos': [-784.8731147276324, 132.4400345232251], 'size': [370, 223.015625], 'flags': {}, 'order': 7, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 7}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [23]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_cube', 1, 'true', 'false']}, {'id': 10, 'type': 'GeomPackUVUnwrap', 'pos': [-796.9919492162304, 784.6332800179155], 'size': [370, 191.015625], 'flags': {}, 'order': 9, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 9}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [24]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_sphere', 'true', 'false']}, {'id': 15, 'type': 'GeomPackPreviewMeshUV', 'pos': [-386.53478902951, 356.45979517811406], 'size': [600, 419], 'flags': {}, 'order': 15, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 22}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 16, 'type': 'GeomPackPreviewMeshUV', 'pos': [-380.00030506661045, -92.41560473988542], 'size': [600, 419], 'flags': {}, 'order': 16, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 23}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 17, 'type': 'GeomPackPreviewMeshUV', 'pos': [-383.98949364611246, 796.1526743602467], 'size': [600, 419], 'flags': {}, 'order': 18, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 24}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 6, 'type': 'GeomPackUVUnwrap', 'pos': [283.2013306100092, -103.59297932364527], 'size': [370, 188.359375], 'flags': {}, 'order': 5, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 5}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [25]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_arap', 10, 'false']}, {'id': 2, 'type': 'GeomPackUVUnwrap', 'pos': [284.42464019020474, 361.21098850110144], 'size': [370, 156.359375], 'flags': {}, 'order': 1, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 1}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [26]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['xatlas', 'false']}, {'id': 3, 'type': 'GeomPackUVUnwrap', 'pos': [272.7272727272723, 795.867768595041], 'size': [370, 284.359375], 'flags': {}, 'order': 2, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 2}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [27]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['cumesh', 90, 0, 1, 1, 'false']}, {'id': 20, 'type': 'GeomPackPreviewMeshUV', 'pos': [679.4285292358016, 786.3033996758919], 'size': [600, 419], 'flags': {}, 'order': 11, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 27}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 18, 'type': 'GeomPackPreviewMeshUV', 'pos': [676.8832338524041, 346.61052049375905], 'size': [600, 419], 'flags': {}, 'order': 10, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 26}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 19, 'type': 'GeomPackPreviewMeshUV', 'pos': [683.4177178153037, -102.26487942424012], 'size': [600, 419], 'flags': {}, 'order': 14, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 25}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 21, 'type': 'GeomPackPreviewMeshUV', 'pos': [1771.8835959234673, 800.9237862335377], 'size': [600, 419], 'flags': {}, 'order': 17, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 30}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 22, 'type': 'GeomPackPreviewMeshUV', 'pos': [1769.33830054007, 361.23090705140487], 'size': [600, 419], 'flags': {}, 'order': 13, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 29}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 23, 'type': 'GeomPackPreviewMeshUV', 'pos': [1775.8727845029696, -87.64449286659429], 'size': [600, 419], 'flags': {}, 'order': 12, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 28}], 'outputs': [], 'properties': {'Node name for S&R': 'GeomPackPreviewMeshUV', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': [False, True, '']}, {'id': 4, 'type': 'GeomPackUVUnwrap', 'pos': [1358.3199999999986, -97.7225000000002], 'size': [370, 156.359375], 'flags': {}, 'order': 3, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 3}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [28]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_lscm', 'false']}, {'id': 5, 'type': 'GeomPackUVUnwrap', 'pos': [1359.720538214599, 358.3201345536506], 'size': [370, 156.359375], 'flags': {}, 'order': 4, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 4}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [29]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['libigl_harmonic', 'false']}, {'id': 9, 'type': 'GeomPackUVUnwrap', 'pos': [1351.0953027457135, 781.174932723175], 'size': [370, 223.015625], 'flags': {}, 'order': 8, 'mode': 0, 'inputs': [{'name': 'trimesh', 'type': 'TRIMESH', 'link': 8}], 'outputs': [{'name': 'unwrapped_mesh', 'type': 'TRIMESH', 'links': [30]}, {'name': 'info', 'type': 'STRING', 'links': None}], 'properties': {'Node name for S&R': 'GeomPackUVUnwrap', 'cnr_id': 'comfyui-geometrypack', 'ver': '224d843d5a35546212d1fb7babe30efabdf2116c', 'aux_id': 'PozzettiAndrea/ComfyUI-GeometryPack'}, 'widgets_values': ['blender_cylinder', 0.9, 'true', 'false']}], 'links': [[1, 1, 0, 2, 0, 'TRIMESH'], [2, 1, 0, 3, 0, 'TRIMESH'], [3, 1, 0, 4, 0, 'TRIMESH'], [4, 1, 0, 5, 0, 'TRIMESH'], [5, 1, 0, 6, 0, 'TRIMESH'], [6, 1, 0, 7, 0, 'TRIMESH'], [7, 1, 0, 8, 0, 'TRIMESH'], [8, 1, 0, 9, 0, 'TRIMESH'], [9, 1, 0, 10, 0, 'TRIMESH'], [22, 7, 0, 15, 0, 'TRIMESH'], [23, 8, 0, 16, 0, 'TRIMESH'], [24, 10, 0, 17, 0, 'TRIMESH'], [25, 6, 0, 19, 0, 'TRIMESH'], [26, 2, 0, 18, 0, 'TRIMESH'], [27, 3, 0, 20, 0, 'TRIMESH'], [28, 4, 0, 23, 0, 'TRIMESH'], [29, 5, 0, 22, 0, 'TRIMESH'], [30, 9, 0, 21, 0, 'TRIMESH']], 'groups': [], 'config': {}, 'extra': {'ds': {'scale': 0.3005259203606313, 'offset': [1298.407624260146, 1388.2207731753158]}, 'frontendVersion': '1.43.18', 'workflowRendererVersion': 'LG'}, 'version': 0.4}}\"]}, 'current_outputs': ['15', '5', '1', '7', '18', '9', '17', '4', '6', '22', '8', '3', '10', '21', '23', '19', '20', '16', '2'], 'timestamp': 1779126381034}\n Details: Workflow: C:\\ComfyUI-GeometryPack\\workflows\\uv_unwrap_all.json\nNode error: GeomPackUVUnwrap", "hardware": {"os": "Windows-11-10.0.26100-SP0", "cpu": "Intel64 Family 6 Model 79 Stepping 1, GenuineIntel"}}};
|
|
const workflowNames = Object.keys(workflowData);
|
|
const videoData = {"fill_holes_all": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: fill_holes_all.json"}, {"file": "frame_001.jpg", "time": 2.36, "log": "Capturing execution frames: fill_holes_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.54, "log": "Capturing execution frames: fill_holes_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.4s)\n [capture-periodic] freeze=5ms shot=109ms unfreeze=7ms saved=True"}, {"file": "frame_003.jpg", "time": 8.09, "log": "Capturing execution frames: fill_holes_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.4s)\n [capture-periodic] freeze=5ms shot=109ms unfreeze=7ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=113ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=5 ram=10.6/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.69GB"}, {"file": "frame_004.jpg", "time": 8.63, "log": "Capturing execution frames: fill_holes_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.4s)\n [capture-periodic] freeze=5ms shot=109ms unfreeze=7ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=113ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=5 ram=10.6/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.69GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.1s)\n [capture-node] freeze=5ms shot=105ms unfreeze=5ms saved=True"}, {"file": "frame_005.jpg", "time": 9.54, "log": "Capturing execution frames: fill_holes_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.4s)\n [capture-periodic] freeze=5ms shot=109ms unfreeze=7ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=113ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=5 ram=10.6/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.69GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.1s)\n [capture-node] freeze=5ms shot=105ms unfreeze=5ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-node] freeze=13ms shot=115ms unfreeze=6ms saved=True\n Node executed (3 total), capturing...\n [capture-node] freeze=5ms shot=108ms unfreeze=5ms saved=False"}, {"file": "frame_006.jpg", "time": 12.17, "log": "Capturing execution frames: fill_holes_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.4s)\n [capture-periodic] freeze=5ms shot=109ms unfreeze=7ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=113ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=5 ram=10.6/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.69GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.1s)\n [capture-node] freeze=5ms shot=105ms unfreeze=5ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-node] freeze=13ms shot=115ms unfreeze=6ms saved=True\n Node executed (3 total), capturing...\n [capture-node] freeze=5ms shot=108ms unfreeze=5ms saved=False\n Node executed (4 total), capturing...\n Frame 6 saved (frame_005.jpg, t=9.5s)\n [capture-node] freeze=502ms shot=254ms unfreeze=5ms saved=True\n Node executed (5 total), capturing...\n [capture-node] freeze=5ms shot=141ms unfreeze=5ms saved=False"}, {"file": "frame_007.jpg", "time": 12.63, "log": "Capturing execution frames: fill_holes_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.4s)\n [capture-periodic] freeze=5ms shot=109ms unfreeze=7ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.5s)\n [capture-periodic] freeze=4ms shot=113ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=5 ram=10.6/31.9GB (33%) swap=0.0/5.0GB (0%) cpu=8% browser_rss=0.69GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.1s)\n [capture-node] freeze=5ms shot=105ms unfreeze=5ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-node] freeze=13ms shot=115ms unfreeze=6ms saved=True\n Node executed (3 total), capturing...\n [capture-node] freeze=5ms shot=108ms unfreeze=5ms saved=False\n Node executed (4 total), capturing...\n Frame 6 saved (frame_005.jpg, t=9.5s)\n [capture-node] freeze=502ms shot=254ms unfreeze=5ms saved=True\n Node executed (5 total), capturing...\n [capture-node] freeze=5ms shot=141ms unfreeze=5ms saved=False\n Node executed (6 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.2s)\n [capture-node] freeze=5ms shot=140ms unfreeze=5ms saved=True"}, {"file": "frame_008.jpg", "time": 15.877391338348389, "log": "Final screenshot"}], "total_time": 13.39}};
|
|
|
|
const inIframe = window !== window.top;
|
|
let currentWorkflow = null;
|
|
let playInterval = null;
|
|
let originalLogContent = '';
|
|
let currentFrameIndex = 0;
|
|
let currentFrames = [];
|
|
let currentTotalTime = 0;
|
|
|
|
function openLightboxByName(name) {
|
|
const w = workflowData[name];
|
|
if (w) openLightbox(w.src, w.title, w.status, w.duration, w.log, w.hardware);
|
|
}
|
|
|
|
function openLightbox(src, title, status, duration, logContent, hardware) {
|
|
document.getElementById('lightbox-img').src = src;
|
|
document.getElementById('lightbox-title').textContent = title;
|
|
currentWorkflow = title;
|
|
originalLogContent = logContent;
|
|
|
|
const badge = document.getElementById('lightbox-badge');
|
|
badge.textContent = status;
|
|
badge.className = 'lightbox-badge ' + status;
|
|
|
|
document.getElementById('lightbox-duration').textContent = duration + 's';
|
|
document.getElementById('lightbox-log').textContent = logContent || '(No log available)';
|
|
|
|
const hwEl = document.getElementById('lightbox-hardware');
|
|
if (hardware) {
|
|
const parts = [];
|
|
if (hardware.os) parts.push(hardware.os);
|
|
if (hardware.cpu) parts.push(hardware.cpu);
|
|
if (hardware.gpu) parts.push(hardware.gpu);
|
|
hwEl.textContent = parts.join(' | ');
|
|
} else {
|
|
hwEl.textContent = status === 'skipped' ? '(Did not run on this machine)' : '';
|
|
}
|
|
|
|
const data = videoData[title];
|
|
const videoPlayer = document.getElementById('video-player');
|
|
const lightboxImg = document.getElementById('lightbox-img');
|
|
const lightboxVideo = document.getElementById('lightbox-video');
|
|
|
|
// Reset both modes; the branch below activates one.
|
|
videoPlayer.classList.remove('active');
|
|
lightboxVideo.style.display = 'none';
|
|
lightboxVideo.removeAttribute('src');
|
|
lightboxImg.style.display = '';
|
|
|
|
if (data && data.mp4) {
|
|
// Playable mp4 (desktop runs). Show <video>, hide the
|
|
// frame-slideshow img + slider.
|
|
lightboxVideo.src = 'videos/' + encodeURIComponent(title) + '/' + data.mp4;
|
|
lightboxVideo.style.display = '';
|
|
lightboxImg.style.display = 'none';
|
|
} else if (data && data.frames && data.frames.length > 1) {
|
|
currentFrames = data.frames;
|
|
currentTotalTime = data.total_time || data.frames[data.frames.length - 1].time;
|
|
setupVideoSlider(data.frames, currentTotalTime);
|
|
updateVideoFrameByIndex(title, data.frames.length - 1);
|
|
videoPlayer.classList.add('active');
|
|
}
|
|
|
|
loadResourceGraph(title);
|
|
|
|
// Close image overlay if open
|
|
closeImgOverlay();
|
|
|
|
document.getElementById('lightbox').classList.add('active');
|
|
history.replaceState(null, '', '#' + encodeURIComponent(title));
|
|
|
|
// Notify parent frames for deep linking
|
|
if (inIframe) {
|
|
window.parent.postMessage({ type: 'comfytest-open', name: title }, '*');
|
|
}
|
|
}
|
|
|
|
function buildSliderRange(frames, totalTime) {
|
|
const range = { 'min': frames[0].time };
|
|
frames.forEach((frame, idx) => {
|
|
if (idx > 0 && idx < frames.length - 1) {
|
|
const pct = (frame.time / totalTime * 100).toFixed(1) + '%';
|
|
range[pct] = frame.time;
|
|
}
|
|
});
|
|
range['max'] = frames[frames.length - 1].time;
|
|
return range;
|
|
}
|
|
|
|
function setupVideoSlider(frames, totalTime) {
|
|
const sliderEl = document.getElementById('video-slider');
|
|
|
|
if (sliderEl.noUiSlider) {
|
|
sliderEl.noUiSlider.destroy();
|
|
}
|
|
|
|
const range = buildSliderRange(frames, totalTime);
|
|
|
|
noUiSlider.create(sliderEl, {
|
|
start: frames[frames.length - 1].time,
|
|
snap: true,
|
|
range: range,
|
|
pips: {
|
|
mode: 'range',
|
|
density: 100
|
|
}
|
|
});
|
|
|
|
sliderEl.noUiSlider.on('update', function(values) {
|
|
const time = parseFloat(values[0]);
|
|
const frameIdx = frames.findIndex(f => Math.abs(f.time - time) < 0.01);
|
|
if (frameIdx >= 0 && frameIdx !== currentFrameIndex) {
|
|
currentFrameIndex = frameIdx;
|
|
showFrame(currentWorkflow, frameIdx);
|
|
}
|
|
});
|
|
}
|
|
|
|
function showFrame(workflowName, frameIndex) {
|
|
const data = videoData[workflowName];
|
|
if (!data || !data.frames) return;
|
|
|
|
const frame = data.frames[frameIndex];
|
|
const img = document.getElementById('lightbox-img');
|
|
|
|
const isLastFrame = frameIndex === data.frames.length - 1;
|
|
if (isLastFrame && workflowData[workflowName] && workflowData[workflowName].src) {
|
|
img.src = workflowData[workflowName].src;
|
|
} else {
|
|
img.src = 'videos/' + workflowName + '/' + frame.file;
|
|
}
|
|
|
|
const counter = document.getElementById('video-frame-counter');
|
|
const totalTime = data.total_time || data.frames[data.frames.length - 1].time;
|
|
counter.textContent = frame.time.toFixed(1) + 's / ' + totalTime.toFixed(1) + 's';
|
|
|
|
const logEl = document.getElementById('lightbox-log');
|
|
if (frame.log) {
|
|
logEl.textContent = frame.log;
|
|
logEl.scrollTop = logEl.scrollHeight;
|
|
}
|
|
}
|
|
|
|
function updateVideoFrameByIndex(workflowName, frameIndex) {
|
|
currentFrameIndex = frameIndex;
|
|
showFrame(workflowName, frameIndex);
|
|
|
|
const sliderEl = document.getElementById('video-slider');
|
|
if (sliderEl.noUiSlider && currentFrames[frameIndex]) {
|
|
sliderEl.noUiSlider.set(currentFrames[frameIndex].time);
|
|
}
|
|
}
|
|
|
|
function toggleVideoPlay() {
|
|
const btn = document.getElementById('video-play-btn');
|
|
if (playInterval) {
|
|
clearInterval(playInterval);
|
|
playInterval = null;
|
|
btn.innerHTML = '▶ Play';
|
|
} else {
|
|
btn.innerHTML = '■ Stop';
|
|
playInterval = setInterval(() => {
|
|
if (!currentFrames.length) return;
|
|
currentFrameIndex = (currentFrameIndex + 1) % currentFrames.length;
|
|
updateVideoFrameByIndex(currentWorkflow, currentFrameIndex);
|
|
}, 500);
|
|
}
|
|
}
|
|
|
|
let resourceGraphState = null;
|
|
|
|
async function loadResourceGraph(workflowName) {
|
|
const graphContainer = document.getElementById('resource-graph');
|
|
const canvas = document.getElementById('resource-canvas');
|
|
const gpuLegend = document.getElementById('gpu-legend');
|
|
|
|
resourceGraphState = null;
|
|
|
|
try {
|
|
const csvResponse = await fetch('logs/' + workflowName + '_resources.csv');
|
|
|
|
if (!csvResponse.ok) {
|
|
graphContainer.classList.remove('active');
|
|
return;
|
|
}
|
|
|
|
const text = await csvResponse.text();
|
|
const allLines = text.trim().split('\n');
|
|
|
|
let totalRamGb = 32;
|
|
if (allLines[0].startsWith('#')) {
|
|
const metaMatch = allLines[0].match(/total_ram_gb=([\d.]+)/);
|
|
if (metaMatch) {
|
|
totalRamGb = parseFloat(metaMatch[1]);
|
|
}
|
|
}
|
|
|
|
const dataLines = allLines.slice(2);
|
|
|
|
if (dataLines.length < 2) {
|
|
graphContainer.classList.remove('active');
|
|
return;
|
|
}
|
|
|
|
const data = dataLines.map(line => {
|
|
const [t, ram, vram] = line.split(',');
|
|
return {
|
|
t: parseFloat(t),
|
|
ram: parseFloat(ram),
|
|
vram: vram ? parseFloat(vram) : null
|
|
};
|
|
});
|
|
|
|
const hasVram = data.some(d => d.vram !== null);
|
|
gpuLegend.style.display = hasVram ? 'flex' : 'none';
|
|
|
|
graphContainer.classList.add('active');
|
|
await new Promise(r => setTimeout(r, 10));
|
|
|
|
const ctx = canvas.getContext('2d');
|
|
const dpr = window.devicePixelRatio || 1;
|
|
const rect = canvas.getBoundingClientRect();
|
|
canvas.width = rect.width * dpr;
|
|
canvas.height = rect.height * dpr;
|
|
ctx.scale(dpr, dpr);
|
|
|
|
const w = rect.width;
|
|
const h = rect.height;
|
|
const padding = { top: 10, right: 40, bottom: 20, left: 45 };
|
|
const graphW = w - padding.left - padding.right;
|
|
const graphH = h - padding.top - padding.bottom;
|
|
|
|
const maxRam = Math.max(...data.map(d => d.ram), 0.5);
|
|
const maxVram = hasVram ? Math.max(...data.filter(d => d.vram !== null).map(d => d.vram), 0.5) : 1;
|
|
const maxTime = data[data.length - 1].t;
|
|
|
|
resourceGraphState = { data, padding, w, h, graphW, graphH, maxRam, maxVram, maxTime, hasVram, dpr };
|
|
|
|
drawResourceGraph();
|
|
} catch (e) {
|
|
console.error('Resource graph error:', e);
|
|
graphContainer.classList.remove('active');
|
|
}
|
|
}
|
|
|
|
function drawResourceGraph(hoverX) {
|
|
if (!resourceGraphState) return;
|
|
const { data, padding, w, h, graphW, graphH, maxRam, maxVram, maxTime, hasVram, dpr } = resourceGraphState;
|
|
|
|
const canvas = document.getElementById('resource-canvas');
|
|
const ctx = canvas.getContext('2d');
|
|
ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
|
|
ctx.clearRect(0, 0, w, h);
|
|
|
|
// Grid lines
|
|
ctx.strokeStyle = '#1c2d44';
|
|
ctx.lineWidth = 0.5;
|
|
for (let i = 1; i < 4; i++) {
|
|
const y = padding.top + (graphH * i / 4);
|
|
ctx.beginPath();
|
|
ctx.moveTo(padding.left, y);
|
|
ctx.lineTo(w - padding.right, y);
|
|
ctx.stroke();
|
|
}
|
|
|
|
// Axes
|
|
ctx.strokeStyle = '#243656';
|
|
ctx.lineWidth = 1;
|
|
ctx.beginPath();
|
|
ctx.moveTo(padding.left, padding.top);
|
|
ctx.lineTo(padding.left, h - padding.bottom);
|
|
ctx.lineTo(w - padding.right, h - padding.bottom);
|
|
ctx.lineTo(w - padding.right, padding.top);
|
|
ctx.stroke();
|
|
|
|
// Left axis: RAM
|
|
ctx.fillStyle = '#3fb950';
|
|
ctx.font = '9px sans-serif';
|
|
ctx.textAlign = 'right';
|
|
const ramMax = Math.ceil(maxRam * 10) / 10;
|
|
ctx.fillText(ramMax.toFixed(1) + ' GB', padding.left - 3, padding.top + 4);
|
|
ctx.fillText('0', padding.left - 3, h - padding.bottom + 4);
|
|
|
|
// Right axis: VRAM (if present)
|
|
if (hasVram) {
|
|
ctx.fillStyle = '#d29922';
|
|
ctx.textAlign = 'left';
|
|
const vramMax = Math.ceil(maxVram * 10) / 10;
|
|
ctx.fillText(vramMax.toFixed(1) + ' GB', w - padding.right + 3, padding.top + 4);
|
|
ctx.fillText('0', w - padding.right + 3, h - padding.bottom + 4);
|
|
}
|
|
|
|
// Time labels
|
|
ctx.fillStyle = '#4a6282';
|
|
ctx.textAlign = 'center';
|
|
ctx.fillText('0s', padding.left, h - padding.bottom + 12);
|
|
ctx.fillText(maxTime.toFixed(0) + 's', w - padding.right, h - padding.bottom + 12);
|
|
|
|
function drawLine(values, maxVal, color) {
|
|
if (values.every(v => v === null || isNaN(v))) return;
|
|
ctx.strokeStyle = color;
|
|
ctx.lineWidth = 1.5;
|
|
ctx.beginPath();
|
|
let started = false;
|
|
data.forEach((d, i) => {
|
|
const val = values[i];
|
|
if (val === null || isNaN(val)) return;
|
|
const x = padding.left + (d.t / maxTime) * graphW;
|
|
const y = padding.top + (1 - val / maxVal) * graphH;
|
|
if (!started) { ctx.moveTo(x, y); started = true; }
|
|
else { ctx.lineTo(x, y); }
|
|
});
|
|
ctx.stroke();
|
|
}
|
|
|
|
drawLine(data.map(d => d.ram), ramMax, '#3fb950');
|
|
if (hasVram) {
|
|
drawLine(data.map(d => d.vram), Math.ceil(maxVram * 10) / 10, '#d29922');
|
|
}
|
|
|
|
// Hover crosshair
|
|
if (hoverX !== undefined && hoverX >= padding.left && hoverX <= w - padding.right) {
|
|
const timeAtCursor = ((hoverX - padding.left) / graphW) * maxTime;
|
|
let closest = data[0], closestDist = Infinity;
|
|
for (const d of data) {
|
|
const dist = Math.abs(d.t - timeAtCursor);
|
|
if (dist < closestDist) { closestDist = dist; closest = d; }
|
|
}
|
|
|
|
const snapX = padding.left + (closest.t / maxTime) * graphW;
|
|
|
|
// Vertical line
|
|
ctx.strokeStyle = 'rgba(230,237,243,0.2)';
|
|
ctx.lineWidth = 1;
|
|
ctx.beginPath();
|
|
ctx.moveTo(snapX, padding.top);
|
|
ctx.lineTo(snapX, h - padding.bottom);
|
|
ctx.stroke();
|
|
|
|
// Readout
|
|
ctx.font = '10px sans-serif';
|
|
ctx.textAlign = 'left';
|
|
const readoutX = snapX + 6;
|
|
let readoutY = padding.top + 14;
|
|
|
|
ctx.fillStyle = '#8ba3c1';
|
|
ctx.fillText(closest.t.toFixed(1) + 's', readoutX, readoutY);
|
|
readoutY += 13;
|
|
|
|
ctx.fillStyle = '#3fb950';
|
|
ctx.fillText('RAM: ' + closest.ram.toFixed(2) + ' GB', readoutX, readoutY);
|
|
readoutY += 13;
|
|
|
|
if (hasVram && closest.vram !== null) {
|
|
ctx.fillStyle = '#d29922';
|
|
ctx.fillText('VRAM: ' + closest.vram.toFixed(2) + ' GB', readoutX, readoutY);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Canvas hover handler
|
|
document.getElementById('resource-canvas').addEventListener('mousemove', function(e) {
|
|
if (!resourceGraphState) return;
|
|
const rect = this.getBoundingClientRect();
|
|
drawResourceGraph(e.clientX - rect.left);
|
|
});
|
|
document.getElementById('resource-canvas').addEventListener('mouseleave', function() {
|
|
drawResourceGraph();
|
|
});
|
|
|
|
function closeImgOverlay() {
|
|
const overlay = document.getElementById('img-overlay');
|
|
overlay.classList.remove('active', 'zoomed');
|
|
}
|
|
|
|
function closeLightbox() {
|
|
if (playInterval) {
|
|
clearInterval(playInterval);
|
|
playInterval = null;
|
|
document.getElementById('video-play-btn').innerHTML = '▶ Play';
|
|
}
|
|
closeImgOverlay();
|
|
document.getElementById('resource-graph').classList.remove('active');
|
|
document.getElementById('lightbox').classList.remove('active');
|
|
history.replaceState(null, '', window.location.pathname);
|
|
|
|
if (inIframe) {
|
|
window.parent.postMessage({ type: 'comfytest-close' }, '*');
|
|
}
|
|
}
|
|
|
|
document.getElementById('lightbox').onclick = (e) => {
|
|
if (e.target.id === 'lightbox') closeLightbox();
|
|
};
|
|
|
|
function navigateLightbox(delta) {
|
|
if (workflowNames.length === 0) return;
|
|
const idx = workflowNames.indexOf(currentWorkflow);
|
|
if (idx === -1) return;
|
|
const newIdx = (idx + delta + workflowNames.length) % workflowNames.length;
|
|
openLightboxByName(workflowNames[newIdx]);
|
|
}
|
|
|
|
function handleKey(key) {
|
|
const overlay = document.getElementById('img-overlay');
|
|
if (key === 'Escape') {
|
|
if (overlay.classList.contains('active')) {
|
|
closeImgOverlay();
|
|
} else {
|
|
closeLightbox();
|
|
}
|
|
return;
|
|
}
|
|
if (document.getElementById('lightbox').classList.contains('active') && !overlay.classList.contains('active')) {
|
|
if (key === 'ArrowLeft') { navigateLightbox(-1); }
|
|
if (key === 'ArrowRight') { navigateLightbox(1); }
|
|
if ((key === 'ArrowUp' || key === 'ArrowDown') && inIframe) {
|
|
window.parent.postMessage({
|
|
type: 'comfytest-platform-shift',
|
|
delta: key === 'ArrowUp' ? -1 : 1,
|
|
workflow: currentWorkflow,
|
|
}, '*');
|
|
}
|
|
}
|
|
}
|
|
|
|
document.onkeydown = (e) => {
|
|
if (['Escape', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) {
|
|
e.preventDefault();
|
|
handleKey(e.key);
|
|
}
|
|
};
|
|
|
|
// Click lightbox image -> open in fullscreen overlay (fit mode)
|
|
document.getElementById('lightbox-img').addEventListener('click', function(e) {
|
|
e.stopPropagation();
|
|
const overlay = document.getElementById('img-overlay');
|
|
const overlayImg = document.getElementById('img-overlay-content');
|
|
overlayImg.src = this.src;
|
|
overlay.classList.add('active');
|
|
overlay.classList.remove('zoomed');
|
|
});
|
|
|
|
// Click overlay image: fit -> zoomed -> close
|
|
document.getElementById('img-overlay-content').addEventListener('click', function(e) {
|
|
e.stopPropagation();
|
|
const overlay = document.getElementById('img-overlay');
|
|
if (overlay.classList.contains('zoomed')) {
|
|
closeImgOverlay();
|
|
} else {
|
|
overlay.classList.add('zoomed');
|
|
}
|
|
});
|
|
|
|
// Click overlay background -> close overlay
|
|
document.getElementById('img-overlay').addEventListener('click', function(e) {
|
|
if (e.target === this) closeImgOverlay();
|
|
});
|
|
|
|
function openFromHash() {
|
|
const hash = decodeURIComponent(window.location.hash.slice(1));
|
|
if (hash && workflowData[hash]) {
|
|
const w = workflowData[hash];
|
|
openLightbox(w.src, w.title, w.status, w.duration, w.log, w.hardware);
|
|
}
|
|
}
|
|
|
|
window.addEventListener('hashchange', openFromHash);
|
|
window.addEventListener('load', openFromHash);
|
|
|
|
// Listen for messages from parent frames
|
|
window.addEventListener('message', function(e) {
|
|
if (!e.data || !e.data.type) return;
|
|
if (e.data.type === 'comfytest-open' && e.data.name) {
|
|
openLightboxByName(e.data.name);
|
|
}
|
|
if (e.data.type === 'comfytest-key') {
|
|
handleKey(e.data.key);
|
|
}
|
|
});
|
|
|
|
// Detect iframe: hide header and move meta chips into summary
|
|
if (inIframe) {
|
|
document.body.classList.add('in-iframe');
|
|
const chips = document.querySelector('.meta-chips');
|
|
const summary = document.querySelector('.summary');
|
|
if (chips && summary) {
|
|
const wrapper = document.createElement('div');
|
|
wrapper.className = 'summary-meta';
|
|
while (chips.firstChild) wrapper.appendChild(chips.firstChild);
|
|
summary.insertBefore(wrapper, summary.firstChild);
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|