|
| 1 | +import { expect } from '@playwright/test' |
| 2 | +import { comfyPageFixture as test } from './ComfyPage' |
| 3 | + |
| 4 | +const customColorPalettes = { |
| 5 | + obsidian: { |
| 6 | + version: 102, |
| 7 | + id: 'obsidian', |
| 8 | + name: 'Obsidian', |
| 9 | + colors: { |
| 10 | + node_slot: { |
| 11 | + CLIP: '#FFD500', |
| 12 | + CLIP_VISION: '#A8DADC', |
| 13 | + CLIP_VISION_OUTPUT: '#ad7452', |
| 14 | + CONDITIONING: '#FFA931', |
| 15 | + CONTROL_NET: '#6EE7B7', |
| 16 | + IMAGE: '#64B5F6', |
| 17 | + LATENT: '#FF9CF9', |
| 18 | + MASK: '#81C784', |
| 19 | + MODEL: '#B39DDB', |
| 20 | + STYLE_MODEL: '#C2FFAE', |
| 21 | + VAE: '#FF6E6E', |
| 22 | + TAESD: '#DCC274', |
| 23 | + PIPE_LINE: '#7737AA', |
| 24 | + PIPE_LINE_SDXL: '#7737AA', |
| 25 | + INT: '#29699C', |
| 26 | + XYPLOT: '#74DA5D', |
| 27 | + X_Y: '#38291f' |
| 28 | + }, |
| 29 | + litegraph_base: { |
| 30 | + BACKGROUND_IMAGE: |
| 31 | + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQBJREFUeNrs1rEKwjAUhlETUkj3vP9rdmr1Ysammk2w5wdxuLgcMHyptfawuZX4pJSWZTnfnu/lnIe/jNNxHHGNn//HNbbv+4dr6V+11uF527arU7+u63qfa/bnmh8sWLBgwYJlqRf8MEptXPBXJXa37BSl3ixYsGDBMliwFLyCV/DeLIMFCxYsWLBMwSt4Be/NggXLYMGCBUvBK3iNruC9WbBgwYJlsGApeAWv4L1ZBgsWLFiwYJmCV/AK3psFC5bBggULloJX8BpdwXuzYMGCBctgwVLwCl7Be7MMFixYsGDBsu8FH1FaSmExVfAxBa/gvVmwYMGCZbBg/W4vAQYA5tRF9QYlv/QAAAAASUVORK5CYII=', |
| 32 | + CLEAR_BACKGROUND_COLOR: '#222222', |
| 33 | + NODE_TITLE_COLOR: 'rgba(255,255,255,.75)', |
| 34 | + NODE_SELECTED_TITLE_COLOR: '#FFF', |
| 35 | + NODE_TEXT_SIZE: 14, |
| 36 | + NODE_TEXT_COLOR: '#b8b8b8', |
| 37 | + NODE_SUBTEXT_SIZE: 12, |
| 38 | + NODE_DEFAULT_COLOR: 'rgba(0,0,0,.8)', |
| 39 | + NODE_DEFAULT_BGCOLOR: 'rgba(22,22,22,.8)', |
| 40 | + NODE_DEFAULT_BOXCOLOR: 'rgba(255,255,255,.75)', |
| 41 | + NODE_DEFAULT_SHAPE: 'box', |
| 42 | + NODE_BOX_OUTLINE_COLOR: '#236692', |
| 43 | + DEFAULT_SHADOW_COLOR: 'rgba(0,0,0,0)', |
| 44 | + DEFAULT_GROUP_FONT: 24, |
| 45 | + WIDGET_BGCOLOR: '#242424', |
| 46 | + WIDGET_OUTLINE_COLOR: '#333', |
| 47 | + WIDGET_TEXT_COLOR: '#a3a3a8', |
| 48 | + WIDGET_SECONDARY_TEXT_COLOR: '#97979c', |
| 49 | + LINK_COLOR: '#9A9', |
| 50 | + EVENT_LINK_COLOR: '#A86', |
| 51 | + CONNECTING_LINK_COLOR: '#AFA' |
| 52 | + }, |
| 53 | + comfy_base: { |
| 54 | + 'fg-color': '#fff', |
| 55 | + 'bg-color': '#242424', |
| 56 | + 'comfy-menu-bg': 'rgba(24,24,24,.9)', |
| 57 | + 'comfy-input-bg': '#262626', |
| 58 | + 'input-text': '#ddd', |
| 59 | + 'descrip-text': '#999', |
| 60 | + 'drag-text': '#ccc', |
| 61 | + 'error-text': '#ff4444', |
| 62 | + 'border-color': '#29292c', |
| 63 | + 'tr-even-bg-color': 'rgba(28,28,28,.9)', |
| 64 | + 'tr-odd-bg-color': 'rgba(19,19,19,.9)' |
| 65 | + } |
| 66 | + } |
| 67 | + }, |
| 68 | + obsidian_dark: { |
| 69 | + version: 102, |
| 70 | + id: 'obsidian_dark', |
| 71 | + name: 'Obsidian Dark', |
| 72 | + colors: { |
| 73 | + node_slot: { |
| 74 | + CLIP: '#FFD500', |
| 75 | + CLIP_VISION: '#A8DADC', |
| 76 | + CLIP_VISION_OUTPUT: '#ad7452', |
| 77 | + CONDITIONING: '#FFA931', |
| 78 | + CONTROL_NET: '#6EE7B7', |
| 79 | + IMAGE: '#64B5F6', |
| 80 | + LATENT: '#FF9CF9', |
| 81 | + MASK: '#81C784', |
| 82 | + MODEL: '#B39DDB', |
| 83 | + STYLE_MODEL: '#C2FFAE', |
| 84 | + VAE: '#FF6E6E', |
| 85 | + TAESD: '#DCC274', |
| 86 | + PIPE_LINE: '#7737AA', |
| 87 | + PIPE_LINE_SDXL: '#7737AA', |
| 88 | + INT: '#29699C', |
| 89 | + XYPLOT: '#74DA5D', |
| 90 | + X_Y: '#38291f' |
| 91 | + }, |
| 92 | + litegraph_base: { |
| 93 | + BACKGROUND_IMAGE: |
| 94 | + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGlmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgNzkuMTQ2Mjg5OSwgMjAyMy8wNi8yNS0yMDowMTo1NSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI1LjEgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMy0xMS0xM1QwMDoxODowMiswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjMtMTEtMTVUMDI6MDQ6NTkrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjMtMTEtMTVUMDI6MDQ6NTkrMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmIyYzRhNjA5LWJmYTctYTg0MC1iOGFlLTk3MzE2ZjM1ZGIyNyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjk0ZmNlZGU4LTE1MTctZmQ0MC04ZGU3LWYzOTgxM2E3ODk5ZiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjIzMWIxMGIwLWI0ZmItMDI0ZS1iMTJlLTMwNTMwM2NkMDdjOCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjMxYjEwYjAtYjRmYi0wMjRlLWIxMmUtMzA1MzAzY2QwN2M4IiBzdEV2dDp3aGVuPSIyMDIzLTExLTEzVDAwOjE4OjAyKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjUuMSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ4OWY1NzlmLTJkNjUtZWQ0Zi04OTg0LTA4NGE2MGE1ZTMzNSIgc3RFdnQ6d2hlbj0iMjAyMy0xMS0xNVQwMjowNDo1OSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI1LjEgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiMmM0YTYwOS1iZmE3LWE4NDAtYjhhZS05NzMxNmYzNWRiMjciIHN0RXZ0OndoZW49IjIwMjMtMTEtMTVUMDI6MDQ6NTkrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNS4xIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4OTe6GAAAAx0lEQVR42u3WMQoAIQxFwRzJys77X8vSLiRgITif7bYbgrwYc/mKXyBoY4VVBgsWLFiwYFmOlTv+9jfDOjHmr8u6eVkGCxYsWLBgmc5S8ApewXvgYRksWLBgKXidpeBdloL3wMOCBctgwVLwCl7BuyyDBQsWLFiwTGcpeAWv4D3wsAwWLFiwFLzOUvAuS8F74GHBgmWwYCl4Ba/gXZbBggULFixYprMUvIJX8B54WAYLFixYCl5nKXiXpeA98LBgwTJYsGC9tg1o8f4TTtqzNQAAAABJRU5ErkJggg==', |
| 95 | + CLEAR_BACKGROUND_COLOR: '#000', |
| 96 | + NODE_TITLE_COLOR: 'rgba(255,255,255,.75)', |
| 97 | + NODE_SELECTED_TITLE_COLOR: '#FFF', |
| 98 | + NODE_TEXT_SIZE: 14, |
| 99 | + NODE_TEXT_COLOR: '#b8b8b8', |
| 100 | + NODE_SUBTEXT_SIZE: 12, |
| 101 | + NODE_DEFAULT_COLOR: 'rgba(0,0,0,.8)', |
| 102 | + NODE_DEFAULT_BGCOLOR: 'rgba(22,22,22,.8)', |
| 103 | + NODE_DEFAULT_BOXCOLOR: 'rgba(255,255,255,.75)', |
| 104 | + NODE_DEFAULT_SHAPE: 'box', |
| 105 | + NODE_BOX_OUTLINE_COLOR: '#236692', |
| 106 | + DEFAULT_SHADOW_COLOR: 'rgba(0,0,0,0)', |
| 107 | + DEFAULT_GROUP_FONT: 24, |
| 108 | + WIDGET_BGCOLOR: '#242424', |
| 109 | + WIDGET_OUTLINE_COLOR: '#333', |
| 110 | + WIDGET_TEXT_COLOR: '#a3a3a8', |
| 111 | + WIDGET_SECONDARY_TEXT_COLOR: '#97979c', |
| 112 | + LINK_COLOR: '#9A9', |
| 113 | + EVENT_LINK_COLOR: '#A86', |
| 114 | + CONNECTING_LINK_COLOR: '#AFA' |
| 115 | + }, |
| 116 | + comfy_base: { |
| 117 | + 'fg-color': '#fff', |
| 118 | + 'bg-color': '#242424', |
| 119 | + 'comfy-menu-bg': 'rgba(24,24,24,.9)', |
| 120 | + 'comfy-input-bg': '#262626', |
| 121 | + 'input-text': '#ddd', |
| 122 | + 'descrip-text': '#999', |
| 123 | + 'drag-text': '#ccc', |
| 124 | + 'error-text': '#ff4444', |
| 125 | + 'border-color': '#29292c', |
| 126 | + 'tr-even-bg-color': 'rgba(28,28,28,.9)', |
| 127 | + 'tr-odd-bg-color': 'rgba(19,19,19,.9)' |
| 128 | + } |
| 129 | + } |
| 130 | + } |
| 131 | +} |
| 132 | + |
| 133 | +test.describe('Color Palette', () => { |
| 134 | + test.beforeEach(async ({ comfyPage }) => { |
| 135 | + await comfyPage.setSetting('Comfy.CustomColorPalettes', customColorPalettes) |
| 136 | + }) |
| 137 | + |
| 138 | + test('Can show custom color palette', async ({ comfyPage }) => { |
| 139 | + await comfyPage.setSetting('Comfy.ColorPalette', 'custom_obsidian_dark') |
| 140 | + await comfyPage.nextFrame() |
| 141 | + await expect(comfyPage.canvas).toHaveScreenshot( |
| 142 | + 'custom-color-palette-obsidian-dark.png' |
| 143 | + ) |
| 144 | + // Reset to default color palette for other tests |
| 145 | + await comfyPage.setSetting('Comfy.ColorPalette', 'dark') |
| 146 | + await comfyPage.nextFrame() |
| 147 | + await expect(comfyPage.canvas).toHaveScreenshot('default-color-palette.png') |
| 148 | + }) |
| 149 | +}) |
0 commit comments