Community画像github.com

ppqwpe/banana-loop

Higgsfield上で画像生成を繰り返すコンソールスクリプトを、プロンプトを埋め込んで作成します。テキストのみの生成、同一オリジナルのバリアント、参照画像の順番入れ替え、参照フォルダの整理をサポート。キャラクター、ロゴ、プロダクト、背景、空間などの一般的な画像作業に対応し、動画生成は除外されます。

banana-loop とは?

このスキルは、Higgsfieldの画像生成を繰り返し実行するためのカスタムコンソールスクリプト(paste_into_console.js)を自動構築します。ユーザーが提供する素材(画像やあらすじ)とリクエストに基づいて、以下の3つの生成モードから最適な方法を選択します:①テキストのみ(既存の参照画像は無視)、②単一参照画像(アップロードした画像を維持しプロンプトのみ変更)、③参照フォルダ(複数の参照画像を順番に処理)。各参照画像に対して複数のプロンプトバリアントを生成し、Higgsfieldのフォルダモードを利用して一連の生成を自動化します。また、参照画像の並べ替えや整理のための「フォルダソーティング」機能も提供します。このスキルは、Claude Code、Cursor、CodexなどのAIエージェント上で動作し、ユーザーは生成されたコードをブラウザのコンソールに貼り付けて実行するだけで、手動での画像切り替えやプロンプト入力の手間を省き、効率的な画像生成ワークフローを実現します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ppqwpe/banana-loop/tree/HEAD

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Banana Loop

ユーザーが書いた言語で返信してください。

ユーザーのエントリポイントはクイックスタートです。初めてのユーザーにすべての内部ドキュメントを読ませないでください。以下のオンボーディング原則とエージェントワークフローガイドに従い、今必要なステップだけをガイドしてください。

ユーザーがチャットに何を書けばいいか尋ねてきた場合、またはすぐに使える例が必要な場合は、状況に合ったものをコピペ用リクエスト例から選んでください。すべての例を1回の返信に列挙しないでください。

初めてのユーザーへのガイド

  • スキル、画像、またはあらすじを受け取ったら、まずアクセスできる資料を読み、その後3~5文で資料の要約→推奨生成方法→次のステップを伝えてください。何かを読む前に、確認すると言ってください。読めなかった資料を確認したと言わないでください。最初の返信にインストール手順、完全な診断テーブル、長いコードを詰め込まないでください。具体的な例については、最初の返信テンプレートに従ってください。
  • ガイダンスでは、生成方法を**①テキストのみ ②1つの参照 ③参照フォルダ(順番)**と呼んでください。ユーザーが結果を説明した場合、エージェントは該当する方法を選択します。複数の画像があるがユーザーが1つだけを指定した場合は②です。画像が添付されているからといって、テキストリクエストに無理やり参照を割り当てないでください。
  • 資料だけが渡され、目標が不明確な場合、簡単に1つの可能なジョブを提案し、どのような結果を望むか尋ねてください。あらすじのすべてのシーンを自動的に生成し始めないでください。すでにジョブがリクエストされ、情報が十分な場合は、簡単なメモをして進めてください。同じことを承認のために止まらないでください。
  • まずユーザーが望む結果と提供された資料を明確にしてください。モード、スロット、ストライド、JSONなどの内部用語をユーザーに選択肢として押し付けないでください。
  • 情報が不足している場合、結果を左右する質問のみをグループ化して尋ねてください。「どのジョブか」「資料はどこにあるか」「いくつ必要か」のうち既に回答済みのものはスキップしてください。簡単な構成やスタイルの選択はリクエストの文脈から判断し、簡潔に言及してください。
  • 現在の段階が「ソートのみ」「初回実行」「結果の修正」「停止/再開」のいずれかを判断してください。ソートのみがリクエストされた場合はそこで停止してください。初回実行の場合は、最初に完成したファイルを提供し、少量で確認する方法を説明してください。修正リクエストの場合は、既存の資料、計画、共有エンジンを再利用してください。
  • ユーザーが行うこととエージェントが行うことを分けてください。資料の読み取り、名前のリンク付け、プロンプトの作成、構築、確認はエージェントの仕事です。ツールができないこと(ログイン、コンソールへの貼り付け、フォルダの選択)のみを、具体的にユーザーにガイドしてください。ファイル作成の前提条件としてブラウザ接続を必要としないでください。
  • 最初のハンドオフは、最新の実行ファイルリンク、参照の場所、今やるべきこと、確認の実際の範囲で終了します。エラーが発生した場合は、進行位置と症状を確認し、引き続き支援してください。短い返信を好むユーザーの希望は、回答形式よりも優先されます。
  • サポートされていない作業について、準備を始める前にユーザーに伝えてください。未実装の機能を利用可能な例として宣伝したり、ユーザーに失敗するコードを試させたりしないでください。

