Nodes/MKRShift_Nodes/Export Preset
ComfyUI Node

Export Preset

One node that turns your render into a platform-ready export

By criskb·Created 7 months ago·Updated 5 months ago· 0
Export Preset
  • video
  • video
  • output_path
  • summary
presetyoutube_1080p
keep_audiotrue
filename_prefixMKR_export
subfolder
overwritefalse
filename_label

You've got a finished clip and you need it on YouTube, Reels, TikTok, or as a master. That's usually a trip to another app, or a maze of ffmpeg flags you'll forget by next week. MKRExportPreset is the ComfyUI-native version of that job: feed it any video you've produced and it re-encodes to a named platform preset, right inside the graph, no external encoder required.

This is the deliverable end of the MKRShift "publish/output" lane - the pack has a whole family of media nodes for editing, effects and muxing, and this one is where the clip stops being a work file and becomes something you can actually upload. What it's not: a transcode to arbitrary specs. You get six curated presets and you pick one.

The presets and what they actually do

The preset dropdown is the whole point, so here's the honest breakdown of what each one targets (resolution, fps, bitrate, container):

  • youtube_1080p - 1920×1080 @ 30, ~8000 kbps H.264, MP4. The default, and the one you'll reach for 90% of the time.
  • youtube_4k - 3840×2160 @ 30, ~30000 kbps, MP4.
  • reels_1080x1920 and tiktok_1080x1920 - vertical 1080×1920 @ 30, MP4. Yes, they're the same spec; it's the naming that differs.
  • square_1080 - 1080×1080 @ 30, MP4.
  • master_prores - 1920×1080 @ 24, Apple ProRes (proxy-ish profile 3, 10-bit 4:2:2), MOV. This one's for handing off to an editor or colorist, not uploading.

Under the hood it scales and letterboxes with force_original_aspect_ratio=decrease plus padding to the exact target - so a 16:9 source becomes a proper 9:16 reel with black bars, not a squashed one. It also normalizes the framerate. keep_audio (default on) muxes audio as AAC at 192k for the H.264 presets, or PCM for ProRes; switch it off when the clip shouldn't carry sound.

Outputs are a video (the MKR_VIDEO payload - wire it onward), output_path (where the file actually landed, under ComfyUI's output folder), and a summary JSON string. filename_prefix, subfolder and overwrite control naming, and filename_label lets you override the stem without touching the prefix.

The catch: ffmpeg

Here's where people get burned. This node is a thin wrapper around ffmpeg, and the README is explicit that you need ffmpeg installed and on your PATH. If it's not there, the node doesn't fail loudly - it falls back to a frame-based re-encode using Pillow, which drops audio entirely and isn't a real H.264/ProRes encode. So if your "master_prores" export comes back with no sound and you don't know why, check summary for a warning and install ffmpeg:

# Ubuntu/Debian
sudo apt install ffmpeg
# macOS (Homebrew)
brew install ffmpeg

If you set keep_audio off and don't mind the fallback, the node still works without ffmpeg - just don't expect broadcast-quality output. This is one of those pack-wide gotchas: the README calls out ffmpeg for "video/audio export and muxing nodes," and every one of those nodes silently degrades when it's missing.

Install the pack itself the usual way - ComfyUI Manager, search "MKRShift_Nodes", or git clone https://github.com/criskb/MKRShift_Nodes into custom_nodes/ and restart. No Python deps beyond the standard ComfyUI stack.

CategoryMKRShift Nodes/Media/IO

Inputs (7)

NameTypeDefaultDescription
video*
presetCOMBOyoutube_1080p6 options: youtube_1080p, youtube_4k, reels_1080x1920, tiktok_1080x1920, square_1080, master_prores
keep_audioBOOLEANtrue
filename_prefixSTRINGMKR_export
subfolderSTRING
overwriteBOOLEANfalse
filename_labeloptSTRING

Outputs (3)

NameTypeDescription
videoMKR_VIDEO
output_pathSTRING
summarySTRING