Nodes/ComfyUI-FakeEXIF/Save Image (Fake EXIF)
ComfyUI Node

Save Image (Fake EXIF)

Make your ComfyUI image pass as a phone photo (and kill the metadata leak)

By Bigornh2o·Created 3 months ago·Updated 3 months ago· 0
Save Image (Fake EXIF)
  • images
    filename_prefixIMG
    formatjpg
    camera_makeApple
    camera_modeliPhone 16 Pro Max
    latitude48.8566
    longitude2.3522

    The name undersells it. Save Image (Fake EXIF) isn't just about stamping a fake camera tag onto your output - it's a full metadata scrubber plus a disguise, in one node. If you've ever exported a ComfyUI image, opened it in a file inspector, and watched it hand over your entire workflow - prompt, negative, seed, checkpoint, every LoRA hash - you already know the problem it exists for. By default ComfyUI embeds the whole graph in the PNG, so "share the image" and "share the source code" are the same gesture until you strip it.

    This node replaces the stock SaveImage and does two things at once: it re-encodes your output so the embedded workflow/prompt chunks are gone, and it writes in plausible smartphone EXIF - iPhone 16 Pro Max, GPS coordinates, current timestamp - so the file reads like a photo a phone took, not a picture a GPU generated.

    Why you'd reach for it

    Two audiences. First, anyone who shares or sells images and doesn't want to broadcast the exact prompt and settings that made them. Second, the photorealism crowd: a file with no EXIF is one of the quiet tells that an image is synthetic. If you've already done the smartphone-snapshot LoRA and the "name a physical camera" prompt trickery, finishing with plausible EXIF is the last mile - and this node is that last mile, prebuilt.

    How it works

    The mechanism is boring on purpose. It uses the piexif library, converts your image tensor to a PIL image, builds a standard EXIF dict (camera make/model, DateTime in EXIF format, GPS latitude/longitude with N/S/E/W references, plus a Software field), and re-encodes through PIL. That re-encode is what actually nukes the ComfyUI metadata: re-encoding writes a fresh file from pixels, and the text chunks don't survive it. There's no explicit "strip" call - the re-encode just doesn't carry them.

    The fields you'll actually touch:

    • format - defaults to jpg, and keep it. JPEG is where EXIF lives naturally, and the README is right that JPG is the reliable choice. PNG technically gets the EXIF too, but viewer support for EXIF-in-PNG is patchier.
    • latitude / longitude - the trap. The defaults are 48.8566, 2.3522, which is central Paris. Leave them alone and every "photo" you export is geotagged to the Eiffel Tower's arrondissement. Set them to wherever the shot was supposedly taken, or something plausibly generic. Worth noting the inversion: you're adding location data here, not removing it.
    • camera_make / camera_model - default Apple / iPhone 16 Pro Max. Change them if the "photo" should have been taken on, say, a Galaxy or a Canon.
    • filename_prefix - defaults to IMG; the node appends the date and time plus an auto-incrementing counter, so you get IMG_20260821_143022_00001.jpg.

    One nitpick: the baked-in Software field is 17.4.1, a spring-2024 iOS release - a "16 Pro Max" still running it in 2026 is a hair anachronistic. Nobody's reading that closely, but it's there.

    It has no outputs. Like SaveImage, it's a terminal node, and it writes straight to ComfyUI/output/.

    Install

    One tiny dependency, zero model downloads. Through ComfyUI Manager, search "Fake EXIF" or "ComfyUI-FakeEXIF" and install. Or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Bigornh2o/ComfyUI-FakeEXIF.git
    cd ComfyUI-FakeEXIF
    pip install -r requirements.txt   # just piexif
    

    Restart ComfyUI and the node shows up in the image category.

    Where people get burned

    Keep expectations honest: fake EXIF fixes a metadata tell, not the whole detection game. In a 2023 r/StableDiffusion thread, someone who tried "inserting fake EXIF and copyright data" alongside every other trick in the book found AI detectors still flagged their images at ~99%. The pixel-level tells - skin texture, lighting physics, noise statistics - are where detection actually bites. Use this node because your metadata should be clean and plausible, not because it launders a generation.

    And the trade-off: as a JPEG, the file won't drag back into ComfyUI as a workflow anymore. If you might want to re-edit later, keep a PNG master from a normal SaveImage and treat the Fake EXIF output as the deliverable copy. Save the original, share the fake.

    Categoryimage

    Inputs (7)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_prefixSTRINGIMG
    formatCOMBOjpg2 options: jpg, png
    camera_makeSTRINGApple
    camera_modelSTRINGiPhone 16 Pro Max
    latitudeFLOAT48.8566-90–90
    longitudeFLOAT2.3522-180–180

    Outputs (0)

    No outputs