ジョブの説明と提供された資料を読み、プロンプト、エンジン、パネルを含む1つのpaste_into_console.jsを構築してください。特定のプロジェクト、アカウント、フォルダ、エージェントに結び付けないでください。ファイルを読み取り、Pythonを実行できるエージェントで使用してください。これはアルファバージョンです。

中核となる動作原理

リクエストに合った3つの方法のいずれかを選択してください。テキスト生成はプロンプトのみを交換します。単一参照生成はオリジナルを保持します。複数の参照を使用する順次生成は1つの参照→そのオリジナルの準備されたすべてのプロンプトを実行→既存の参照を削除→次の参照をアップロード→次のプロンプトグループを実行です。エージェントは画像ごとのプロンプトと実行順序を準備し、ユーザーは必要に応じてフォルダを接続して開始します。1つのグループ内では常に同じオリジナルを維持し、生成結果を次のオリジナルとして使用しないでください。

画像ごとのプロンプト数はリクエストによって異なります。6に固定したり、すべての画像に同じ文を適用したりしないでください。コンポジットのためにキャラクターと背景を合わせるようユーザーに依頼しないでください。また、マルチ参照機能をデフォルトのジョブに拡張しないでください。参照なしの生成や単一オリジナルの維持もサポートされています。

現在のエンジン0.3.2-alpha.6のフォルダモードは、この順次スワップ構造を実装しています。実際に受け入れられたリクエストの検証範囲はreferences/release-checks.mdに記録されています。グループのリクエストが処理されると次の画像に移動します。画像のレンダリングが終わるのを待っていると説明しないでください。最後の画像の後に終了し、ユーザーが完全な繰り返しを要求した場合にのみ無限ループがオンになります。順次ジョブではシャッフルはオフになります。

ジョブの理解とモードの選択

初回使用時は、環境チェックとエージェント応答ガイドラインを読んでください。次の順序で進めてください:環境チェック→カットごとの資料とプロンプト→完成した実行ファイルと簡単な開始ガイド→証拠に基づくエラーハンドリング。ファイルアクセス、コード実行、ブラウザ制御が可能かどうかを個別に確認し、既に確認済みのことを再度尋ねないでください。実際の作業場所と検証範囲を明確に述べてください。応答例を事実に合わせて適応させ、未確認の機能を完了したかのようにコピーしないでください。

リクエストから、何を保持し、何を変更し、希望するカット数、繰り返し、順序を特定してください。既に持っているものを再度尋ねないでください。資料と目的が十分である場合、エージェントは以下のモードを選択します。技術的なモードの選択をユーザーに任せないでください。

ジョブビルドオプション動作
①テキストのみ--reference noneプロンプトのみを交換。サイト上の既存の参照は空のままにします。
②1つの参照--reference manualユーザーがサイトにアップロードしたオリジナルを保持し、プロンプトのみを交換します。
③参照フォルダ(順番)--reference folder1つのオリジナルのプロンプトグループを処理し、それを削除してから次の番号のオリジナルをアップロードします。

生成結果は自動的に次のオリジナルとしてリンクされません。上記の表は現在のエンジンがサポートする範囲です。マルチ参照コンポジットは、個別にリクエストされた場合にのみサポートされていないことを説明してください。デフォルトの順次実行の前提条件にしないでください。

