mcpField
V
voxel-it

voxel-it

github.com/pika-labsクリエイティブ・メディア41664 回インストール14 週間前に更新
リポジトリ

voxel-it について

voxel-itは、人物をフォトリアルに保ちながら写真をMinecraft風画像に変換するPika MCPスキルです。3つのボクセル化モードから選び、元の構図と色調を保ちます。

主な機能

  1. 013種類のボクセル化モードを選択
  2. 02人物をフォトリアルに維持
  3. 03指定範囲をボクセルブロックに変換
  4. 04構図と物の配置を保持
  5. 05Minecraft風のアイテムタグを追加可能

活用シーン

  1. 01人物を残して周囲の風景をボクセル化
  2. 02料理や商品をブロック表現に変換
  3. 03人物以外をボクセル化した環境を作成

MCP 対応

generate_image_editやupload_assetなどのPika MCPツールを使い、元画像のアップロードと編集画像の生成を行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pika-labs/pika-plugins --skill voxel-it

インストール後、Claude Code で/voxel-itを入力して読み込まれたか確認します。

詳細

voxel-it

以下のツールはPika MCPのツールで、名前にプレフィックスは付いていません。Pika MCP 用にセッションで公開されているプレフィックスを付けて、それぞれ呼び出してください。

1つのスキル、1つのエンジンで、写真を Minecraft のスクリーンショットに変換します。人物はフォトリアルのまま、フレームの残りの部分はボクセルブロックに変わり、映画のようなカラーグレーディングで統一されます。ステップ 0 のルーターが写真を読み取り、3つのモードのうち1つを選択します。ボクセル化する対象(主役のオブジェクト、背景、または人物以外のすべて)と、主役のオブジェクト名を示す **Minecraft の「ルートタグ」**を浮かべるかどうかを判断します。この1つのスキルで、従来の Minecraft-Food のトレンド(オブジェクトのみ)と従来の Minecraft-World のトレンド(オブジェクト+背景)の両方を扱えます。

