Loading...
Loading...
Cheat Sheet
Every metadata field ComfyUI embeds — what it is, where it comes from, and what survives editing
numonic.ai
AI-Native Asset Management
ComfyUI embeds two text chunks in every PNG it saves. These are the root of all extractable metadata.
| Field | Type | Produced By | Description |
|---|---|---|---|
prompt | JSON string | All workflows | Execution-format workflow: node map with class_type and inputs for every node. This is the machine-readable version. |
workflow | JSON string | All workflows | UI-format workflow: node positions, links array, visual layout. This is what you see in the ComfyUI editor. |
Core generation settings extracted from sampler and latent image nodes in the workflow.
| Field | Type | Produced By | Description |
|---|---|---|---|
steps | number | KSamplerKSamplerAdvanced | Number of denoising steps. |
cfg | number | KSamplerKSamplerAdvanced | Classifier-free guidance scale. Higher values follow the prompt more closely. |
sampler | string | KSamplerKSamplerAdvanced | Sampler algorithm name (e.g., euler, dpmpp_2m, uni_pc). |
scheduler | string | KSamplerKSamplerAdvanced | Noise scheduler (e.g., normal, karras, exponential, sgm_uniform). |
seed | number | KSamplerKSamplerAdvanced | Random seed for reproducibility. Same seed + same settings = same image. |
denoise | number | KSamplerKSamplerAdvanced | Denoising strength (0.0–1.0). Lower values preserve more of the input image. |
width | number | EmptyLatentImageEmptySD3LatentImage | Output image width in pixels. |
height | number | EmptyLatentImageEmptySD3LatentImage | Output image height in pixels. |
batchSize | number | EmptyLatentImageEmptySD3LatentImage | Number of images generated per batch. |
model | string | CheckpointLoaderSimpleCheckpointLoader | Checkpoint filename (e.g., sd_xl_base_1.0.safetensors). Filename only, not the model contents. |
Positive and negative text prompts extracted from CLIP encoding nodes.
| Field | Type | Produced By | Description |
|---|---|---|---|
prompt | string | CLIPTextEncode | Positive prompt text. Extracted from the first non-negative CLIPTextEncode node found. |
negativePrompt | string | CLIPTextEncode | Negative prompt text. Identified by node title containing "negative" or "neg". |
All model files referenced in the workflow — checkpoints, LoRAs, VAEs, and ControlNets.
| Field | Type | Produced By | Description |
|---|---|---|---|
models[].type | string enum | All loader nodes | Model type: checkpoint, lora, vae, controlnet, or other. Inferred from the loader node type. |
models[].name | string | CheckpointLoaderSimpleLoraLoaderVAELoaderControlNetLoader | Model filename from the loader node input (ckpt_name, lora_name, vae_name, or control_net_name). |
models[].hash | string | null | Optional | Model file hash for deduplication. Not always populated — depends on the workflow configuration. |
models[].config | object | null | LoraLoaderCustom nodes | Additional configuration: LoRA strength_model/strength_clip, custom node parameters. |
Fields extracted from MP4 files created by video output nodes (ComfyUI-VideoHelperSuite, AnimateDiff).
| Field | Type | Produced By | Description |
|---|---|---|---|
frameRate | number | VHS_VideoCombineAnimateDiffCombine | Output video frame rate (fps). |
videoFormat | string | VHS_VideoCombine | Video container format (e.g., video/h264-mp4). |
crf | number | VHS_VideoCombine | Constant Rate Factor — quality setting where lower = better quality, higher = smaller file. |
pixelFormat | string | VHS_VideoCombine | Pixel format (e.g., yuv420p, yuv444p). |
loopCount | number | VHS_VideoCombine | Number of times the video loops (0 = no loop). |
pingpong | boolean | VHS_VideoCombine | Whether the video plays forward then backward for seamless looping. |
width / height | number | MP4 container | Video dimensions in pixels (from container metadata). |
duration | number | MP4 container | Video duration in seconds. |
bitRate | number | MP4 container | Video bitrate in bits per second. |
codec | string | MP4 container | Video codec (e.g., h264, h265). |
encoder | string | MP4 container | Encoder software name (from the MP4 ©too atom). |
ComfyUI metadata lives inside PNG text chunks. Any operation that strips or re-encodes the image can destroy it.
| Metadata | Original PNG | PNG Re-save | PNG→JPEG/WebP | Social Upload | Numonic (stored) | Numonic Export |
|---|---|---|---|---|---|---|
| Workflow JSON | Kept | Kept | Lost | Lost | Kept | Depends on preset |
| Prompt data | Kept | Kept | Lost | Lost | Kept | Depends on preset |
| Generation params | Kept | Kept | Lost | Lost | Kept | Depends on preset |
| Model names | Kept | Kept | Lost | Lost | Kept | Depends on preset |
| Seed values | Kept | Kept | Lost | Lost | Kept | Depends on preset |
| EXIF technical | Kept | Kept | Kept | Depends on preset | Kept | Kept |
| Artist / Copyright | Kept | Kept | Kept | Lost | Kept | Depends on preset |
Numonic never loses your metadata. The Stored column shows what Numonic keeps internally — everything, always. The Export column shows what ends up in the exported file, which you control via presets: Archive keeps everything, Portfolio keeps attribution but strips workflows, and Share strips sensitive data for social media. Your originals and metadata are never touched.
Always keep your original PNGs. ComfyUI embeds the full workflow, prompt, and generation parameters directly in the PNG file. Converting to JPEG, WebP, or any other format permanently destroys this metadata. Treat your original PNGs as "digital negatives" — copy them for sharing, never move or convert the originals.
Better yet, automate it. Numonic reads every field in this reference on import, stores it in a searchable database, and lets you export with full control over what metadata to include. Your originals stay untouched.
Every field on this page is automatically extracted, searchable, and preserved when you import to Numonic. Search by seed, filter by model, export with the metadata you choose.
From The Complete Guide to ComfyUI Asset Management — numonic.ai/guides/comfyui-asset-management
Free to share and print. Try Numonic free · Attribution appreciated.