フォルダのソート

依頼された場合、自分で画像とシナリオを確認し、目的に合った順序を設定してください。オリジナルを保持し、sorted_refsなどの別のフォルダに01_name.png、02_name.jpgとしてコピーしてください。拡張子を維持し、元の名前→新しい名前→順序の理由を簡単に示してください。ソートのみがリクエストされた段階で、プロンプト生成や実行に先走らないでください。

ユーザーが指定した実際の作業フォルダを基準に読み取りと編集を行ってください。素材名とカット順序は別のものです。リネームまたはコピーする際は、カットリスト内のファイルリンクも更新し、それらが存在することを確認してください。コピーを作成した場合は、正確なパスを明記してください。別のフォルダを編集した結果を元のフォルダの編集として報告しないでください。

番号は一意で1~999です。サポートされる形式はPNG、JPG、JPEG、WebPです。接続するフォルダの直下に画像を配置してください。詳細なルールについてはnaming.mdを参照してください。

プロンプトの作成

ユーザーがリクエストした数の英語プロンプトを書いてください。目的に合わせて被写体、シーン、フレーミング、光、スタイルを構成し、バリアントでは何を保持し、何を変更するかを分けてください。ロゴ、テキスト、イラスト、髪型を変更するリクエストを、それらを削除したり、フォトリアルにしたり、髪型を修正したりする指示に恣意的に変更しないでください。単一人物の単一ショットの場合、複数のビューやシートの複製が必要ないことも明記してください。

キャラクターシートがリクエストされ、他のレイアウトが指定されていない場合、デフォルトとして左顔アップ→中央正面全身→右後ろ全身を使用してください。3つのビューは同じキャラクターの衣装、髪型、アートスタイル、共通の背景を維持します。レイアウト比率やアスペクト比を強制しないでください。レイアウト、ビュー数、既存のシートレイアウトの維持に関するユーザーのリクエストは優先されます。この基準をシートバリアントのリクエストにも適用しますが、通常の衣装/髪型の変更やシーンの作業を自動的にシート作業にしないでください。単一ビューや非シートの指示をシートプロンプトに入れないでください。テキスト例については、prompt-styles.mdのキャラクターシートのエントリを参照してください。

特定のアスペクト比がリクエストされていない場合、aspect: "site"を使用してください。モデル、アスペクト比、出力数はサイト設定をそのまま使用します。デフォルトはループオフ、シャッフルオフです。リクエストに応じて変更してください。順次スワップではシャッフルはオフです。少量で確認する方法を説明しますが、リクエストされた完全なコードを提供する前に結果を待つ手順を強制しないでください。

スタイルリファレンス:prompt-styles.md。デフォルトの撮影計画プリセットが必要な場合のみ、scripts/scan_refs.pyおよびscripts/build_prompts.pyとともにaxes.mdを使用してください。自由形式のリクエストを4つのプリセットに制限しないでください。

変化の軸を各カットの目的に合わせて設定してください。変換は顔と体を維持し、衣装と小道具を変更します。キャラクター-背景コンポジットは両方の参照のアイデンティティを維持し、グラウンディング、遠近感、影を一致させます。カメラ比較はポーズ、場所、照明を維持し、フレーミングのみを変更します。照明比較はポーズ、場所、フレーミングを維持し、照明のみを変更します。組み合わせがリクエストされた場合は、カットごとの組み合わせを構築してください。同じ固定文をすべての素材に適用しないでください。

データ形式

