From 99cc587abf3d969206e27fe22868f71e030e158b Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Sat, 26 Apr 2025 12:31:29 -0700 Subject: [PATCH] Load workflows from mp4/mov files (#3543) Co-authored-by: github-actions --- browser_tests/assets/workflow.m4v | Bin 0 -> 6332 bytes browser_tests/assets/workflow.mov | Bin 0 -> 6336 bytes browser_tests/assets/workflow.mp4 | Bin 0 -> 6163 bytes .../tests/loadWorkflowInMedia.spec.ts | 5 +- .../workflow-m4v-chromium-linux.png | Bin 0 -> 44836 bytes .../workflow-mov-chromium-linux.png | Bin 0 -> 44836 bytes .../workflow-mp4-chromium-linux.png | Bin 0 -> 44836 bytes src/scripts/app.ts | 15 + src/scripts/metadata/isobmff.ts | 272 ++++++++++++++++++ src/types/metadataTypes.ts | 9 +- 10 files changed, 299 insertions(+), 2 deletions(-) create mode 100644 browser_tests/assets/workflow.m4v create mode 100644 browser_tests/assets/workflow.mov create mode 100644 browser_tests/assets/workflow.mp4 create mode 100644 browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-m4v-chromium-linux.png create mode 100644 browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-mov-chromium-linux.png create mode 100644 browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-mp4-chromium-linux.png create mode 100644 src/scripts/metadata/isobmff.ts diff --git a/browser_tests/assets/workflow.m4v b/browser_tests/assets/workflow.m4v new file mode 100644 index 0000000000000000000000000000000000000000..3e1168905d4e3e7cf10e6030c4c3f5903f0e8ef2 GIT binary patch literal 6332 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 literal 0 HcmV?d00001 diff --git a/browser_tests/assets/workflow.mp4 b/browser_tests/assets/workflow.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..830e92314aa1a5f4ce18bb1be5e99a22bc34be2f GIT binary patch literal 6163 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 F`#)UEyc_@k literal 0 HcmV?d00001 diff --git a/browser_tests/tests/loadWorkflowInMedia.spec.ts b/browser_tests/tests/loadWorkflowInMedia.spec.ts index 561ed7491..39df2d77b 100644 --- a/browser_tests/tests/loadWorkflowInMedia.spec.ts +++ b/browser_tests/tests/loadWorkflowInMedia.spec.ts @@ -9,7 +9,10 @@ test.describe('Load Workflow in Media', () => { 'no_workflow.webp', 'large_workflow.webp', 'workflow.webm', - 'workflow.glb' + 'workflow.glb', + 'workflow.mp4', + 'workflow.mov', + 'workflow.m4v' ] fileNames.forEach(async (fileName) => { test(`Load workflow in ${fileName} (drop from filesystem)`, async ({ diff --git a/browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-m4v-chromium-linux.png b/browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-m4v-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..387644ce3f18d987c1c316b67af87fb3d3b7cb44 GIT binary patch literal 44836 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 literal 0 HcmV?d00001 diff --git a/browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-mov-chromium-linux.png b/browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-mov-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..387644ce3f18d987c1c316b67af87fb3d3b7cb44 GIT binary patch literal 44836 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 literal 0 HcmV?d00001 diff --git a/browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-mp4-chromium-linux.png b/browser_tests/tests/loadWorkflowInMedia.spec.ts-snapshots/workflow-mp4-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..387644ce3f18d987c1c316b67af87fb3d3b7cb44 GIT binary patch literal 44836 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 literal 0 HcmV?d00001 diff --git a/src/scripts/app.ts b/src/scripts/app.ts index 602fbd55a..26b9e41d1 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -27,6 +27,7 @@ import { import type { ComfyNodeDef as ComfyNodeDefV1 } from '@/schemas/nodeDefSchema' import { getFromWebmFile } from '@/scripts/metadata/ebml' import { getGltfBinaryMetadata } from '@/scripts/metadata/gltf' +import { getFromIsobmffFile } from '@/scripts/metadata/isobmff' import { useDialogService } from '@/services/dialogService' import { useExtensionService } from '@/services/extensionService' import { useLitegraphService } from '@/services/litegraphService' @@ -1333,6 +1334,20 @@ export class ComfyApp { } else { this.showErrorOnFileLoad(file) } + } else if ( + file.type === 'video/mp4' || + file.name?.endsWith('.mp4') || + file.name?.endsWith('.mov') || + file.name?.endsWith('.m4v') || + file.type === 'video/quicktime' || + file.type === 'video/x-m4v' + ) { + const mp4Info = await getFromIsobmffFile(file) + if (mp4Info.workflow) { + this.loadGraphData(mp4Info.workflow, true, true, fileName) + } else if (mp4Info.prompt) { + this.loadApiJson(mp4Info.prompt, fileName) + } } else if ( file.type === 'model/gltf-binary' || file.name?.endsWith('.glb') diff --git a/src/scripts/metadata/isobmff.ts b/src/scripts/metadata/isobmff.ts new file mode 100644 index 000000000..cf0bab35f --- /dev/null +++ b/src/scripts/metadata/isobmff.ts @@ -0,0 +1,272 @@ +import { + ComfyApiWorkflow, + ComfyWorkflowJSON +} from '@/schemas/comfyWorkflowSchema' +import { + ASCII, + ComfyMetadata, + ComfyMetadataTags, + IsobmffBoxContentRange +} from '@/types/metadataTypes' + +const MAX_READ_BYTES = 2 * 1024 * 1024 +const BOX_TYPES = { + USER_DATA: [0x75, 0x64, 0x74, 0x61], + META_DATA: [0x6d, 0x65, 0x74, 0x61], + ITEM_LIST: [0x69, 0x6c, 0x73, 0x74], + KEYS: [0x6b, 0x65, 0x79, 0x73], + DATA: [0x64, 0x61, 0x74, 0x61], + MOVIE: [0x6d, 0x6f, 0x6f, 0x76] +} +const SIZES = { + HEADER: 8, + VERSION: 4, + LOCALE: 4, + ITEM_MIN: 8 +} + +const bufferMatchesBoxType = ( + data: Uint8Array, + pos: number, + boxType: number[] +): boolean => { + if (pos + 4 > data.length) return false + + for (let i = 0; i < 4; i++) { + if (data[pos + i] !== boxType[i]) return false + } + return true +} + +const readUint32 = (data: Uint8Array, pos: number): number => { + if (pos + 4 > data.length) return 0 + return ( + (data[pos] << 24) | + (data[pos + 1] << 16) | + (data[pos + 2] << 8) | + data[pos + 3] + ) +} + +const findIsobmffBoxByType = ( + data: Uint8Array, + startPos: number, + endPos: number, + boxType: number[] +): IsobmffBoxContentRange => { + for (let pos = startPos; pos < endPos - 8; pos++) { + const size = readUint32(data, pos) + if (size < SIZES.ITEM_MIN) continue // Minimum size is 8 bytes + + if (bufferMatchesBoxType(data, pos + 4, boxType)) + return { start: pos + SIZES.HEADER, end: pos + size } // Skip header + + // If type doesn't match, ensure size is valid before skipping + if (pos + size > endPos) return null + + pos += size - 1 // Skip to the next potential box start + } + return null +} + +const extractJson = (data: Uint8Array, start: number, end: number): any => { + let jsonStart = start + while (jsonStart < end && data[jsonStart] !== ASCII.OPEN_BRACE) { + jsonStart++ + } + if (jsonStart >= end) return null + + try { + const jsonText = new TextDecoder().decode(data.slice(jsonStart, end)) + return JSON.parse(jsonText) + } catch { + return null + } +} + +const readUtf8String = (data: Uint8Array, start: number, end: number): string => + new TextDecoder().decode(data.slice(start, end)) + +const parseKeysBox = ( + data: Uint8Array, + keysBoxStart: number, + keysBoxEnd: number +): Map => { + const keysMap = new Map() + let pos = keysBoxStart + 4 // Skip version/flags + if (pos + 4 > keysBoxEnd) return keysMap + + const entryCount = readUint32(data, pos) + pos += 4 + + for (let i = 1; i <= entryCount; i++) { + // Keys are 1-indexed + if (pos + SIZES.HEADER > keysBoxEnd) break + + const keySize = readUint32(data, pos) + pos += SIZES.HEADER + + const keyNameEnd = pos + keySize - SIZES.HEADER + if (keySize < SIZES.ITEM_MIN || keyNameEnd > keysBoxEnd) break + + const keyName = readUtf8String(data, pos, keyNameEnd) + keysMap.set(i, keyName) + pos = keyNameEnd + } + return keysMap +} + +const extractMetadataValueFromDataBox = ( + data: Uint8Array, + dataBoxStart: number, + dataBoxEnd: number, + keyName: string +): ComfyWorkflowJSON | ComfyApiWorkflow | null => { + const valueStart = dataBoxStart + SIZES.VERSION + SIZES.LOCALE + if (valueStart >= dataBoxEnd) return null + + const lowerKeyName = keyName.toLowerCase() + if ( + lowerKeyName === ComfyMetadataTags.PROMPT.toLowerCase() || + lowerKeyName === ComfyMetadataTags.WORKFLOW.toLowerCase() + ) { + return extractJson(data, valueStart, dataBoxEnd) || null + } + return null +} + +const parseIlstItem = ( + data: Uint8Array, + itemStart: number, + itemEnd: number, + keysMap: Map, + metadata: ComfyMetadata +) => { + if (itemStart + SIZES.HEADER > itemEnd) return + + const itemIndex = readUint32(data, itemStart + 4) + const keyName = keysMap.get(itemIndex) + if (!keyName) return + + const dataBox = findIsobmffBoxByType( + data, + itemStart + SIZES.HEADER, + itemEnd, + BOX_TYPES.DATA + ) + if (dataBox) { + const value = extractMetadataValueFromDataBox( + data, + dataBox.start, + dataBox.end, + keyName + ) + if (value !== null) { + metadata[keyName.toLowerCase() as keyof ComfyMetadata] = value + } + } +} + +const parseIlstBox = ( + data: Uint8Array, + ilstStart: number, + ilstEnd: number, + keysMap: Map, + metadata: ComfyMetadata +) => { + let pos = ilstStart + while (pos < ilstEnd - SIZES.HEADER) { + const itemSize = readUint32(data, pos) + if (itemSize <= SIZES.HEADER || pos + itemSize > ilstEnd) break // Invalid item size + parseIlstItem(data, pos, pos + itemSize, keysMap, metadata) + pos += itemSize + } +} + +const findUserDataBox = (data: Uint8Array): IsobmffBoxContentRange => { + let userDataBox: IsobmffBoxContentRange = null + + // Metadata can be in 'udta' at top level or inside 'moov' + userDataBox = findIsobmffBoxByType(data, 0, data.length, BOX_TYPES.USER_DATA) + + if (!userDataBox) { + const moovBox = findIsobmffBoxByType(data, 0, data.length, BOX_TYPES.MOVIE) + if (moovBox) { + userDataBox = findIsobmffBoxByType( + data, + moovBox.start, + moovBox.end, + BOX_TYPES.USER_DATA + ) + } + } + return userDataBox +} + +const parseIsobmffMetadata = (data: Uint8Array): ComfyMetadata => { + const metadata: ComfyMetadata = {} + const userDataBox = findUserDataBox(data) + if (!userDataBox) return metadata + + const metaBox = findIsobmffBoxByType( + data, + userDataBox.start, + userDataBox.end, + BOX_TYPES.META_DATA + ) + if (!metaBox) return metadata + + const metaContentStart = metaBox.start + SIZES.VERSION + const keysBox = findIsobmffBoxByType( + data, + metaContentStart, + metaBox.end, + BOX_TYPES.KEYS + ) + if (!keysBox) return metadata + + const keysMap = parseKeysBox(data, keysBox.start, keysBox.end) + if (keysMap.size === 0) return metadata // keys box is empty or failed to parse + + const ilstBox = findIsobmffBoxByType( + data, + metaContentStart, + metaBox.end, + BOX_TYPES.ITEM_LIST + ) + if (!ilstBox) return metadata + + parseIlstBox(data, ilstBox.start, ilstBox.end, keysMap, metadata) + + return metadata +} + +/** + * Extracts ComfyUI Workflow metadata from an ISO Base Media File Format (ISOBMFF) file + * (e.g., MP4, MOV) by parsing the `udta.meta.keys` and `udta.meta.ilst` boxes. + * @param file - The file to extract metadata from. + */ +export function getFromIsobmffFile(file: File): Promise { + return new Promise((resolve) => { + const reader = new FileReader() + reader.onload = (event: ProgressEvent) => { + if (!event.target?.result) { + resolve({}) + return + } + + try { + const data = new Uint8Array(event.target.result as ArrayBuffer) + resolve(parseIsobmffMetadata(data)) + } catch (e) { + console.error('Parser: Error parsing ISOBMFF metadata:', e) + resolve({}) + } + } + reader.onerror = (err) => { + console.error('FileReader: Error reading ISOBMFF file:', err) + resolve({}) + } + reader.readAsArrayBuffer(file.slice(0, MAX_READ_BYTES)) + }) +} diff --git a/src/types/metadataTypes.ts b/src/types/metadataTypes.ts index 27449a8d5..9170ef6d4 100644 --- a/src/types/metadataTypes.ts +++ b/src/types/metadataTypes.ts @@ -46,7 +46,8 @@ export type TextRange = { export enum ASCII { GLTF = 0x46546c67, - JSON = 0x4e4f534a + JSON = 0x4e4f534a, + OPEN_BRACE = 0x7b } export enum GltfSizeBytes { @@ -78,3 +79,9 @@ export type GltfJsonData = { } [key: string]: any } + +/** + * Represents the content range [start, end) of an ISOBMFF box, excluding its header. + * Null if the box was not found. + */ +export type IsobmffBoxContentRange = { start: number; end: number } | null