From 5c7d9074b6382d9ec9e5d3433bc17152953ff57e Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Thu, 20 Mar 2025 17:55:51 -0700 Subject: [PATCH] Load workflows from GLTF files (#3169) Co-authored-by: github-actions --- browser_tests/assets/workflow.glb | Bin 0 -> 8716 bytes browser_tests/fixtures/ComfyPage.ts | 1 + browser_tests/loadWorkflowInMedia.spec.ts | 3 +- .../workflow-glb-chromium-linux.png | Bin 0 -> 122908 bytes src/scripts/app.ts | 10 ++ src/scripts/metadata/gltf.ts | 170 ++++++++++++++++++ src/types/metadataTypes.ts | 35 ++++ tests-ui/tests/scripts/metadata/gltf.test.ts | 163 +++++++++++++++++ 8 files changed, 381 insertions(+), 1 deletion(-) create mode 100644 browser_tests/assets/workflow.glb create mode 100644 browser_tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-glb-chromium-linux.png create mode 100644 src/scripts/metadata/gltf.ts create mode 100644 tests-ui/tests/scripts/metadata/gltf.test.ts diff --git a/browser_tests/assets/workflow.glb b/browser_tests/assets/workflow.glb new file mode 100644 index 0000000000000000000000000000000000000000..725727e65cc0ec6dd9a34348c91f5be99c68579d GIT binary patch literal 8716 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 literal 0 HcmV?d00001 diff --git a/browser_tests/fixtures/ComfyPage.ts b/browser_tests/fixtures/ComfyPage.ts index 52f03629f..72971c63d 100644 --- a/browser_tests/fixtures/ComfyPage.ts +++ b/browser_tests/fixtures/ComfyPage.ts @@ -471,6 +471,7 @@ export class ComfyPage { if (fileName.endsWith('.webp')) return 'image/webp' if (fileName.endsWith('.webm')) return 'video/webm' if (fileName.endsWith('.json')) return 'application/json' + if (fileName.endsWith('.glb')) return 'model/gltf-binary' return 'application/octet-stream' } diff --git a/browser_tests/loadWorkflowInMedia.spec.ts b/browser_tests/loadWorkflowInMedia.spec.ts index 40e939d2e..d060befcb 100644 --- a/browser_tests/loadWorkflowInMedia.spec.ts +++ b/browser_tests/loadWorkflowInMedia.spec.ts @@ -8,7 +8,8 @@ test.describe('Load Workflow in Media', () => { 'edited_workflow.webp', 'no_workflow.webp', 'large_workflow.webp', - 'workflow.webm' + 'workflow.webm', + 'workflow.glb' ].forEach(async (fileName) => { test(`Load workflow in ${fileName}`, async ({ comfyPage }) => { await comfyPage.dragAndDropFile(fileName) diff --git a/browser_tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-glb-chromium-linux.png b/browser_tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-glb-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..faadbbda9b09fd02fedb6a417b80dfd59dce0b2f GIT binary patch literal 122908 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

~4wsr4Cv{b0gY!DHzW4f=s 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 + !!chunk && chunk.chunkTypeIdentifier === ASCII.JSON + +const isValidChunkRange = ( + start: number, + length: number, + bufferSize: number +): boolean => start + length <= bufferSize + +const byteArrayToString = (bytes: Uint8Array): string => + new TextDecoder().decode(bytes) + +const parseGltfBinaryHeader = (dataView: DataView): GltfHeader | null => { + if (dataView.byteLength < GltfSizeBytes.HEADER) return null + + const magicNumber = dataView.getUint32(0, true) + if (magicNumber !== ASCII.GLTF) return null + + return { + magicNumber, + gltfFormatVersion: dataView.getUint32(4, true), + totalLengthBytes: dataView.getUint32(8, true) + } +} + +const parseChunkHeaderAtOffset = ( + dataView: DataView, + offset: number +): GltfChunkHeader | null => { + if (offset + GltfSizeBytes.CHUNK_HEADER > dataView.byteLength) return null + + return { + chunkLengthBytes: dataView.getUint32(offset, true), + chunkTypeIdentifier: dataView.getUint32(offset + 4, true) + } +} + +const extractJsonChunk = ( + buffer: ArrayBuffer +): { start: number; length: number } | null => { + const dataView = new DataView(buffer) + + const header = parseGltfBinaryHeader(dataView) + if (!header) return null + + const chunkOffset = GltfSizeBytes.HEADER + const firstChunk = parseChunkHeaderAtOffset(dataView, chunkOffset) + if (!firstChunk || !isJsonChunk(firstChunk)) return null + + const jsonStart = chunkOffset + GltfSizeBytes.CHUNK_HEADER + const isValid = isValidChunkRange( + jsonStart, + firstChunk.chunkLengthBytes, + dataView.byteLength + ) + if (!isValid) return null + + return { start: jsonStart, length: firstChunk.chunkLengthBytes } +} + +const extractJsonChunkData = (buffer: ArrayBuffer): Uint8Array | null => { + const chunkLocation = extractJsonChunk(buffer) + if (!chunkLocation) return null + + return new Uint8Array(buffer, chunkLocation.start, chunkLocation.length) +} + +const parseJson = (text: string): ReturnType | null => { + try { + return JSON.parse(text) + } catch { + return null + } +} + +const parseJsonBytes = ( + bytes: Uint8Array +): ReturnType | null => { + const jsonString = byteArrayToString(bytes) + return parseJson(jsonString) +} + +const parseMetadataValue = ( + value: string | object +): ComfyWorkflowJSON | ComfyApiWorkflow | undefined => { + if (typeof value !== 'string') + return value as ComfyWorkflowJSON | ComfyApiWorkflow + + const parsed = parseJson(value) + if (!parsed) return undefined + + return parsed as ComfyWorkflowJSON | ComfyApiWorkflow +} + +const extractComfyMetadata = (jsonData: GltfJsonData): ComfyMetadata => { + const metadata: ComfyMetadata = {} + + if (!jsonData?.asset?.extras) return metadata + + const { extras } = jsonData.asset + + if (extras.workflow) { + const parsedValue = parseMetadataValue(extras.workflow) + if (parsedValue) { + metadata[ComfyMetadataTags.WORKFLOW.toLowerCase()] = parsedValue + } + } + + if (extras.prompt) { + const parsedValue = parseMetadataValue(extras.prompt) + if (parsedValue) { + metadata[ComfyMetadataTags.PROMPT.toLowerCase()] = parsedValue + } + } + + return metadata +} + +const processGltfFileBuffer = (buffer: ArrayBuffer): ComfyMetadata => { + const jsonChunk = extractJsonChunkData(buffer) + if (!jsonChunk) return {} + + const parsedJson = parseJsonBytes(jsonChunk) + if (!parsedJson) return {} + + return extractComfyMetadata(parsedJson) +} + +/** + * Extract ComfyUI metadata from a GLTF binary file (GLB) + */ +export function getGltfBinaryMetadata(file: File): Promise { + return new Promise((resolve) => { + if (!file) return Promise.resolve({}) + + const bytesToRead = Math.min(file.size, MAX_READ_BYTES) + + const reader = new FileReader() + reader.onload = (event) => { + try { + if (!event.target?.result) { + resolve({}) + return + } + + resolve(processGltfFileBuffer(event.target.result as ArrayBuffer)) + } catch { + resolve({}) + } + } + reader.onerror = () => resolve({}) + reader.readAsArrayBuffer(file.slice(0, bytesToRead)) + }) +} diff --git a/src/types/metadataTypes.ts b/src/types/metadataTypes.ts index 0923fcb7c..27449a8d5 100644 --- a/src/types/metadataTypes.ts +++ b/src/types/metadataTypes.ts @@ -43,3 +43,38 @@ export type TextRange = { start: number end: number } + +export enum ASCII { + GLTF = 0x46546c67, + JSON = 0x4e4f534a +} + +export enum GltfSizeBytes { + HEADER = 12, + CHUNK_HEADER = 8 +} + +export type GltfHeader = { + magicNumber: number + gltfFormatVersion: number + totalLengthBytes: number +} + +export type GltfChunkHeader = { + chunkLengthBytes: number + chunkTypeIdentifier: number +} + +export type GltfExtras = { + workflow?: string | object + prompt?: string | object + [key: string]: any +} + +export type GltfJsonData = { + asset?: { + extras?: GltfExtras + [key: string]: any + } + [key: string]: any +} diff --git a/tests-ui/tests/scripts/metadata/gltf.test.ts b/tests-ui/tests/scripts/metadata/gltf.test.ts new file mode 100644 index 000000000..1968973c2 --- /dev/null +++ b/tests-ui/tests/scripts/metadata/gltf.test.ts @@ -0,0 +1,163 @@ +import { describe, expect, it } from 'vitest' + +import { ASCII, GltfSizeBytes } from '@/types/metadataTypes' + +import { getGltfBinaryMetadata } from '../../../../src/scripts/metadata/gltf' + +describe('GLTF binary metadata parser', () => { + const createGLTFFileStructure = () => { + const header = new ArrayBuffer(GltfSizeBytes.HEADER) + const headerView = new DataView(header) + return { header, headerView } + } + + const jsonToBinary = (json: object) => { + const jsonString = JSON.stringify(json) + const jsonData = new TextEncoder().encode(jsonString) + return jsonData + } + + const createJSONChunk = (jsonData: ArrayBuffer) => { + const chunkHeader = new ArrayBuffer(GltfSizeBytes.CHUNK_HEADER) + const chunkView = new DataView(chunkHeader) + chunkView.setUint32(0, jsonData.byteLength, true) + chunkView.setUint32(4, ASCII.JSON, true) + return chunkHeader + } + + const setVersionHeader = (headerView: DataView, version: number) => { + headerView.setUint32(4, version, true) + } + + const setTypeHeader = (headerView: DataView, type: number) => { + headerView.setUint32(0, type, true) + } + + const setTotalLengthHeader = (headerView: DataView, length: number) => { + headerView.setUint32(8, length, true) + } + + const setHeaders = (headerView: DataView, jsonData: ArrayBuffer) => { + setTypeHeader(headerView, ASCII.GLTF) + setVersionHeader(headerView, 2) + setTotalLengthHeader( + headerView, + GltfSizeBytes.HEADER + GltfSizeBytes.CHUNK_HEADER + jsonData.byteLength + ) + } + + function createMockGltfFile(jsonContent: object): File { + const jsonData = jsonToBinary(jsonContent) + const { header, headerView } = createGLTFFileStructure() + + setHeaders(headerView, jsonData) + + const chunkHeader = createJSONChunk(jsonData) + + const fileContent = new Uint8Array( + header.byteLength + chunkHeader.byteLength + jsonData.byteLength + ) + fileContent.set(new Uint8Array(header), 0) + fileContent.set(new Uint8Array(chunkHeader), header.byteLength) + fileContent.set(jsonData, header.byteLength + chunkHeader.byteLength) + + return new File([fileContent], 'test.glb', { type: 'model/gltf-binary' }) + } + + it('should extract workflow metadata from GLTF binary file', async () => { + const testWorkflow = { + nodes: [ + { + id: 1, + type: 'TestNode', + pos: [100, 100] + } + ], + links: [] + } + + const mockFile = createMockGltfFile({ + asset: { + version: '2.0', + generator: 'ComfyUI GLTF Test', + extras: { + workflow: testWorkflow + } + }, + scenes: [] + }) + + const metadata = await getGltfBinaryMetadata(mockFile) + + expect(metadata).toBeDefined() + expect(metadata.workflow).toBeDefined() + + const workflow = metadata.workflow as { + nodes: Array<{ id: number; type: string }> + } + expect(workflow.nodes[0].id).toBe(1) + expect(workflow.nodes[0].type).toBe('TestNode') + }) + + it('should extract prompt metadata from GLTF binary file', async () => { + const testPrompt = { + node1: { + class_type: 'TestNode', + inputs: { + seed: 123456 + } + } + } + + const mockFile = createMockGltfFile({ + asset: { + version: '2.0', + generator: 'ComfyUI GLTF Test', + extras: { + prompt: testPrompt + } + }, + scenes: [] + }) + + const metadata = await getGltfBinaryMetadata(mockFile) + expect(metadata).toBeDefined() + expect(metadata.prompt).toBeDefined() + + const prompt = metadata.prompt as Record + expect(prompt.node1.class_type).toBe('TestNode') + expect(prompt.node1.inputs.seed).toBe(123456) + }) + + it('should handle string JSON content', async () => { + const workflowStr = JSON.stringify({ + nodes: [{ id: 1, type: 'StringifiedNode' }], + links: [] + }) + + const mockFile = createMockGltfFile({ + asset: { + version: '2.0', + extras: { + workflow: workflowStr // As string instead of object + } + } + }) + + const metadata = await getGltfBinaryMetadata(mockFile) + + expect(metadata).toBeDefined() + expect(metadata.workflow).toBeDefined() + + const workflow = metadata.workflow as { + nodes: Array<{ id: number; type: string }> + } + expect(workflow.nodes[0].type).toBe('StringifiedNode') + }) + + it('should handle invalid GLTF binary files gracefully', async () => { + const invalidEmptyFile = new File([], 'invalid.glb') + const metadata = await getGltfBinaryMetadata(invalidEmptyFile) + expect(metadata).toEqual({}) + }) +})