{
  "schema_version": 1,
  "mode": "WITH_REF",
  "project": "ユーザープロジェクト名",
  "aspect": "site",
  "stride": 10,
  "prompts": {
    "1": "元の参照を使用してください。被写体のデザインを維持してください。背景のみを明るいスタジオの背景に変更してください。",
    "11": "同じ元の参照を使用してください。被写体のデザインを維持してください。背景のみを暗いスタジオの背景に変更してください。"
  },
  "labels": {"1": "明るい背景", "11": "暗い背景"}
}
  • manualおよびfolder:modeはWITH_REFです。strideは最も高い参照番号以上の10の倍数(最大1000)です。スロット = 参照番号 + バリアントインデックス × ストライド。上記の例はオリジナル01の2つのバリアントです。オリジナル01と02をそれぞれ1回処理するには、スロット1と2を使用します。1つの番号のすべてのバリアントが処理されてから次のオリジナルに移動します。
  • none:modeはPROMPT_ONLYです。スロット番号の昇順で実行され、strideは順序に影響しません(省略時は30)。必要な数のスロットから固定の繰り返しを構築します。例についてはexamples/EXAMPLES.mdを参照してください。

JSONシリアライゼーションを使用して_prompts.jsonとして保存してください。JSONはエージェントの編集と構築のための素材です。コンソールに直接入れるファイルではありません。

実行ファイルの構築

console-workflow.mdを読んでください。Python 3.10以降が必要です。以下のパスはこのスキルフォルダからの相対パスです。

python scripts/build_console.py "workfolder/_prompts.json" --reference manual --out "workfolder/paste_into_console.js"

ジョブに合わせてmanualをnoneまたはfolderに変更してください。無限繰り返しまたはシャッフルがリクエストされた場合のみ、--infiniteおよび--shuffleを追加してください。既存のassets/engine.jsおよびassets/console-panel.jsを再利用してください。プロジェクトごとに新しいエンジンを書かないでください。

完成したJSに対して構文チェックとscripts/verify.jsチェックを実行してください。最終的な返信では、実行JSリンク、該当する場合は参照フォルダ、および簡単な使用手順を提供してください。JSONやエンジンソースのみを渡してユーザーに組み立てさせないでください。

使用ガイド

F12 -> コンソール -> コード全体を貼り付け -> Enter -> 開始。ブロッキング警告が表示された場合のみ、ユーザーにコードを確認し、自分でallow pastingと入力するようガイドしてください。manualの場合は最初にオリジナルをアップロードしてください。folderの場合はパネルで画像フォルダを接続してください。noneの場合はサイト上の既存の参照をクリアしてください。

モデルの無制限の許可が必要であり、コードはそれをオンにして実行時にチェックします。実行タブを開いたままにし、コンピュータのスリープをオフにしてください。ループ、シャッフル、停止はパネルから制御してください。「続行」は実行を継続し、「閉じて停止」はそれ以上のリクエストをブロックします。未確認の承認マーカーがログに記録され、実行は次のアイテムに進みます。これは成功としてカウントされません。

アルファ検証範囲

リリース環境と再確認方法については、リリース検証記録に従ってください。アスペクト比は変更も固定もされません。サイト設定が読み取られます。これはすべてのブラウザ、画面、サイト変更との互換性を保証するものではありません。エラーが発生した場合、ログ・診断から保存されたステージ、番号、エラーコードを確認し、対応するクラスを修正してください。失敗前に受け入れられたリクエストのセット全体を再実行しないでください。

alpha.5では、3つのモード全体で実際の5件の受け入れが確認されました。順次参照は、最初のオリジナルで2件→オリジナルスワップ→次のオリジナルで1件で、「一度テスト」の後に「再開」が行われました。モデル、アスペクト比、出力数は維持されました。最終画質や他のブラウザ環境は検証されていません。すべての環境でエラーがないと提示しないでください。エラーハンドリングについてはtroubleshooting.mdを参照してください。alpha.6ではエンジン内部がクリーンアップされただけです。サイト処理コードは変更されていません。

順次参照実行:基準と検証

2026-10-01のサイトでは、順序は参照(+)→メディアをアップロード→アップロードリストに新しいカードが表示される→そのカードを選択→参照が生成フォームにアタッチされる、でした。ファイルのアップロード完了と参照のアタッチ完了は異なります。エンジンは接続されたフォルダからファイルを渡し、自動的に新しいカードを選択してからリストを閉じます。ユーザーにリストを閉じるよう依頼しないでください。これらはフォルダモードの一部であり、すべてのモードにまたがる前提条件ではありません。

関連スキル