Nodes/PNG Info for ComfyUI/PNG Info for ComfyUI
ComfyUI Node

PNG Info for ComfyUI

Your A1111 archive finally speaks ComfyUI

By Gerbesh·Created about a month ago·Updated 10 days ago· 2
PNG Info for ComfyUI
    • seed
    • steps
    • cfg
    • sampler_name
    • scheduler
    • denoise
    • ckpt_name
    • lora_01
    • strength_01
    • lora_02
    • strength_02
    • lora_03
    • strength_03
    • lora_04
    • strength_04
    • positive_prompt
    • negative_prompt
    • status
    image

    Every PNG you've ever generated is a receipt. Automatic1111 bakes the full recipe into a parameters text chunk - prompt, negative, seed, steps, CFG, sampler, scheduler, model, LoRAs - and ComfyUI embeds its own prompt graph the same way. The catch is that only ComfyUI knows how to load that ComfyUI graph back. Drag an A1111 PNG into ComfyUI and you get pixels and nothing else; you retype every setting by hand, squinting at the info tab. PNG Info for ComfyUI is the node that fixes that one specific, very real annoyance.

    It reads generation settings out of either metadata format and applies them to a KSampler branch you already have built - your checkpoint loader, your CLIP text encodes, your LoRA stack stay exactly where they are. It doesn't rebuild your workflow from the PNG, it just fills in the numbers. That's the key difference from the handful of read-only "show me the metadata" nodes floating around, and it's why this one is worth installing.

    How it works

    The backend (png_info_node.py + png_info_parser.py) opens the PNG with Pillow and reads its text chunks without touching pixels. For an A1111 file it parses the parameters chunk: splits positive/negative prompt, strips <lora:name:weight> tags into separate LoRA values, and normalizes A1111 sampler names (so DPM++ 2M SDE becomes ComfyUI's dpmpp_2m_sde, Schedule type: Karras becomes the karras scheduler). For a ComfyUI PNG it walks the embedded prompt JSON, finds the KSampler, and traces upstream through the model link to the checkpoint and LoRAs and back to the CLIP text encodes for the prompts.

    The genuinely smart part is asset matching. A1111 stored Model: realcartoonPony_v2, your file is realcartoonPony_v2.safetensors in a subfolder - it resolves that by exact relative path, then filename, then unique filename stem, and even uses the LoRA hashes A1111 records when it has to. It never does fuzzy guessing; if a checkpoint isn't installed, it leaves the loader alone and says so in the status output.

    The frontend part is what makes it feel magical. Click Bind all connected nodes & detach and it stores the IDs of five target nodes (checkpoint loader, both CLIP text encodes, KSampler, LoRA loader) in the workflow, rips out all the temporary wires, and immediately applies the current PNG. Every widget stays editable - the bind is a saved shortcut, not a lock-in.

    The inputs and outputs that matter

    You set exactly one input: image. Upload or pick a PNG from your input folder, and the node does the rest.

    The 17 outputs are typed to plug straight into the standard pipeline: seed, steps, cfg, sampler_name, scheduler, denoise, ckpt_name, four lora_01lora_04 / strength_01strength_04 pairs, positive_prompt, negative_prompt. For Lora Loader Stack (rgthree) and Power Lora Loader (rgthree) they land on the right sockets by name. The one output beginners overlook is status - it tells you the source format (A1111 or ComfyUI) and, critically, whether anything failed to resolve, like a missing LoRA set to None or "Checkpoint not installed".

    Installing

    Grab it from ComfyUI Manager (search "PNG Info for ComfyUI") or the registry:

    comfy node install png-info
    

    Manual clone works too:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Gerbesh/png-info-for-comfyui.git
    

    Then restart ComfyUI and look under the PNG Info category. The only dependency is Pillow, which ComfyUI already ships - no models, no weights, no keys. This is one of the rare packs you can install without reading a model card.

    Common gotchas

    • Bind all 17 outputs for Lora Loader Stack. For Power Lora Loader, leave the eight LoRA outputs disconnected - the node finds the loader itself, populates the first four rows, and disables stale ones.
    • More than four LoRAs in the metadata? First four win, with a warning in status.
    • Multiple sampler branches in a ComfyUI PNG - it picks the one wired to a save/preview and tells you which.
    • Clear binding before wiring a different target set, or the old nodes keep getting your numbers.
    • A PNG with no generation metadata just errors out with "No supported A1111 or ComfyUI metadata found" - that's the file, not the node.

    If you live in the A1111 half of the community and the migration to ComfyUI has been a wall of re-typing, this is the bridge. Bind once, apply forever.

    CategoryPNG Info

    Inputs (1)

    NameTypeDefaultDescription
    imageCOMBO1 options: example.png

    Outputs (18)

    NameTypeDescription
    seedINT
    stepsINT
    cfgFLOAT
    sampler_nameeuler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_2m_sde_heun,dpmpp_2m_sde_heun_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2
    schedulersimple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal
    denoiseFLOAT
    ckpt_name
    lora_01None
    strength_01FLOAT
    lora_02None
    strength_02FLOAT
    lora_03None
    strength_03FLOAT
    lora_04None
    strength_04FLOAT
    positive_promptSTRING
    negative_promptSTRING
    statusSTRING