mcpField
N
nature-image2ppt

nature-image2ppt

github.com/yuan1z0825ドキュメント51.2k7.6k 回インストール1 日前に更新
リポジトリ

nature-image2ppt について

nature-image2pptは、画像のページをPowerPointスライドとして再構成するスキルです。マニフェストでページ内容と実行状態を管理し、ページ単位と最終出力の品質確認を経て納品します。

主な機能

  1. 01ページ単位のスライド再構成
  2. 02マニフェストによる内容と状態の管理
  3. 03OCRヒントと画像素材の利用
  4. 04構造、矢印、レンダリングの検証
  5. 05最終PPTXの組み立てと確認

活用シーン

  1. 01画像ページを編集可能なプレゼンテーションに変換
  2. 02複数ページを個別のワーカーに割り当て
  3. 03ページ検証後にデッキを組み立て

MCP 対応

入力にはMCP連携についての記載がありません。

インストール

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

$npx skills add https://github.com/yuan1z0825/nature-skills --skill nature-image2ppt

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
agents/
openai.yaml
cli/image2ppt/
__init__.py
cli.py
cli/image2ppt/runtime/
__init__.py
_input_normalization.py
_page_artifacts.py
build_pptx_from_manifest.py
configure_image_backend.py
deck_run_state.py
deck_text_hints.py
finalize_deck_run.py
formula_renderer.py
image_gen.py
main.py
make_page_contact_sheet.py
paddle_text_hints.py
page_job_status.py
page_text_metrics.py
prepare_deck_run.py
process_asset_sheet.py
record_imagegen_result.py
record_page_dispatch.py
record_page_result.py
remove_chroma_key.py
reset_page_job.py
runtime_env.py
split_alpha_components.py
text_hints.py
validate_pptx.py

詳細

Nature Image2PPT

このディレクトリを完全なランタイムとして使用してください。決定的なアクションは次のものを通じてのみ実行します。

python <image2ppt-root>/cli/image2ppt/cli.py <command> ...

Python 3.10 以降を使用し、requirements.txt をインストールしてください。専用の 環境が存在する場合は、以下のすべての python コマンドについて、macOS/Linux では <image2ppt-root>/.venv/bin/python を、Windows では <image2ppt-root>/.venv/Scripts/python.exe に置き換えてください。失敗した doctor の後は続行しないでください。報告された不足している依存関係のみをインストールし、 その後で再実行してください。

別の Skill、CLI、Prompt、Schema、モジュール、ステートマシンを検出したり呼び出したりしないでください。

ローカルコントラクトを段階的に読む

常に references/workflow.md を読んでください。references/runtime-dependencies.md はセットアップ時または doctor の失敗時のみ読み、references/ocr-text-hints-contract.md は OCR を選択するときまたはトラブルシューティングするときのみ読んでください。

ページマニフェストを書く前に、references/page-decision-tree.md と references/manifest-schema.md を読んでください。そのページに必要な参照のみを追加してください。

  • 構造化ページまたは複合ページ: references/region-decomposition.md と references/object-routing.md;
  • 矢印: references/manifest-arrow-extension.md;
  • ラスターアセットまたは画像バックエンドの作業: references/assets-provenance-contract.md.

出力を受け入れる前または納品する前に、references/qa-contract.md を読んでください。

単一の信頼できる情報源を維持する

  • page_jobs.json を唯一のページ状態ソースとして扱ってください。
  • 各 pages/page_NNN/manifest.json を唯一のページコンテンツソースとして扱ってください。
  • deck_manifest.json を最終アセンブリのソースとして扱ってください。
  • ステートフルなライフサイクル操作には、prepare、run next/dispatch/record/reset/hints/finalize、 およびローカル CLI のページコマンドのみを使用してください。
  • 意味的領域の証拠は manifest.json.image2ppt_region_decomposition に保持してください。
  • 2 つ目のジョブファイル、再構築プラン、OCR ノーマライザー、ページコントローラー、 パッケージャー、または finalize パスを決して作成しないでください。
  • 補足的な QA には失敗を報告させてください。ライフサイクル状態を変更させてはいけません。

