〽️ Majoor Gen Info Override
Majoor Gen Info Override
- workflow_context
- geninfo_override
The short version
Majoor Gen Info Override doesn't generate anything. No image goes through it, nothing is sampled. It's a metadata builder whose whole job is to hand an explicit, finished "generation info" payload to Majoor Save Image or Majoor Save Video so those nodes write it into the saved file. You reach for it when the automatic graph tracing those save nodes do can't reliably work out what actually happened - prompts, seed, sampler settings, model, LoRAs - or when you want the recorded info to say something different from what a naive reading of the graph would produce.
It's a niche node, and that's okay. Most workflows will never need it. But when you're producing a client batch, a dataset, or a careful A/B study where the recorded gen info has to be right, it's the tool.
How it works
The node builds a MAJOOR_GENINFO payload and sends it out on a single geninfo_override socket. You wire that straight into the matching geninfo_override input on either Majoor save node. Pure metadata plumbing - the payload gets embedded into the PNG text chunks or MP4 container alongside everything else.
The clever part is the fallback logic. Your explicit values take precedence, but the node also inspects the actual prompt graph and workflow metadata to fill in the gaps. Leave a field at its default (-1 or empty string) and it tries to backfill that field from the real graph context - the seed, sampler, and scheduler the graph actually used. Connect workflow_context to a late node (the tooltip suggests a VAE Decode IMAGE output) and the override executes after the graph has run, with full context to draw from. Wire that only if the auto-detection is still missing things; it's not required.
The inputs you'll actually touch
positive_promptandnegative_prompt(multiline) - required. What you want recorded with the file.seed,steps,cfg,denoise- leave at-1to mean "don't override, use the graph's value."sampler,scheduler,model,vae,clip- plain strings; empty means unset.loras_json- a JSON array like[{"name":"lora.safetensors","strength":0.8}].workflow_notes- free-text note attached to the metadata.custom_info_json- an array of{"title":"...","content":"...","color":"#4CAF50"}blocks for extra info you want displayed.workflow_context(wildcard) - connect a late node for full-graph context.
Output: the geninfo_override socket (type MAJOOR_GENINFO), wired into Majoor Save Image or Majoor Save Video.
The trap to watch for
The -1/empty-string sentinel convention will bite you once. seed = -1 does not mean "record seed -1" - it means "I'm not saying, go figure it out." Same for steps, cfg, denoise. It's consistent with the save nodes' auto-detect behavior, but remember which fields are "explicit" and which are "let the graph decide" before you assume your override landed.
Install
Same pack, same steps as its siblings:
cd ComfyUI/custom_nodes
git clone https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager
cd ComfyUI-Majoor-AssetsManager
pip install -r requirements.txt
Or just search "Majoor Assets Manager" in ComfyUI Manager, install, and restart. The node comes as part of the pack's three-node bundle, no extra model files to download.
When you actually need it
Straight answer: when the save nodes' auto-tracing is good enough, skip this entirely - you're adding a node for nothing. Add it when your graph uses an unusual sampler setup the tracer misreads, when the recorded prompt would otherwise be wrong, or when you're deliberately annotating outputs with notes. It's fiddly but targeted, and it beats editing PNG text chunks by hand after the fact.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| positive_prompt | STRING | — | |
| negative_prompt | STRING | — | |
| workflow_contextopt | * | Optional dependency input. Connect a late workflow node, for example VAE Decode IMAGE, so this node runs with full graph context. | |
| seedopt | INT | -1-1–18446744073709550000 | — |
| stepsopt | INT | -1 | — |
| cfgopt | FLOAT | -1.0 | — |
| sampleropt | STRING | — | |
| scheduleropt | STRING | — | |
| modelopt | STRING | — | |
| vaeopt | STRING | — | |
| clipopt | STRING | — | |
| denoiseopt | FLOAT | -1.00-1–1 | — |
| loras_jsonopt | STRING | JSON array: [{"name":"lora.safetensors","strength":0.8}] | |
| workflow_notesopt | STRING | — | |
| custom_info_jsonopt | STRING | JSON array: [{"title":"Notes","content":"...","color":"#4CAF50"}] |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| geninfo_override | MAJOOR_GENINFO | — |