変換エンジンには、@rohxit7 のバイラルレシピをそのまま使用します(Instagram、194K 件の「いいね」、#minecraft #prompt #chatgpt)。オブジェクトのみのプロンプトとルートタグの指定は、終了した Minecraft-Food のトレンド(@aibyjoe「Minecraft Food」)から採用しています。

エフェクトの詳細:

  1. フォトリアルのまま変更しない — 人物(顔、肌、髪、服装、ポーズ、プロポーション)。どのモードでも、スタイル化やブロック化はしません。
  2. Minecraft に変換 — 選択したモードの対象部分(地形、建造物、植物、オブジェクト、家具、乗り物、食べ物、飲み物、空、背景の一部)。鮮明な立方体/ボクセル形状、くっきりした 16×16 風テクスチャ、現代の Minecraft スクリーンショット品質(高品質な SEUS/BSL シェーダー — リアルな光、柔らかな影、AO、ボリュメトリックライト、シャープなエッジ)。
  3. **空間の忠実性(厳守):**カメラ、フレーミング、構図を正確に保ちます。すべての要素は元の位置とサイズを維持し、追加・削除・配置換えはしません。
  4. **映画のようなカラーグレーディング(全体を統一):**元画像の雰囲気を分析して、全体のフレームに合った色調を適用します。実写の人物とボクセル世界に一貫性を持たせ、切り抜きを貼り付けたようではなく、1枚の画像として仕上げます。
  5. (条件付き)ルートタグ — オブジェクトのみモードの場合に限ります。ステップ 0 を参照してください。

**アイデンティティに関する注意:**レシピに従い、マスクを使わずキャンバス全体を1回で編集するため、顔は再生成され、わずかに変化する場合があります。色の一体感を優先し、これを許容します。顔をバイト単位で完全に保持するには、末尾の高度なマスクに関する注意を参照してください。

ステップ 0 — ルーター:モードを選ぶ

写真を読み取り、必ず1つのモードを選びます。**決定を1行で示します — MODE: object-only / MODE: background-only / MODE: object+background — その後、ステップ 3 の対応するプロンプトブロックを適用します。**エンジン、カラーグレーディング、品質基準はすべてのモードで同じです。異なるのは、ボクセル化する対象と、ルートタグを浮かべるかどうかだけです。

3つのモード:

  • object-only — 手に持っている/主役となるオブジェクト(食べ物/飲み物/製品)と、それ自体の食器のみをボクセル化します。人物と背景は完全にフォトリアルのままにします。各主役オブジェクトの上に Minecraft のルートタグラベルを浮かべます。(従来の Minecraft-Food の見た目です。)
  • background-only — 背景/環境を Minecraft のブロックにボクセル化します。人物はフォトリアルのままにします。付随的なオブジェクトがある場合も、フォトリアルのままにします。ルートタグは付けません。 (人物が場所に立つ写真をボクセル世界に変換します。ただし、持っているものは実写のままです。)
  • object+background — 人物以外のすべて(オブジェクトと背景)をボクセル化します。ルートタグは任意です。(従来の、すべてをボクセル化する Minecraft-World のデフォルトです。)

判断ツリー(デフォルトの判定):

Does the user EXPLICITLY ask to voxelize everything?
  ("voxelize everything" / "object and background" / "full voxel world")
    → MODE: object+background
Else, is a human FACE or BODY present?
    ├─ Person present + a held/featured object (food/product) is the subject?
    │     → MODE: object-only        (float loot tags on the object)
    └─ Person present, NO featured object (people-in-a-place shot)?
          → MODE: background-only     (the default for face-in-a-scene shots)
No person present?
    ├─ Pure object shot (a meal, a product, a flat-lay, a desk of gear)?
    │     → MODE: object-only
    └─ Landscape / scene with no featured object?
          → MODE: background-only
Genuinely ambiguous (can't tell if the object or the scene is the point)?
    → ask the user ONE line: "voxelize just the object, just the background,
      or everything but you?"

ルーティングの意図:主役となるオブジェクトのない顔写真は、デフォルトで background-only(人物をボクセル世界に置き、人物と付随的なオブジェクトは実写のままにします)。主役となるオブジェクトがある場合は object-only(主役のアイテムをボクセル化してタグを付け、人物とシーンは実写のままにします)。object+background は明示的にリクエストされた場合に限ります。

入力

  • <source> — 任意の写真(パス、URL、またはチャットに貼り付けた画像)。オブジェクトの写真、人物とオブジェクトの写真、広い風景のいずれにも対応します。

引数なしメニュー

  1. 「写真を渡してください(パス、URL、または貼り付け)。モードは自動で選びます。オブジェクトのみ(Minecraft の戦利品タグを付けて、主役の食べ物や商品だけをボクセル化)、背景のみ(周囲のシーンをボクセル化し、あなたと手に持っているものはそのまま残す)、またはオブジェクト+背景(あなた以外のすべてをボクセル化)。特定のモードを指定したい場合は教えてください。」

(プロバイダーについての質問はありません。常に gpt-image-2 を使用します。「Engine」を参照してください。)

エンジン — 常に gpt-image-2

gpt-image-2、quality="high"、output_format="png" を使用します。このレシピに必要な高性能なエディターで、世界をブロックに置き換えます。nano-banana-pro は使用しないでください。ボクセル化が不十分で(ブロック化するよう指示しても、被写体がフォトリアルなまま残るため)、世界がほとんど変化しません(6 シーンのバッチで検証済み)。

タイムアウトの注意点: quality="high" では、同期呼び出しが約 260 秒のツール予算を超えることが多く、クライアントがタイムアウトします。必ず background:true を指定して呼び出し、task_status(task_id) を completed になるまで短い間隔で繰り返し確認してください。

ワークフロー

作業ディレクトリ:<project>/voxel-it/<run-id>/ — 実行ごとに個別のフォルダーを使用します。

ステップ 1 — ソースを Pika-CDN の URL として取得する
  • HTTPS URL の場合:そのまま使用します。

  • ローカルファイルの場合:アップロードします(ステップ 2)。HEIC を変換するには、sips -s format jpeg in.HEIC --out out.jpg を実行します。これにより EXIF の向き情報が削除されるため、JPEG が横向きになる場合があります。表示して確認してください。横向きの場合に限り、sips -r 90 または sips -r 270(傾きに応じて選択)で正しい向きに回転し、再度表示して確認します。モデルは参照画像のピクセルをそのまま取り込むため、アップロード前に正しい向きにしておく必要があります。

  • チャットに貼り付けた画像の場合:ディスク上に確実に保存されているとは限りません。ユーザーがファイル名(例:デスクトップのスクリーンショット。macOS では AM/PM の前に狭い改行なしスペース U+202F が使われるため、glob を使って一致させます)を指定している場合は、そのファイルをコピーします。それ以外の場合は、セッションのトランスクリプトから抽出します。

    cd ~/.claude/projects/<project-slug>/
    SRC=$(ls -t *.jsonl | head -1)   # newest = current session
    python3 - "$SRC" "<run-dir>" <<'PY'
    import json, base64, sys, os, hashlib
    src, out = sys.argv[1], sys.argv[2]; imgs=[]
    for line in open(src):
        try: o=json.loads(line)
        except: continue
        m=o.get("message") if isinstance(o,dict) else None
        role=(m or {}).get("role") if isinstance(m,dict) else o.get("role")
        if role!="user": continue
        c=(m or o).get("content")
        if not isinstance(c,list): continue
        for p in c:
            if isinstance(p,dict) and p.get("type")=="image" and isinstance(p.get("source"),dict):
                s=p["source"]
                if s.get("data") and s.get("media_type","").startswith("image/"):
                    imgs.append((s["media_type"], s["data"]))
    # save the last N pasted images (newest turn). Adjust [-1:] to [-N:] for batches.
    for i,(mt,data) in enumerate(imgs[-1:], 1):
        b=base64.b64decode(data); ext={"image/webp":"webp","image/jpeg":"jpg","image/png":"png"}.get(mt,"jpg")
        p=os.path.join(out,f"source_{i}.{ext}"); open(p,"wb").write(b)
        print(p, len(b), "sha256", hashlib.sha256(b).hexdigest())
    PY
    

    生成を実行する前に、必ず保存したファイルを読み戻して(表示して)確認してください。

ステップ 2 — Pika CDN にアップロードする

upload_asset({filename, mime_type, size_bytes, sha256}) を実行 → 応答に含まれる presigned_url にバイト列を PUT します。応答にある content_type をそのまま指定してください(curl -X PUT -H "content-type: <type>" --upload-file <file> "<presigned_url>" を実行し、HTTP 200 が返ることを確認します)→ 返された public_url を使用します。

ステップ 3 — 編集を実行する(ステップ 0 のモードに応じて分岐)

provider="gpt-image-2"、 quality="high"、output_format="png"、background=true(ポーリングあり)を指定して generate_image_edit を実行します。images には CDN URL を指定し、aspect_ratio: "auto" を指定します。ワーカーが参照画像を測定して向きを合わせるため、アスペクト比を手動で選択したり、再計算したりする必要はありません。写真を確認して、COLOR GRADING のムードの説明を記入します。

ステップ 0 で選んだモードに対応するプロンプトブロックを選択してください。


MODE: object+background(人物以外をすべてボクセル化)

@rohxit7 のレシピをそのまま使用します:

ROLE: スタイライズされた写真からゲーム世界への変換と、映画のようなカラーグレーディングを専門とする、熟練の画像変換アーティストです。

TASK: 添付された参照写真を高品質な Minecraft のスクリーンショットに変換します。人物は完全にフォトリアルなまま一切手を加えず、シーン内のそれ以外のすべてを精細な Minecraft のブロック形状に変換し、さらに元の写真の雰囲気に基づいた映画のようなカラーグレーディングを適用してください。

CORE CONCEPT(主役となるアイデア — 逸脱しないこと):完全にボクセル/ブロック状の Minecraft の世界に立つ、実在するフォトリアルな人物です。リアルな人物とブロック状の環境とのコントラストこそが、この画像の最大のポイントです。

CONVERSION RULES:

  1. フォトリアルなまま維持(変更しない):参照写真の人物、その顔、肌、髪、服装、ポーズ、体形。人物は写真に写っているとおりに正確に描画し、スタイライズもブロック化もしないでください。
  2. MINECRAFT に変換(高品質なブロックモデル):人間以外の要素すべて。地形、地面、植物、物体、建造物、家具、乗り物、空、背景を含みます。16x16 スタイルの鮮明なブロックテクスチャを備えた、整った立方体/ボクセル形状を使用してください。品質の参考は、プレミアムシェーダー(SEUS/BSL スタイルなど)でレンダリングされた現代的な Minecraft のスクリーンショットです。リアルなライティング、柔らかな影、アンビエントオクルージョン、ボリューメトリックライト、シャープなブロックのエッジを取り入れてください。
  3. 空間的な忠実度(厳守 — これは再解釈ではなく変換です):カメラアングル、フレーミング、構図を正確に維持してください。すべての要素を元の位置に保ち、元の相対的な大きさとスケールも維持してください。人物は元画像と同じ場所に同じ比率で配置します。物体を追加、削除、並べ替えしないでください。

COLOR GRADING(Minecraft への変換後に適用): Step 1 — まず元の写真を分析します。時間帯、光の方向、支配的な色のパレット、暖色/寒色の傾向、全体的な雰囲気を特定してください(読み取った雰囲気を記入します。例:「ムーディーな夜の街。涼しげな青い空と温かな街灯の光」/「ゴールデンアワーの暖かさ」/「曇天のニュートラルな色調」)。 Step 2 — 分析した雰囲気に合った映画のようなカラーグレーディングを適用します。フィルム調のコントラストカーブ、バランスの取れたハイライトとシャドウ、元の写真の雰囲気に一貫した色調を用い、控えめなビネットと奥行きを加えてください。フォトリアルな人物とブロック状の環境の両方に一貫して適用し、画像全体が一体感のある仕上がりになるようにします。

OUTPUT SPECIFICATIONS: 高解像度の画像を1枚。シャープで精細、プロ品質の Minecraft スクリーンショット。フォトリアルな人物とボクセルの世界を、シームレスなカラーグレーディングで仕上げます。

SELF-CHECK BEFORE FINALIZING: 人物は100%フォトリアルなままで、変更されていませんか?それ以外のすべては、明確に Minecraft のブロック形状になっていますか?位置、大きさ、構図は元画像と同じですか?カラーグレーディングは、元の写真から分析した雰囲気に合っていますか?フォトリアルな人物とブロック状の世界は、貼り付けたようではなく一体感がありますか?

object+background のロートタグは任意です。 ユーザーが希望する場合(または名前を付けられる主役の物体が明確にある場合)は、下の LOOT TAGS ブロックを CONVERSION RULES と COLOR GRADING の間に挿入し、そのタグ行を TASK と SELF-CHECK に追加してください。

LOOT TAGS: ボクセル化した主役の物体それぞれの上または近くに、Minecraft のインベントリ風の名前タグを浮かべます。暗い半透明の角丸長方形に、読みやすい白いピクセル/ビットマップフォントでアイテム名を表示します(Minecraft のアイテムツールチップ/名前付きエンティティタグのようなもの)。各アイテムに名前を付けます:[主役の物体と短い名前を列挙します。例:「モヒート」、「セサミラテ」、「アップルケーキ」、「Air Jordan 1」、「Leica M6」]。タグはすっきりと鮮明で読みやすく、重ならないようにし、各アイテムのすぐ上に浮かべてください。人物の顔を絶対に覆わないでください。(SELF-CHECK に追加:「各主役の物体に、顔を覆わない、すっきりと読みやすい Minecraft の名前タグが付いていますか?」)


MODE: background-only(シーンをボクセル化し、人と付随するオブジェクトはそのまま維持)

object+background と同じ @rohxit7 の手順ですが、CONVERSION RULE 1 を拡張して、 そのまま維持する対象を人だけに限定せず、手に持っている物や前景にある付随する オブジェクトもフォトリアルなまま維持します。具体的には、RULE 1 と RULE 2 を次の内容に置き換えます。

  1. フォトリアルなまま維持(変更しない):人物 — 顔、肌、髪、 服装、ポーズ、プロポーション — および人物が手に持っている物、または すぐ手前にある物(スマートフォン、飲み物、バッグ、小道具)。これらはすべて、 表示されているとおりに描画し、スタイライズもブロック化もしないでください。
  2. MINECRAFT に変換(高品質なブロックモデル):背景と 環境のみ — 地形、地面、植物、構造物、家具、車両、空、そして人物の背後や周囲の風景。 シャープな 16x16 スタイルのブロックテクスチャを使った、クリーンな立方体/ボクセル形状にしてください。 品質の参考:プレミアムシェーダー(SEUS / BSL)を使用した最新の Minecraft のスクリーンショット — リアルなライティング、柔らかな 影、アンビエントオクルージョン、ボリューメトリックライト、シャープなブロックのエッジ。人物や手に持っている物をボクセル化しないでください。

object+background ブロックの CORE CONCEPT、SPATIAL FIDELITY(RULE 3)、COLOR GRADING、OUTPUT SPECIFICATIONS、SELF-CHECK はそのまま残してください(内容は変更せず適用します)。background-only では戦利品タグを付けません。


MODE: object-only(注目オブジェクトとその食器だけをボクセル化し、人物と背景はそのまま維持し、戦利品タグを浮かべる)

これは廃止された Minecraft-Food レシピです。アイテムごとに角括弧内のリストを埋め、KEEP とラベルに関する節はそのままにしてください。

この写真をそのまま編集してください。人物とその顔、髪、手、服装、 アクセサリー/またはフラットレイの場合:テーブル、容器、皿、 カップ、トレイ、カトラリー、および背景/シーンとライティングを、100%フォトリアルなまま変更せずに維持してください — 人物を一切スタイライズしないでください。

食べ物、飲み物、そして食べ物用の食器のみを、Minecraft の 3D ボクセルブロックに変換してください — Minecraft アイテムとまったく同じ、 ごつごつした低解像度のキューブピクセル形状と平坦なブロック状テクスチャにし、各アイテムを実物があった場所に自然に置いてください:[アイテムごとの対応 — 例:「ラーメンの丼 → 黄色いキューブ麺が入ったブロック状のボクセル丼」;「ペパロニのスライス → キューブ状の生地+ボクセルチーズ+キューブ状のペパロニスライス」;「蒸しご飯 → 白いボクセルライスキューブの山」]。

変換した各アイテムの上、または近くに、Minecraft のインベントリ風テキストラベルを追加してください:アイテム名を示す、暗い半透明の角丸長方形に白いピクセル/ビットマップフォントで表示します(例:[アイテムラベル])。ラベルはすっきり読みやすく、重ならないようにし、人物の顔には決して重ねないでください。

最終的な見た目:フォトリアルな人物/シーンのまま、すべての食べ物、 飲み物、食器が Minecraft のボクセルオブジェクトになり、Minecraft の インベントリラベルが浮かんでいる画像です。

その後、object+background ブロックの COLOR GRADING の手順を適用し(元画像の雰囲気を分析し、フレーム全体をそれに合わせてカラーグレーディングする)、ボクセルオブジェクトと実物の人物/シーンが一枚の画像としてなじむようにしてください。

生成前に列挙してください: object-only の品質を左右する最大の要素は、プロンプト内で食べ物/商品と、それが変換されるボクセルオブジェクトを一つずつ指定することです。元画像を見て、まず料理/飲み物/カトラリーをすべて列挙してください。「食べ物をブロックに変える」のような汎用的な指示では曖昧になりますが、アイテムごとに対応を指定すれば狙いどおりの結果になります。


グループ: どのモードでも、KEEP の節に人物全員の名前を記載し、誰もブロック化されないようにしてください。接触オブジェクト(手に持ったマグカップ、飲み物、皿)は、object-only / object+background ではオブジェクトと一緒にボクセル化しますが、background-only ではそのまま維持します。

Step 4 — ダウンロード、表示、開く(+回転チェック)

<run-dir>/voxel-it-<subject>.png にダウンロードし、表示して、Finder で open します(analyze_media による再チェックはせず、目で確認するだけです)。指定がない限り PNG のみ。回転チェック: gpt-image-2 は編集結果を 90°回転させて返すことがあります — 空や天井が上を向いていない場合は、sips -r 90 または sips -r 270 で正しい向きに戻してください(正しい向きになる方を使用します。無料で、再生成は不要です)。もう一度表示して確認します。静止画のみ。

ヒントと失敗例

症状対処法
出力が90°回転しているsips -r 90 / sips -r 270 で回転し直します。正しい向きになるほうを使ってください(無料で、再生成は不要です)。
人物がブロック化されたKEEP 条項をもう一度明記します。複数人の場合は、全員の名前を指定してください。
世界がほとんどボクセル化されていないnano-banana-pro を使っています。gpt-image-2 に切り替えてください。
人物が貼り付けたように見えるCOLOR GRADING ブロックとムードの行があることを確認してください。これらが統一感を生み出します。
意図しないものがボクセル化されたステップ 0 を確認してください。モードの選択を間違えています。object-only は主役のオブジェクトのみ、background-only はシーンのみ、object+background は人物以外のすべてです。
background-only でオブジェクトがボクセル化されたKEEP 条項を広げ、手に持っているオブジェクトや前景のオブジェクトを明示します。
タグがない/対象のアイテムが違う(object-only)ラベル条項を忘れたか、主役のアイテムを名前で列挙していません。それぞれを列挙してください。
タグが乱雑/重なっている/顔にかかっている「ラベル同士が重ならないようにし、各アイテムのすぐ上に配置し、顔には絶対にかからないようにする」と指定して、再生成してください。
タグが表示されたが、不要だったbackground-only モード(タグなし)です。ラベル条項を削除してください。
昼夜が逆転したCOLOR GRADING で夜のムードを明示します。
元画像と比率が異なるaspect_ratio: "auto" を渡してください。ワーカーが参照画像の向きに合わせます。
顔が変わってしまった想定どおりです(マスクなしのレシピ)。高度な修正方法は以下を参照してください。

上級者向け — 確実に同一性を保つ方法(レシピ外)。 元画像に対して remove_background(mode="portrait")を実行し、アルファを gpt-image-2 の mask として使います(透明部分=再描画、不透明部分=保持)。これにより、対象領域だけが変換され、人物のピクセルには一切手が加わりません。@rohxit7 の手法からは外れるため、顔をバイト単位で完全に保持する必要がある場合にのみ使用してください。

参考

  • エンジン: @rohxit7 のバイラルレシピをそのまま使用。object-only プロンプトとルートタグ: @aibyjoe の「Minecraft Food」から引き継いだもの。このスキルは minecraft-food(object-only)と minecraft-world(object+background)の両方を統合し、置き換えます。
  • 判定:常に gpt-image-2 を使用します。入力に応じた3つのモードで、レシピは1つです。

コメント