すべての書き込みをその所有者ディレクトリ内に保つ

  • ページのビルド、検証、ヒント、QA はそのページディレクトリ内でのみ読み書きできます。 マニフェストパス、記録されたアセット、数式、レポート、プレビュー、および --out オーバーライドは、それを脱出するために ..、シンボリックリンク、または絶対パスを 使用してはいけません。唯一の外部入力の例外は、image import に渡される、または process-sheet --asset-sheet-source として渡される明示的な画像ツールの結果です。 これはビルド依存になる前にページへコピーされます。
  • 実行レベルのマニフェストと最終出力は、準備された実行ディレクトリ内に留まる必要があります。 finalize は同じディレクトリ内の一時ファイルへ再ビルドし、ビルドが成功した後にのみ それをアトミックに公開します。
  • 境界の拒否はすべてハード障害として扱ってください。拒否されたファイルをスコープに コピーして戻し、ランタイム出力として提示しないでください。

移行前の動作を維持する

  • 自己完結性は、再構築動作の再設計ではなく、パス/インポート/エントリーポイントの 移行として扱ってください。
  • 各ワーカー Prompt を、完全なローカルベースレイヤーと保存された Image2PPT プロファイル レイヤーから生成してください。どちらのレイヤーも要約、再解釈、または置き換えを しないでください。
  • 複数のルートがコントラクトを満たす場合は、以前に検証された視覚戦略を優先してください。 単純な測定対象オブジェクトはネイティブのままにし、ネイティブの再描画が忠実度を 低下させる場合は、境界付けられた複雑なアセットを保持してください。
  • ランタイムの独立性を証明するためだけに、受け入れ済みのベースラインページを 再作成しないでください。

ワークフローを実行する

画像バックエンドの選択

エージェントランタイムが image_gen.imagegen を公開している場合は builtin-imagegen を使用してください。これは推奨されるバックエンドです。ワーカーが編集入力を検査し、明示的なローカル結果をインポートできるためです。CLI 画像コントラクトは、組み込みツールが利用できない、エラーになる、入力を読み取れない、または有効なローカル出力を返さない場合にのみ使用してください。model、mask、size、quality、output path などのオプション引数の欠落は、フォールバックを許可する理由には決してなりません。実際の生成元と許可されたフォールバック理由を imagegen-jobs.json に記録してください。

CLI 画像コントラクトは、トランスポート境界においてプロバイダー中立です。codex-oauth は GPT Image のモデル ID に対してのみ選択してください。プロバイダー固有のモデルで、そのエンドポイントが OpenAI Images 互換の /images/generations および/または /images/edits スキーマを実装している場合は、openai-compatible-api を選択してください。タスクの言語モデルから画像バックエンドを推測しないでください。来歴が重要な場合は明示的なバックエンドを使用してください。auto は互換性のある GPT Image ID に対してのみ Codex OAuth を使用し、それ以外の場合は Codex OAuth 認証情報を第三者に送信することなく、設定された API を選択します。

1. プリフライトと OCR の選択
python <image2ppt-root>/cli/image2ppt/cli.py doctor --json

設定されている場合は Baidu AI Studio PADDLE_OCR_TOKEN を使用してください。存在しない場合は、ローカルの builtin-ink フォールバックはテキストのジオメトリを測定しますが文字を認識しないことをユーザーに一度伝えてください。references/ocr-text-hints-contract.md にある設定方法を提示してください。オフライン専用の選択を尊重してください。

2. 1 回の実行を準備する
python <image2ppt-root>/cli/image2ppt/cli.py prepare <input...> \
  --out-root output/image2ppt --image-backend builtin-imagegen

監査可能な来歴のために設定済みのサードパーティプロバイダー/モデルを固定するには、--image-backend openai-compatible-api を指定して準備してください。実行コントラクトは、アクティブなプロジェクト設定または環境から正確な IMAGE2PPT_IMAGE_MODEL を記録します。--model フラグが渡されなかったという理由だけで、GPT Image のデフォルトに置き換えることはありません。

OCR 処理を意図的に無効にする場合にのみ --no-text-hints を使用してください。必要に応じて、新しい実行を作成せずにヒントを再生成できます:

python <image2ppt-root>/cli/image2ppt/cli.py run hints <run-dir>
3. ページを進めてクレームする
python <image2ppt-root>/cli/image2ppt/cli.py run next <run-dir> --json
python <image2ppt-root>/scripts/build_page_worker_prompt.py \
  <run-dir> --page <page-id> --out <absolute-page-dir>/worker-prompt.md
python <image2ppt-root>/cli/image2ppt/cli.py run dispatch \
  <run-dir> --page <page-id> --agent-id <id> --prompt-file <absolute-prompt>

ちょうど 1 ページの場合は、--local でそれをクレームし、現在のエージェントで再構築してください。複数ページの場合は、page_jobs.json の容量まで独立したページワーカーをディスパッチしてください。遅いという理由だけで稼働中のワーカーをリセットしないでください。

4. 各ページを再構築してゲートする

構造化されたページは 3~5 個の意味的リージョンとして計画し、各リージョンを独立にルーティングしてください。測定済みの複合図を使用してください:すべてのノード、関係、保護されたアンカーを測定してください。測定可能な円、カード、直線/破線の関係、単純なコネクタはネイティブのままにしてください。複雑なローカルサブパーツにのみ、境界付きの透明アセットを使用してください。

細い矢印は、同じオブジェクト上に矢じりを持つ 1 つのコネクタとして表現してください。塗りつぶし矢印は、同じオブジェクト内に中央揃えのラベルテキストを持つ 1 つの Arrow AutoShape として表現してください。通常の矢印を線と三角形で構成してはならず、ナレッジグラフ全体を 1 つの画像に平坦化してはなりません。

新しいページマニフェストは schema_version: 2 で記述してください。明示的な kind と representation 値を持つ構造化された visual_inventory 項目を使用し、必須の各品質チェックに対して具体的な quality_evidence の観察を記述してください。数式レンダリングは厳格なゲートです:エンジン、コンバーターの欠落、またはコンパイルの失敗は、ユーザーがその正確な数式の例外を明示的に承認し、マニフェストに user_approved_exception: true と具体的な approval_note の両方が記録されない限り、ページを失敗のままにしなければなりません。

ワーカープロンプトは決定論的なシーケンスを実行します。その最終ゲートは次のとおりです:

python <image2ppt-root>/cli/image2ppt/cli.py page build <page-dir>
python <image2ppt-root>/scripts/run_image2ppt_qa.py <page-dir>
# The first run writes visual-review-evidence.template.json and remains pending.
# Inspect source.png against render/rendered.png, copy and complete the template
# as visual-review-evidence.json, repair if needed, then:
python <image2ppt-root>/scripts/run_image2ppt_qa.py <page-dir> \
  --visual-review-status reviewed \
  --visual-review-evidence <page-dir>/visual-review-evidence.json
python <image2ppt-root>/cli/image2ppt/cli.py page contact-sheet <page-dir>

エビデンスファイルは、現在のソース/レンダーハッシュと、必須の各チェックを具体的な観察でカバーしなければなりません。--visual-review-notes は任意のコンテキストであり、エビデンスファイルの代用にはなりません。

標準の検証と Image2PPT のリージョン、矢印、レンダリングの各ゲートが通過した後にのみ記録してください:

python <image2ppt-root>/cli/image2ppt/cli.py run record \
  <run-dir> --page <page-id> --agent-id <id>

拒否されたページを修復するには、同じ run reset → ディスパッチ → 記録のライフサイクルを使用してください。

5. 再構築したデッキをファイナライズして再検証する

run next が finalize を報告したら、次を実行します:

python <image2ppt-root>/cli/image2ppt/cli.py run finalize <run-dir>
python <image2ppt-root>/scripts/run_final_image2ppt_qa.py <run-dir>
# The first run writes final/visual-review-evidence.template.json and remains pending.
# Inspect every rendered slide, complete final/visual-review-evidence.json, then:
python <image2ppt-root>/scripts/run_final_image2ppt_qa.py <run-dir> \
  --visual-review-status reviewed \
  --visual-review-evidence <run-dir>/final/visual-review-evidence.json

ファイナライズはページマニフェストから再構築し、ソースのスピーカーノートを保持し、パッケージを検証し、deck_manifest.json に記録された出力を書き出します。最終 QA はマニフェストの矢印を再適用し、矢印の原子性と複合構造を検証し、すべてのスライドをレンダリングし、スピーカーノートの整合性を確認し、final/image2ppt_qa.json を書き出します。

納品

最終的な PPTX パス、標準の最終検証、および final/image2ppt_qa.json を返します。どの複雑なビジュアルが置き換え可能なビットマップアセットとして残っているかを報告します。いずれかのページ/最終ゲートが保留中または失敗している間は、デッキを完了と呼んではいけません。

コメント