PenetrateStyle
The node that lays out a whole sticker sheet for you
- sticker_set_path
- single_sticker_path
- circumcircle_sticker_path
- main_sticker_path
- image
PenetrateStyle is the WPX pack's layout engine - the node that assembles a full sticker sheet rather than a single collage. You give it several sticker collections and it builds a poster on a white background, split into rows, with each row arranged in one of five different "styles." Think of a sticker catalog page: one row of stacked sets, one row of scattered singles, one row with each sticker ringed by a drawn circle. It's the kind of presentation art that sells sticker packs, and it's the most opinionated node in the pack - which is also where you can get burned.
The five styles
- style1 - staggered stack: sticker-set images layered with offsets, like a fan of overlapping sheets.
- style2 - random scatter: individual stickers dropped in rows with varied sizes and spacing.
- style3 - circumcircle: single stickers, each with a drawn circle around it.
- style4 - rotated columns: sticker sets stacked in columns with progressive rotation.
- style5 - centerpiece: a sticker set with your
main_sticker_pathhero in the middle.
You pick one per row via row1_style, row2_style, row3_style (each an enum with those five choices), and nudge each row vertically with row1_y_offset / row2_y_offset / row3_y_offset.
The inputs that matter
Four image inputs feed the styles: sticker_set_path (composite/sticker-set images for styles 1, 4, 5), single_sticker_path (individual stickers for style 2), circumcircle_sticker_path (the stickers shown inside drawn circles for style 3), and main_sticker_path (the hero for style 5). All take batches.
Then the layout knobs: bg_width / bg_height (default 1600×1600 canvas), rows / cols (the grid split; defaults 3×1), sticker_set_cols (columns of sticker-sets within a style1/4/5 row, default 4), random_stickers_rows (row count for style2, default 3), and sticker_contour_num (how many circumcircle stickers in a style3 row, default 4).
Output: a single image - the finished sheet, RGBA, ready for a preview or save node.
The trap nobody warns you about
The style controls exist for exactly three rows, but the code loops over every grid cell (rows × cols) and indexes into that three-entry style list. So keep rows at 3 and cols at 1 - the defaults - or you'll hit an index error the moment there's a fourth cell. If you genuinely need more rows, you're outside what this node supports, not inside an undocumented feature.
Installing
ComfyUI Manager → search "ComfyUI WPX Nodes" → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/WangPengxing/ComfyUI_WPX_Node
# restart ComfyUI
No models, no keys. The pack imports rtree and scipy at startup - missing either and the whole WPX_Node menu vanishes. pip install rtree scipy and restart.
Troubleshooting
- IndexError with more than 3 cells. Set rows=3, cols=1 and design within that frame.
- A row looks empty. Each style pulls from a different input path. Style2 rows are empty if
single_sticker_pathisn't wired; style3 rows are empty withoutcircumcircle_sticker_path. Match the inputs to the styles you picked. [DEBUG]console spam and stray viewer windows. Par for the course in this 0.0.1 pack.
It's a one-maintainer, early-2025, zero-footprint pack - treat it as a working prototype, not a maintained library. But if your job is "produce sticker catalog pages," PenetrateStyle turns a pile of PNGs into a presentable sheet in one node.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| sticker_set_path | IMAGE | — | |
| single_sticker_path | IMAGE | — | |
| circumcircle_sticker_path | IMAGE | — | |
| main_sticker_path | IMAGE | — | |
| bg_width | INT | 16001–10000 | — |
| bg_height | INT | 16001–10000 | — |
| rows | INT | 31–10 | — |
| cols | INT | 11–10 | — |
| row1_style | COMBO | style1 | 5 options: style1, style2, style3, style4, style5 |
| row1_y_offset | INT | 0-1000–1000 | — |
| row2_style | COMBO | style2 | 5 options: style1, style2, style3, style4, style5 |
| row2_y_offset | INT | 0-1000–1000 | — |
| row3_style | COMBO | style3 | 5 options: style1, style2, style3, style4, style5 |
| row3_y_offset | INT | 0-1000–1000 | — |
| sticker_set_cols | INT | 41–10 | — |
| random_stickers_rows | INT | 31–10 | — |
| sticker_contour_num | INT | 41–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |