ComfyUI Extension: TJ_PolkaDot
ComfyUI custom nodes for creating polka dot collages
Custom Nodes (0)
README
TJ_PolkaDot
English | 日本語
ComfyUI用の水玉コラージュ生成カスタムノード集です。様々な形状のマスクを自動配置し、美しいコラージュ画像を簡単に作成できます。
注意: このプロジェクトは生成AIのサポートを受けて開発されています。一部、不完全な箇所や改善の余地がある可能性があります。問題を見つけた場合は、Issueでお知らせください。

特徴
- 🎨 10種類の形状: 円、ハート、星、ダイヤ、四角、六角形、三角、十字、月、花
- 🎯 高度な配置制御: 重なり率、カバレッジ、回転、スケールを細かく調整可能
- 🚫 除外マスク対応: 特定領域への配置を禁止
- 🔗 チェーン配置: 複数ノードを直列接続して段階的に配置
- 🎨 カラー合成: 最大3レイヤーのマスクを個別の色で合成
- 📏 画面外配置: はみ出し許容率を設定して、エッジまで自然に配置
- ⚡ 最適化された配置アルゴリズム: 占有領域を動的に除外し、効率的に配置
インストール
ComfyUI Manager経由(推奨)
- ComfyUI Managerを開く
- "Custom Nodes Manager"を選択
- "TJ_PolkaDot"を検索してインストール
- ComfyUIを再起動
ノード一覧
1. Shape Mask Generator(形状マスク生成)
単一の形状マスクを生成します。
パラメータ:
shape_type: 形状の種類(circle, heart, star, diamond, square, hexagon, triangle, cross, moon, flower)size: 形状のサイズ(ピクセル)rotation: 回転角度(度)scale: スケール倍率blur_radius: ぼかし半径
利用可能な形状:
- circle - 円形
- heart - ハート
- star - 星(5角星)
- diamond - ダイヤモンド
- square - 正方形
- hexagon - 六角形
- triangle - 三角形
- cross - 十字/プラス
- moon - 三日月
- flower - 花(5枚花弁)
2. Advanced Shape Placement(高度な形状配置)★メイン機能
形状マスクを領域内に複数配置します。
入力:
shape_mask: 配置する形状マスク(必須)region_mask: 配置可能領域を定義するマスク(オプション、省略時は全画面)base_mask: 既存の配置(チェーン接続用、オプション)exclusion_mask: 配置禁止領域(オプション)
パラメータ:
count: 配置する形状の数(デフォルト: 30)scale_min/scale_max: スケール範囲(デフォルト: 0.06 - 0.15)rotation_min/rotation_max: 回転角度範囲(度、デフォルト: -30 - 30)overlap_ratio: 重なり許容率(0-1、デフォルト: 0.5)- 0.0 = 重なり禁止
- 1.0 = 完全に重なってもOK
coverage_min: 領域内カバレッジ最小値(0-1、デフォルト: 0.0)- 0.0 = 少しでも領域内ならOK
- 1.0 = 完全に領域内に収まる必要あり
exclusion_tolerance: 除外領域への侵入許容率(0-1、デフォルト: 0.0)out_of_bounds_tolerance: 画面外へのはみ出し許容率(0-1、デフォルト: 0.0)- 0.0 = 完全に画面内に収まる必要あり
- 0.5 = 50%まで画面外に出てもOK(推奨)
max_consecutive_fails: 早期終了の連続失敗回数(デフォルト: 100)seed: ランダムシード
出力:
MASK (all): すべての配置を含む合成マスク(base_mask含む)MASK (new): このノードで新規追加した形状のみJSON: 各形状の位置・スケール・回転情報
3. Colored Mask Compositor(カラーマスク合成)
複数のマスクレイヤーを個別の色で合成します。
入力:
base_image: ベース画像mask_1/mask_2/mask_3: マスクレイヤー(オプション)
パラメータ(各レイヤー):
color_X_r/g/b: RGB色(0-255)opacity_X: 不透明度(0.0-1.0)blend_mode_X: ブレンドモード(normal, multiply, screen, overlay, add)
使用例
基本的な使い方
- Shape Mask Generatorで形状を作成
- Advanced Shape Placementで配置
- Colored Mask Compositorで色を付ける
チェーン配置
複数の形状を段階的に配置:
Shape(Heart) → Advanced Placement(count=50) → Advanced Placement(count=30, shape=Circle) → Compositor
↓
MASK (new) を次の base_mask に接続
除外マスク
人物などを避けて配置:
画像 → Mask生成 → Invert → exclusion_mask入力
パラメータ推奨値
密度の高い配置
count: 100-150
overlap_ratio: 0.7-0.8
out_of_bounds_tolerance: 0.3-0.5
散らばった配置
count: 20-40
overlap_ratio: 0.2-0.4
out_of_bounds_tolerance: 0.5
エッジまで配置
out_of_bounds_tolerance: 0.3以上
トラブルシューティング
配置数が目標に達しない
overlap_ratioを増やす(重なりを許容)max_consecutive_failsを増やすout_of_bounds_toleranceを増やす(エッジ配置を許容)exclusion_toleranceを増やす(除外領域を緩和)
配置が偏る
seedを変更してランダム性を変えるregion_maskを調整して配置可能領域を広げる
エッジに配置されない
out_of_bounds_toleranceを0.3〜0.5に設定
技術詳細
配置アルゴリズム
- 有効位置の取得:
region_maskから配置可能なピクセル座標を抽出 - シャッフル: 空間的な偏りを防ぐため座標をランダム化
- 動的除外: 配置済み領域を定期的に除外し、効率を向上
- 衝突判定: 重なり率、カバレッジ、除外領域をチェック
- 早期終了: 連続失敗が閾値を超えたら終了
パフォーマンス
- 150個の形状を159回の試行で配置(効率99.4%)
- 占有領域の動的除外により、密な配置でも高速
ライセンス
MIT License
作者
TJ16th
貢献
Issue、Pull Requestを歓迎します!
更新履歴
v0.1.0 (2025-11-03)
- 初回リリース
- 10種類の形状サポート
- 高度な配置制御
- チェーン配置対応
- カラー合成機能
- 画面外配置対応
- 配置効率の最適化