Nodes/Shima/Shima Noodman (Sprite Mascot)
ComfyUI Node

Shima Noodman (Sprite Mascot)

A tiny animated mascot that reacts to your workflow

By KDB-USJP·Created 6 months ago·Updated 6 months ago· 2
Shima Noodman (Sprite Mascot)
  • any_input
  • value
sprite_sheetSprite Sheet_examples.png
columns10
rows10
trigger_typeNumber Match
state_1_value1.0
state_2_value2.0
anim_idleA1
anim_state1A1-A10
anim_state2B1-B10
fps8
stop_after_runtrue
watch_node_id
scale1.0

Shima Noodman (Sprite Mascot) is the pack's mascot node and the most purely decorative thing in Shima: it plays a sprite-sheet animation on the canvas, and the animation it plays is chosen by the value you feed it. Feed it a 1 and it plays its State 1 animation; feed it a 2 and it plays State 2; feed it nothing and it idles. Noodman is the little character that shows up in Shima's promo material and Discord - this node is how he lives inside your actual workflow.

Is it useful? Genuinely, in exactly one way: it's an animated status display you can't ignore. A mascot that flips from idle to an alert animation when a value crosses a threshold is a far more legible "something changed" signal than a log line, especially on a shared or streamed workflow where you want a visitor to notice without reading the console. Think of it as the 3-State Indicator's charming cousin - same input-driven state logic, much better at getting attention.

It's also just the most fun node in the pack, and Shima is a pack with a very specific vibe - hardware-style panels, control-room lamps, a whole aesthetic. If you're building a template workflow you'll present, Noodman is seasoning, not structure. Don't build your graph around it; drop it in as a garnish.

How it works

It loads a sprite sheet (a grid image) from Shima/assets/sprites/, and you tell it the grid layout with columns and rows. You then define three animation sequences as frame references - anim_idle, anim_state1, anim_state2 - using notation like A1,A2,A3 or A1-A5, where A is the row letter and the number is the column. The any_input value is judged by a trigger_type (Number Match, Math, String, Regex, Boolean, Hardware Sync - the same family of modes as the indicator nodes) against state_1_value and state_2_value, which picks which sequence plays. fps sets playback speed (0 freezes on the first frame), and stop_after_run halts the animation when the workflow finishes - or you can point watch_node_id at a specific node and it stops when that node finishes, which is how you get a mascot that "works" during a slow step and rests after.

The sprite sheets themselves live in the pack's assets/sprites/ folder. Drop your own .png/.jpg/.webp grid in there and it appears in the sprite_sheet dropdown on restart - same pattern as the sticker and backdrop assets.

The inputs that matter

  • sprite_sheet, columns, rows - which sheet and how the grid is laid out.
  • trigger_type, state_1_value, state_2_value - how the input value picks a state.
  • anim_idle, anim_state1, anim_state2 - the three frame sequences.
  • fps, stop_after_run, watch_node_id - playback behavior.
  • scale - display size.

Optional input: any_input (any type) - leave it unconnected and it defaults to State 1. Output: value - the input passed through.

How to install it

In the Shima pack - ComfyUI Manager, search "Shima", or:

cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima

restart. The built-in sprite sheet ships with the pack; no downloads.

Common issues & troubleshooting

Mascot sits frozen. fps is 0 (freeze), or stop_after_run already stopped it, or watch_node_id points at a node that already finished. Bump fps and check the watch target.

Animation looks wrong / jumps around. Your columns/rows don't match the actual grid of the sheet, so frame references land on the wrong cells. Count the real grid, or use the built-in sheet to verify your sequence notation (A1-A5 = columns 1–5 of row A) before swapping in custom art.

CategoryShima/Design

Inputs (14)

NameTypeDefaultDescription
sprite_sheetCOMBOSprite Sheet_examples.pngSprite sheet image from Shima/assets/sprites/
columnsINT101–64Number of columns in the sprite grid
rowsINT101–64Number of rows in the sprite grid
trigger_typeCOMBONumber MatchHow the input value determines which animation to play
state_1_valueSTRING1.0Value that triggers State 1 animation
state_2_valueSTRING2.0Value that triggers State 2 animation
anim_idleSTRINGA1Frame sequence for Idle/Off state (e.g. A1,A2,A3 or A1-A5)
anim_state1STRINGA1-A10Frame sequence for State 1 (e.g. B1-B10)
anim_state2STRINGB1-B10Frame sequence for State 2 (e.g. C1-C10)
fpsINT80–30Playback speed (0 = frozen on first frame)
stop_after_runBOOLEANtrueStop animation when workflow execution finishes
watch_node_idSTRINGNode ID to watch — stops animation when that node finishes (overrides stop_after_run)
scaleFLOAT1.00.1–10Display size multiplier
any_inputopt*Input value for state evaluation

Outputs (1)

NameTypeDescription
value*