Nodes/ComfyUI-PromptMaker-PNGTuber/PNGTuber Generated Eye Sprite Applier (blink)
ComfyUI Node

PNGTuber Generated Eye Sprite Applier (blink)

Swap Qwen-generated blink shapes into a bundle

By hobi2k·Created 3 months ago·Updated 3 months ago· 0
PNGTuber Generated Eye Sprite Applier (blink)
  • open_image
  • half_image
  • closed_image
  • bundle_manifest
  • eye_sprite_atlas
  • eye_open
  • eye_half
  • eye_closed
bundle_manifest_path
sprite_size512
overwrite_existingtrue

This node is the eye mirror of PNGTuber Generated Mouth Sprite Applier, and it exists for the same reason: video extraction gives you great "open" eyes and nothing usable for a blink. So you generate the closed and half-closed eyelid art with a local Qwen edit pass, then use this applier to drop it into an existing eye bundle.

It expects a bundle that already has an eye_sprite_atlas.json - the natural producer is PNGTuber Video Eye Builder, which leaves you an atlas skeleton plus a reference_eye_crop and generation plan. You run the Qwen pass on that crop, connect the results here, and the applier writes the finished sprites, rotates them across the angle bins, and updates the manifest and atlas with modelGeneration metadata.

Inputs and outputs

  • bundle_manifest_path - the manifest (or bundle directory) from the eye builder.
  • sprite_size (512) - match the bundle's resolution.
  • overwrite_existing (true) - replace sprites already on disk.
  • open_image / half_image / closed_image - optional IMAGE inputs; at least one is required. Unlike the mouth applier's five slots, the eye version takes three, and you can feed just closed_image if that's the only broken shape.

Outputs: bundle_manifest, eye_sprite_atlas, eye_open, eye_half, eye_closed - updated paths, not the pixel data.

Install

Same pack - Manager search for ComfyUI-PromptMaker-PNGTuber, or clone + pip install -r requirements.txt + restart:

cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/hobi2k/ComfyUI-PromptMaker-PNGTuber.git
cd /path/to/ComfyUI
python -m pip install -r custom_nodes/ComfyUI-PromptMaker-PNGTuber/requirements.txt

The applier itself adds no new dependencies - the heavy lifting is upstream, in whatever generates the eye images you feed it. If you're generating those with the pack's Qwen stack, that's where the model downloads live.

Notes and failure modes

  • "Provide at least one generated eye image" - all three inputs empty. It won't run on a bundle alone; that's the point.
  • "Eye sprite atlas not found" - you pointed it at a mouth bundle by accident, or at a manifest that predates the eye extension. The eye nodes live in the pack's eye_nodes.py extension, so if you don't see them at all, the extension failed to import - check the ComfyUI console for the warning line and restart after updating.
  • Bad-looking closed eyes - again Qwen identity drift. The negative prompt in the eye stack fights "different character / changed face," but stylized art still drifts. Iterate on the Qwen pass, not the applier; the applier faithfully writes whatever you hand it.
CategoryPNGTuber/Video Eyes

Inputs (6)

NameTypeDefaultDescription
bundle_manifest_pathSTRING
sprite_sizeINT512128–2048
overwrite_existingBOOLEANtrue
open_imageoptIMAGE
half_imageoptIMAGE
closed_imageoptIMAGE

Outputs (5)

NameTypeDescription
bundle_manifestSTRING
eye_sprite_atlasSTRING
eye_openSTRING
eye_halfSTRING
eye_closedSTRING